關聯筆記:Google Cybersecurity Certificate > C4 課程總覽
C4W2 — Linux 作業系統(The Linux operating system)
Module 2: 認識 Linux 的架構、發行版和 Shell
目錄
一、Linux 簡介
1. Linux 的起源
Linux 誕生於 1990 年代初期,由兩個人的工作合流而成:
| 人物 | 貢獻 | 目標 |
|---|---|---|
| Linus Torvalds | 開發了 Linux kernel(核心) | 改進 UNIX,讓它開源、任何人都能使用 |
| Richard Stallman | 開發了 GNU(基於 UNIX 的作業系統) | 建立完全自由、開源的軟體生態 |
Stallman 的 GNU 缺少一個 kernel,Torvalds 的 kernel 剛好補上這個缺口——兩者結合就是我們今天說的「Linux」。
Linux 及其許多附帶程式採用 GNU Public License(GPL) 授權,允許任何人自由使用、分享和修改。
2. Linux 的三大特色
| 特色 | 說明 |
|---|---|
| 完全開源 | 任何人都能存取原始碼,整個開發者社群共同協作改進 |
| 高度客製化 | 超過 600 種發行版(distributions),針對不同用途設計 |
| 資安產業標配 | 許多安全工具和程式原生支援 Linux,是資安分析師的日常工具 |
3. 資安分析師如何使用 Linux
在入門級資安崗位中,你會用 Linux 來:
| 使用場景 | 說明 |
|---|---|
| 檢視日誌 | 查看各種系統日誌(例如錯誤日誌)來調查系統問題 |
| 身份與存取管理 | 驗證存取權限和授權(identity and access management),確保系統安全 |
| 使用專門發行版 | 用數位鑑識(digital forensics)工具調查警報事件,或用滲透測試(pen testing)工具在攻擊性安全中尋找漏洞 |
二、Linux 架構
1. 六層架構總覽
Linux 的架構由六個元件組成,就像建築的不同樓層,每層各有功能:
使用者(User)
↓ 發起操作
應用程式(Applications)
↓ 透過套件管理器安裝和管理
Shell(命令列直譯器)
↓ 把使用者的指令翻譯給 kernel
檔案系統階層標準(FHS)── 組織資料的存放位置
↓
Kernel(核心)── 管理程序和記憶體
↓ 透過驅動程式與硬體溝通
Hardware(硬體)── 實體元件2. 各層詳細說明
User(使用者)
使用者是與電腦互動的人,負責發起任務和指令。Linux 是多使用者系統(multi-user system),代表多個使用者可以同時使用同一台機器的資源。
Applications(應用程式)
應用程式是執行特定任務的程式(如文字編輯器、計算機)。在 Linux 中:
- 有些應用程式預裝在系統上(如計算機、日曆)
- 其他需要透過**套件管理器(package manager)**安裝
- 常用範例:Nano(文字編輯器)
套件(Package)
一個套件是一塊可以跟其他套件結合形成應用程式的軟體。套件包含安裝應用程式所需的檔案,包括依賴項(dependencies)——執行應用程式所需的輔助檔案。
Shell(命令列直譯器)
Shell 是 Linux 架構中你會最常互動的部分。它是文字型的命令列直譯器,負責:
- 接收你輸入的文字指令
- 把指令翻譯給 kernel 執行
- 把結果回傳給你
可以把 Shell 想成你和電腦之間的翻譯員——你不會說二進位語言,Shell 幫你溝通。
Filesystem Hierarchy Standard(FHS,檔案系統階層標準)
FHS 是 Linux 組織資料的方式,規定了資料在 OS 中的存放位置。
- 目錄(Directory):組織其他檔案存放位置的檔案,也叫「資料夾」
- 目錄可以包含檔案或其他目錄
- FHS 定義了目錄結構,讓 OS 知道去哪裡找特定資料
可以把 FHS 想成一個檔案櫃——每個抽屜有標籤,資料按規則分類存放。
Kernel(核心)
Kernel 是 Linux OS 中管理程序和記憶體的元件,是 Linux 特有的核心。它負責:
- 跟應用程式溝通,轉發指令
- 透過**驅動程式(drivers)**讓應用程式執行任務
- 控制硬體的所有主要功能
- 有效分配系統資源,讓系統跑得更快
Hardware(硬體)
硬體是電腦的實體元件,分為兩類:
| 類別 | 說明 | 範例 |
|---|---|---|
| 周邊裝置(Peripheral devices) | 連接在電腦上、可以自由新增或移除的外部設備 | 螢幕、印表機、鍵盤、滑鼠 |
| 內部硬體(Internal hardware) | 電腦運作必需的核心元件,裝在主機板(motherboard)上 | CPU、RAM、硬碟 |
三大內部硬體:
| 元件 | 功能 | 資料特性 |
|---|---|---|
| CPU(中央處理器) | 電腦的主要處理器,執行程式提供的指令 | 從 RAM 讀取資料來跑程式 |
| RAM(隨機存取記憶體) | 短期記憶體,暫存執行中的資料 | 程式關閉或電腦關機後資料消失 |
| Hard drive(硬碟) | 長期記憶體,儲存程式和檔案 | 關機後資料仍在,電腦可以有多顆硬碟 |
三、Linux 發行版
1. 什麼是發行版(Distribution)
因為 Linux kernel 是開源的,任何人都可以拿去修改、建立新版本——這些不同版本就叫發行版(distributions / distros)。目前有超過 600 種。
車輛比喻:kernel 就像引擎。車廠拿同一顆引擎做出卡車、轎車、公車、飛機——就像開發者拿同一個 kernel 建出不同發行版,各有不同的預裝程式、介面和用途。
每個發行版都包含:
- Linux kernel
- 工具程式(utilities)
- 套件管理系統(package management system)
- 安裝程式(installer)
2. 發行版家族關係
所有發行版都衍生自某個母發行版(parent distribution):
Debian
├── Ubuntu
├── KALI LINUX™
└── Parrot
Red Hat®
├── CentOS(2021 年最後穩定版)
├── AlmaLinux(CentOS 的替代品)
└── ...
Slackware®
└── SUSE®3. 資安常用發行版比較
| 發行版 | 基於 | 特色 | 適用場景 |
|---|---|---|---|
| KALI LINUX™ | Debian | 預裝大量滲透測試和數位鑑識工具 | 滲透測試、數位鑑識 |
| Ubuntu | Debian | 使用者友善,同時有 CLI 和 GUI,社群資源豐富 | 通用安全工作、雲端運算 |
| Parrot | Debian | 預裝安全工具,GUI 友善 | 滲透測試、數位鑑識 |
| Red Hat® Enterprise Linux® | Red Hat | 訂閱制(付費),提供專屬客服支援 | 企業環境 |
| AlmaLinux | Red Hat | 社群驅動,CentOS 8 的直接替代品(drop-in replacement) | 企業環境(免費替代方案) |
4. KALI LINUX™ 深入介紹
KALI LINUX™ 是資安領域最廣泛使用的發行版之一,由 Offensive Security 開發。
使用注意
KALI LINUX™ 應該在虛擬機(VM)中使用,避免其工具被不當使用時損壞主系統。使用 VM 還有一個好處:可以還原到先前狀態。
滲透測試工具:
| 工具 | 用途 |
|---|---|
| Metasploit | 尋找並利用機器上的漏洞 |
| Burp Suite | 測試 Web 應用程式的弱點 |
| John the Ripper | 猜測密碼(密碼破解) |
數位鑑識工具:
| 工具 | 用途 |
|---|---|
| tcpdump | 命令列封包分析器,用於擷取網路流量 |
| Wireshark | 圖形介面網路流量分析工具,可分析即時和已擷取的網路封包 |
| Autopsy | 分析硬碟和智慧型手機的鑑識工具 |
滲透測試(Penetration Test)
一種模擬攻擊,幫助找出系統、網路、網站、應用程式和流程中的漏洞。資安專業人員隨著職涯發展,有些會專精於滲透測試。
數位鑑識(Digital Forensics)
收集和分析資料以判斷攻擊發生後發生了什麼事的過程。例如調查與網路活動相關的資料。
四、套件管理系統
1. 套件與套件管理器
| 概念 | 說明 |
|---|---|
| 套件(Package) | 一塊軟體,可以跟其他套件結合形成應用程式。有些套件大到足以獨立成為應用程式 |
| 依賴項(Dependencies) | 執行應用程式所需的輔助檔案,包含在套件中 |
| 套件管理器(Package manager) | 幫助使用者安裝、管理和移除套件或應用程式的工具。也能處理依賴項問題 |
保持更新
應盡可能使用套件的最新版本。最新版本包含最新的 bug 修復和安全補丁(security patches),有助於保持系統安全。
2. 套件管理器 vs 套件管理工具
Linux 有兩層套件管理系統:底層的套件管理器和上層的套件管理工具。
| 層級 | Debian 系 | Red Hat 系 | 說明 |
|---|---|---|---|
| 底層:套件管理器 | dpkg(.deb 檔案) | RPM(.rpm 檔案) | 直接處理套件檔案 |
| 上層:套件管理工具 | APT(Advanced Package Tool) | YUM(Yellowdog Updater Modified) | 透過命令列介面更方便地管理套件,處理搜尋、安裝等日常操作 |
檔案命名格式:
- Debian 系:
Package_Version-Release_Architecture.deb - Red Hat 系:
Package-Version-Release_Architecture.rpm
實作範例:用 APT 安裝 Suricata
# 安裝 Suricata(網路入侵偵測工具) sudo apt install suricata # 驗證安裝 suricata # 移除 Suricata sudo apt remove suricata # 列出所有已安裝的套件 apt list --installed
sudo是必要的,因為安裝和移除軟體需要提升權限(elevated privileges)。
五、Shell 基礎
1. Shell 是什麼
Shell 就是命令列直譯器(command-line interpreter)——你在裡面輸入指令,Shell 翻譯給 kernel 執行,再把結果回傳給你。
Shell 讓你可以:
- 執行數學運算
- 執行測試
- 執行應用程式
- 組合操作、連結應用程式,執行複雜的自動化任務
2. Shell 的種類
就像 Linux 有很多發行版,Shell 也有很多種類:
| Shell | 全名 | 提示符號 | 說明 |
|---|---|---|---|
| bash | Bourne-Again Shell | $ | 大多數 Linux 發行版的預設 Shell,資安領域最常用 |
| csh | C Shell | — | 語法類似 C 語言 |
| ksh | Korn Shell | $ | — |
| tcsh | Enhanced C Shell | — | csh 的增強版 |
| zsh | Z Shell | % | 功能豐富的現代 Shell |
所有 Linux Shell 都使用相同的基本 Linux 指令,但在其他功能上可能有所不同(例如提示符號)。
本課程使用 Bash
Bash 是大多數 Linux 發行版的預設 Shell,也是資安領域最常用的 Shell。後續課程會學習在 Bash 中輸入 Linux 指令。
3. 標準輸入、輸出與錯誤
跟 Shell 溝通就像跟朋友對話:你問問題、朋友回答;如果朋友不知道答案,會跟你說不知道。
| 概念 | 英文 | 說明 | 類比 |
|---|---|---|---|
| 標準輸入 | Standard input (stdin) | 透過命令列傳給 OS 的資訊(你從鍵盤輸入的指令) | 你問朋友一個問題 |
| 標準輸出 | Standard output (stdout) | OS 透過 Shell 回傳的資訊(指令的執行結果) | 朋友給你回答 |
| 標準錯誤 | Standard error (stderr) | OS 透過 Shell 回傳的錯誤訊息 | 朋友說「我不知道」或「你問錯了」 |
範例:echo 指令
# 輸入(stdin):echo hello # 輸出(stdout):hello echo hello hello # 輸入打錯字:eco hello(故意拼錯 echo) # 錯誤(stderr):-bash: eco: command not found eco hello -bash: eco: command not found
常見觸發 stderr 的情況:
- 指令拼錯
- 系統不認識該指令
- 沒有足夠的權限執行指令
字串資料(String data)
由一串有序字元組成的資料。例如
echo hello中的hello就是字串資料。可以用引號包住字串(如echo "hello"),告訴 Shell 將整串字元視為一組。
六、術語速查表
| 術語 | 英文 | 定義 |
|---|---|---|
| 應用程式 | Application | 執行特定任務的程式 |
| Bash | Bourne-Again Shell | 大多數 Linux 發行版的預設 Shell |
| 中央處理器 | CPU (Central Processing Unit) | 電腦的主要處理器,執行一般運算任務 |
| 指令 | Command | 告訴電腦做某件事的指示 |
| 數位鑑識 | Digital forensics | 收集和分析資料以判斷攻擊後發生了什麼事 |
| 目錄 | Directory | 組織其他檔案存放位置的檔案 |
| 發行版 | Distributions | Linux 的不同版本 |
| 檔案路徑 | File path | 檔案或目錄的位置 |
| 檔案系統階層標準 | Filesystem Hierarchy Standard (FHS) | Linux OS 中組織資料的元件 |
| 硬碟 | Hard drive | 用於長期記憶的硬體元件 |
| 內部硬體 | Internal hardware | 電腦運作必需的元件 |
| Kernel | — | Linux OS 中管理程序和記憶體的元件 |
| 套件 | Package | 可與其他套件結合形成應用程式的軟體 |
| 套件管理器 | Package manager | 幫助使用者安裝、管理和移除套件的工具 |
| 周邊裝置 | Peripheral devices | 連接在電腦上、可自由新增移除的硬體元件 |
| 滲透測試 | Penetration test (pen test) | 模擬攻擊,幫助找出系統漏洞 |
| Shell | — | 命令列直譯器 |
| 標準錯誤 | Standard error | OS 透過 Shell 回傳的錯誤訊息 |
| 標準輸入 | Standard input | 透過命令列傳給 OS 的資訊 |
| 標準輸出 | Standard output | OS 透過 Shell 回傳的資訊 |
| 字串資料 | String data | 由一串有序字元組成的資料 |
關聯筆記:C4W1 作業系統入門 · C4W3 Bash 指令
筆記建立日期:2026-05-27 | 最後更新:2026-05-27