第一堂 Linux 小社

By 小黑

目錄

- 小社課程內容

- 作業系統

- Linux 介紹

- CLI vs GUI

- Linux 基本指令

講師介紹

小黑(吳習之)

- 建中電研 44th 網管(兼學術兼公關

- 暑訓三小隊輔

- 因為是小社恐所以來當小社講師

- 會一點 Linux、演算法、Python

- 叫我學長、小黑都行,不要本名

- GitHub: demonaarwu

- Discord: windnoko

小社課程內容介紹

課程目標

- 熟悉 Linux 及其基本指令和工具

- 初步建立對資安的認識

- 奠定未來深入 Linux 和資安的基礎

課程大綱

- 第一週: Linux 初認識 & 基本指令 (9/25)

- 第二週: Linux 發行版 & WSL & VirtualBox (10/16)

- 第三週: Git & GitHub (10/23)

- 第四週: 網路基本概念 (1) (10/30)

- 第五週: 網路基本概念 (2) (11/6)

- 第六週: CTF 介紹 + 常用工具安裝 (11/13)

- 第七週: CTF - Web (12/4)

- 第八週: CTF - Forensic & Stego (&misc) (12/11)

- 第九週: CTF - Crypto/PWN (12/18)

- 第十週: CTF - Reverse (12/25)

作業系統

什麼是作業系統 (OS) ?

- 使用者跟電腦的橋樑,也是電腦最重要的軟體

- 負責管理電腦的資源(e.g. 記憶體、CPU)

- 使用者發送指令給 OS,OS 再讓電腦執行

常見的作業系統

Windows

macOS

iOS

Android

還有今天的主角

Linux

Linux 簡介

Linux

- 全稱 GNU/Linux

- 開發者為 Linus Torvalds (記住這名字)

- Windows 和 macOS 以外最多人用的 OS

- Open Source

(吉祥物 Tux)

Linus Torvalds

- 芬蘭程式設計師

- Linux 創世神

- 記住他的臉,你還會看到他

為什麼學 Linux

- 77% 的 server 使用 Linux

  所以如果你未來走資訊這條路,一定得學 Linux

- 對程式開發工具的支援

  多數工具都會原生支援 Linux ,因此速度會比 Windows 快

- 完全免費

  Windows 11 Pro 要快七千塊,該換 Linux 了ㄅ

- 更安全

  Windows 跟 macOS 都閉源,你無法知道他們偷偷塞了啥

  何況 Microsoft 跟 Apple 都有前科

還有,Linux 可以改的真的很帥!

(這真的不是 Windows 7,這 Linux 改的)

(阿?)

CLI vs GUI

Command Line Interface(CLI)

Graphical User Interface(GUI)

CLI

- 純文字

- 速度快

- 較不直觀(因人而異)

GUI

- 圖形界面

- 會比 CLI 慢一點

- 較直覺

能把 CLI 用習慣最好,效率會更高

Linux 基本指令

Shell

Shell

OS

Hardware

常見 Shell

Bash

- 多數 Linux 預設 Shell

- 相容性最好

Zsh

- macOS 預設 Shell

- plugins 很多

Fish Shell

- 相對冷門的 Shell

- 但自動補全超好用

Commands

所有 command 的格式

ls -a ckeisc_44th

要執行的 command

選項(可選)

參數(由 command 決定)

常用指令 (1)

- whoami (顯示當前使用者)

- man (查看指令的幫助文檔)

- cd (切換資料夾)

- ls (顯示當前資料夾下的所有檔案和資料夾)

- pwd (印出當前路徑)

- mkdir (創建資料夾)

- rm (刪除檔案、資料夾)

- cp (複製檔案、資料夾)

- touch (確認一個檔案存不存在)

- mv (移動或重新命名檔案 or 資料夾)

- cat (輸出檔案內容)

- sudo (以 root 身份執行指令)

常用指令 (2)

- echo (輸出文字)

- grep (搜尋文件內的特定關鍵字)

- sort (輸出排序後的文字)

- vim (打開 vim 編輯器)

- apt (安裝程式)

whoami

whoami

作用:印出當前的使用者

man (manual)

man <command> # 查詢一個指令的用法

作用:查詢特定指令或程式的用法

男人,什麼罐頭我說,曼巴出去

pwd (print working directory)

pwd # 顯示當前路徑

作用:顯示當前路徑

ls (list)

ls # 列出當前路徑下的檔案和資料夾
參數
-a # 列出當前路徑下所有的檔案和資料夾(包含隱藏檔案)
-R # 列出當前路徑下所有的檔案和資料夾(包含資料夾內的)
-l # 列出詳細資訊

作用:列出當前路徑的資料夾和檔案

cd (change directory)

cd <dir> # 移動至目錄
cd .. # 移動到當前路徑上一層的資料夾
cd ~ # 移動到家目錄

作用:移動到特定路徑

mkdir (make directory)

mkdir <dir> # 創建資料夾

作用:創建資料夾

rm (remove)

rm <file> # 刪除檔案
參數
-i 刪除前確認,強烈建議每次用 rm 都加這個參數
-r 刪除資料夾和其中檔案
-f 刪除前一律不確認

作用:刪除檔案或資料夾

cp (copy)

cp <file1> <file2> # 將 file1 複製到 file2
參數
-r 複製資料夾和裡面的檔案

作用:複製檔案或資料夾

touch

touch <file> # 創建檔案或更改檔案被修改時間

作用:檢查檔案存不存在(不存在就創建檔案)

mv

mv <file> <folder> # 將檔案移到資料夾下
mv <file1> <file2> # 將 file1 改名成 file2
mv <dir1> <dir2> # 資料夾,同理

作用:重新命名 or 移動資料夾和檔案

cat (concatenate)

cat <file> # 印出檔案內容

作用:印出檔案內容

sudo (super user do)

sudo rm -rf <dir> # 強制刪除資料夾

作用:以管理員 (super user) 的身份執行指令

            (謹慎使用!謹慎使用!謹慎使用!)

echo

echo "Hello World" # 輸出 Hello World
echo "Hello CKEISC" > hello.txt # 將 hello.txt 的內容改為 Hello CKEISC 
echo "Hello FGISC" >> hello.txt # 在 hello.txt 的尾端加上 Hello FGISC

作用:輸出文字

grep

grep <text> <file> # 在 file 內尋找包含 text 的行
grep -r <text> <dir> # 在資料夾和其底下的資料夾和檔案內搜尋

作用:在文件裡搜尋特定關鍵字

sort

sort <file> # 將 file 內的文字排序後輸出

作用:輸出 (照 A - Z) 排序好的文字

Vim

vim <file>

作用:以 Vim 編輯器開啟檔案

Vim

- 編輯器之神

- 用習慣效率飛起,完全不用滑鼠

- 不知道為什麼建電很多學術愛用(?

模式

- Vim 最重要的概念

- 有點像開手排車,每個模式都能做的事不一樣

- 最重要的三個模式: Normal, Insert, Visual

- Normal Mode - 移動、基本操作

- Insert Mode - 寫東西

- Visual Mode - 選取模式

切換模式

(上屆建電學術長 807 做的圖,贊ㄟ)

按 v

按 i

按 esc

Normal Mode

- 一進來時的模式 (在 Visual or Insert Mode 下按 ESC 進入)

- 按 h/j/k/l (左/下/上/右)移動

- dd 刪除一行

- yy 複製一行

- p 貼上複製的內容

- :wq 存檔退出

- :q! 強制退出(! 代表強制)

Insert Mode

- Normal Mode 下按 i 進入

- 就,打字

Visual Mode

- Normal Mode 下按 v 進入

- 移動跟 Normal Mode 一樣

- 差別是每次移動都會選取文字

- y 複製

- d 刪除

Vim 還有更多用法,可以私下來問講師或自己找教學

apt

sudo apt install <package> # 安裝 package

作用:安裝程式

覺得太多東西記不起來嗎

小問題,多用就熟了

線上 Shell

- Google 提供的線上 Shell 環境,預設 Bash

- 點進去登 Google 帳號

- 登入後會看到像下面一樣的畫面

- 輸入 sudo unminimize 後照它的提示跑完就成功了

練習

- #1

  創建一個資料夾 CKEFGISC,裡面有 CKEISC.txt 和 FGISC.txt

- #2

  承上,將 "Hello CKEISC" 寫入 CKEISC.txt 裡,並輸出之

- #3

  使用 apt 安裝 neofetch,並執行之。然後截個圖,發限動炫耀

 

先玩玩看,玩完再做練習

Thanks for listening

2024 建北電資上學期資安小社[0]——課程介紹

By Aaron Wu

2024 建北電資上學期資安小社[0]——課程介紹

  • 345