「緯育 2026-0320」修訂間的差異

出自頂極製作所
(建立內容為「== Linux 基礎指令 == 本次講座主要介紹 Linux/Unix 系統中的核心概念與基礎指令。講師首先詳細解釋了控制檯 (Console) 和終端機…」的新頁面)
 
行 65: 行 65:
* /etc/passwd 檔案: Linux 系統中儲存使用者帳號資訊的純文字檔案,可使用 less /etc/passwd 查看其內容。
* /etc/passwd 檔案: Linux 系統中儲存使用者帳號資訊的純文字檔案,可使用 less /etc/passwd 查看其內容。
[[檔案:2026-0320-02.png|800px]]
[[檔案:2026-0320-02.png|800px]]
=== 指令與Shell基礎 ===
* Linux/Unix與微軟指令的差異
** 命名風格:微軟指令多為完整單字(COPY, MOVE, CLS),而Linux/Unix指令偏向縮寫(cp, mv, clear)。
** clear指令可用快捷鍵Ctrl+L,但支援性取決於Shell。
* Shell(命令列介面)的概念
** Shell是使用者與核心溝通的程式,常見的有Bash(Linux預設)、SH(舊版UNIX)、CSH(BSD)、Zsh(macOS新預設)。
* 重設螢幕指令 (reset)
** 當終端機畫面顯示異常或亂碼時,使用reset或tset指令可重新初始化,避免因登出中斷背景任務。
=== 目錄與路徑操作 ===
* 查詢目前所在目錄 (pwd)
** pwd(Print Working Directory)用於顯示當前的絕對路徑,在提示符未顯示完整路徑時特別有用。
* 列出目錄內容 (ls)
** 相當於微軟的dir,用於列出檔案與目錄。
** 常用參數:
** -a: 顯示所有檔案,包括以 . 開頭的隱藏檔。
** -l: 以長格式顯示詳細資訊(權限、擁有者、大小、時間等)。
** -F: 顯示檔案類型(如目錄加/,執行檔加*)。
** -s, -t, -r: 分別依大小、時間、反向排序。
* 切換目錄 (cd)
** 此指令在Linux與微軟系統中通用。
** 路徑概念:
** 絕對路徑:從根目錄/開始的完整路徑(如cd /etc)。
** 相對路徑:相對於目前目錄的路徑,不以/開頭(如cd .cache)。
** 特殊符號:
** .: 代表目前目錄。
** ..: 代表上一層目錄。
** ~: 代表目前使用者的家目錄(cd ~或單獨cd可快速返回家目錄)。
** -: 代表上一個工作目錄,可在最近兩個目錄間快速切換(微軟無此功能)。
=== Linux 檔案系統層次結構標準 (FHS) ===
* FHS(Filesystem Hierarchy Standard)定義了Linux根目錄下各目錄的標準用途,確保軟體相容性。
* 根目錄 (/)
** Linux檔案系統的頂層,相當於Windows的磁碟機代號。
* 重要子目錄詳解:
** /bin (Binary):存放所有使用者皆可執行的基本指令。
** /boot:存放開機相關檔案,如開機選單設定(grub)和Linux核心(vmlinuz)。
** /dev (Device):存放設備檔案。硬體(如硬碟sda、隨身碟sdb)插入時,系統會在此生成對應檔案。
** /etc (Et cetera):存放所有系統和服務的設定檔,管理相對集中。
** /home:存放一般使用者的家目錄,每個帳號對應一個子目錄。
** /lib (Library):存放系統運作所需的函式庫及核心模組(驅動程式)。
** /lost+found:ext系列檔案系統特有,用於存放因意外斷電等原因遺失的檔案片段。
** /media & /mnt (Mount):用於掛載外部儲存設備(如隨身碟、光碟)的掛載點。/media常用於經常性掛載,/mnt常用於臨時性掛載。
** /opt (Option):用於存放非作業系統官方提供的第三方軟體。
** /proc (Process):一個虛擬檔案系統,存在於記憶體中,反映系統當前所有程序的即時資訊。以程序ID(PID)命名的數字目錄包含該程序的詳細資訊。PID為1的程序是系統啟動的第一個程序,管理所有使用者程序。
** /root:超級使用者root的家目錄,與一般使用者分開存放以策安全。
** /run:存放執行中服務的暫存檔,如.pid檔,記錄服務的程序ID。
** /sbin (System Binary):存放系統管理員使用的系統級指令,如格式化磁碟等。
** /snap:Ubuntu特有的目錄,用於存放Snap套件,提供沙盒化的安全執行環境。
** /srv (Service):存放服務提供的資料,如網頁伺服器的網站檔案。
** /sys:與/proc類似的虛擬檔案系統,反映核心偵測到的硬體設備資訊。udev服務會監控此目錄變化,並在/dev下自動建立設備檔案。
** /tmp (Temporary):系統的通用臨時資料夾。
** /usr (User):存放使用者安裝的非系統基本軟體及其相關檔案(指令、函式庫等)。現代Linux系統常將根目錄下的bin, sbin, lib等透過符號連結指向/usr內的對應目錄,以統一管理。
** /var (Variable):專門存放經常變動的檔案,如快取、資料庫、遊戲存檔等。
** /var/log:存放所有系統和服務的日誌檔案(Log),是問題排查時最重要的目錄。
=== 使用者與家目錄 ===
* 家目錄(Home Directory)結構
** Linux/Unix:root使用者的家目錄在/root;一般使用者在/home/<username>。
** Windows:所有使用者(包括管理員)的設定檔都存放在C:\Users底下。
* 安全性考量:CentOS和Ubuntu預設不讓root直接登入,旨在提升系統安全性,與微軟作法相似。
[[檔案:2026-0320-03.png|800px]]

於 2026年3月20日 (五) 06:17 的修訂

Linux 基礎指令

本次講座主要介紹 Linux/Unix 系統中的核心概念與基礎指令。講師首先詳細解釋了控制檯 (Console) 和終端機 (Terminal) 的定義、差異及實際應用。控制檯是本地端直接操作的設備,而終端機則用於遠端連線。講座中也介紹了 Linux 的共通目錄架構,特別是 /dev 目錄,並強調「在 Unix/Linux 中,萬物皆為檔案」(Everything is a file) 的重要哲學。

接著,講師透過實際操作示範了多項基礎指令,包括虛擬控制檯 (TTY) 的切換、使用者登入登出、系統關機與重啟。並詳細解說了 Linux 指令的基本架構,包含指令本身、選項(長短選項的區別與用法)和參數。此外,也示範了 echo、date、cal 等常用指令,並說明如何自訂格式化輸出。

講座的另一大重點是查詢指令用法的三種主要方式:使用 --help 參數(可結合 | less 分頁檢視)、查閱 man 手冊(並介紹其章節編號的重要性,如 man 1 passwd 與 man 5 passwd 的區別),以及使用 info 指令。

Linux 基礎概念與課程介紹

  • 課程內容概述
    • 介紹 Linux 系統的基本操作,包括開關機與重啟。
    • 講解 Linux 的目錄架構,說明各個通用目錄的用途。
    • 大量介紹指令的架構、用法以及如何在本機查詢指令說明。
    • 介紹檔案與目錄的操作指令。
  • Linux 目錄架構共通性
    • 不同的 Linux 發行版(如 Ubuntu, CentOS)或類 Unix 系統(如 macOS)都擁有共通的核心目錄結構。基礎架構大致一致,各發行版可能會有其特有的額外目錄。

控制檯 (Console)、終端機 (Terminal) 與 TTY/PTS

  • 控制檯 (Console) vs. 終端機 (Terminal)
    • 共通點: 兩者都是使用者與系統溝通的介面,用於執行指令、變更設定或顯示資訊。
    • 控制檯 (Console): 指使用者直接在電腦主機的螢幕前進行的「本地端」操作。Linux 系統只有一個真實 Console,其餘為軟體模擬的虛擬控制檯 (Virtual Console, TTY)。
    • 終端機 (Terminal): 指透過網路或纜線進行的「遠端連線」。在 Unix/Linux 中,也稱為偽終端機 (Pseudo Terminal, PTY 或 PTS)。
  • Linux 虛擬控制檯 (TTY)
    • 概念: Linux 透過軟體模擬出多個虛擬控制檯 (TTY),預設啟用 6 到 7 個。每個 TTY 都是獨立的登入介面,可在單一螢幕上實現多工操作。
    • 切換方式:
    • 使用快速鍵 Alt + F1 ~ F6 在不同 TTY 間切換。在圖形介面 (GUI) 下則需使用 Ctrl + Alt + F1 ~ F6。
    • 使用指令 chvt [編號] 切換,例如 chvt 4 切換至 TTY4。
    • 設備檔案: 虛擬控制檯對應的設備檔案位於 /dev 目錄下,如 /dev/tty1, /dev/tty2 等。可以使用 tty 指令查看當前所在的終端機。
  • 遠端連線與偽終端機 (PTS)
    • 連線原理: 透過 SSH 等方式遠端連線時,系統會建立一個偽終端機,並在 /dev/pts/ 目錄下生成一個對應的設備檔案,如 /dev/pts/0。
    • 生命週期: PTS 檔案在使用者成功登入後建立,登出後即被移除。
    • 桌面環境的終端機: 在圖形介面中開啟的「終端機」應用程式,本質上也是一個偽終端機 (PTS)。
  • Everything is a file 哲學
    • Unix/Linux 的核心哲學是「萬物皆為檔案」。硬體設備、控制檯、終端機都以檔案形式存在於 /dev 目錄。
    • 使用者在 TTY 或 PTS 輸入的文字,實際上是與對應的設備檔案進行 I/O 溝通。可利用此特性進行跨終端機訊息傳遞,例如 echo "hello" > /dev/tty4。

使用者登入、登出與系統開關機

  • 使用者登入與登出
    • 登入 (Login): 輸入帳號密碼登入。系統會記錄所有登入嘗試,包括失敗記錄。
    • 登出 (Logout): 可使用 exit、logout 指令或 Ctrl + D 快捷鍵。
  • 系統關機與重開機
    • 關機 (Shutdown):
    • 常用指令:poweroff, halt, shutdown -h now。
    • 定時關機:shutdown -h 10 (10分鐘後關機)。
    • 重開機 (Reboot):
    • 常用指令:reboot, shutdown -r now。
    • 定時重開機:shutdown -r 10 (10分鐘後重開機)。
    • 取消排程: 使用 shutdown -c 可以取消已預約的關機或重開機任務。

Linux 指令結構與查詢方法

  • 指令基本結構
    • 組成:指令 [選項] [參數],各部分以空白隔開。
    • 選項 (Option):
    • 長選項 (Long Option): 格式為 --單字 (如 --help),語意清晰但無法合併。
    • 短選項 (Short Option): 格式為 -字母 (如 -h),輸入快且可合併 (如 -al),但較不直觀。
    • 參數 (Argument): 指令操作的對象,其意義由指令和選項決定。
  • 指令用法查詢方法
    • 方法一:--help 參數:
    • 用法:[指令名稱] --help,提供快速簡潔的說明。
    • 搭配 | less: 當說明過長時,可使用 [指令] --help | less 進行分頁瀏覽。
    • 方法二:man 手冊 (manual pages):
    • 用法:man [指令名稱],提供最詳細、結構化的官方文件。
    • 操作:可用 g/G 跳至頭尾,/ 進行搜尋,n/N 跳至下/上一個結果,q 退出。
    • 章節編號: man 手冊分為 8 個主要章節,用以區分不同類型的主題。例如 passwd 指令(章節1)和 /etc/passwd 檔案格式(章節5)。可使用 man [章節] [名稱] 查詢特定章節,如 man 5 passwd。
    • 方法三:info 指令:
    • 用法:info [指令名稱],提供超連結式的節點文件,類似線上書籍。此為獨立套件,部分精簡系統可能需另外安裝。

基礎指令範例

  • echo 指令: 將後方字串印出到標準輸出(螢幕),可透過重導向輸出至檔案或設備。
  • date 指令: 顯示或設定系統時間日期。可使用 + 搭配格式化字元自訂輸出,例如 date +"%A, %B %d, %Y"。
  • cal 指令: 顯示月曆。可接受年份、月份作為參數,如 cal 1 2020。在某些新版系統(如 Ubuntu 22.04)中可能需透過 apt install ncal 安裝。
  • /etc/passwd 檔案: Linux 系統中儲存使用者帳號資訊的純文字檔案,可使用 less /etc/passwd 查看其內容。

2026-0320-02.png

指令與Shell基礎

  • Linux/Unix與微軟指令的差異
    • 命名風格:微軟指令多為完整單字(COPY, MOVE, CLS),而Linux/Unix指令偏向縮寫(cp, mv, clear)。
    • clear指令可用快捷鍵Ctrl+L,但支援性取決於Shell。
  • Shell(命令列介面)的概念
    • Shell是使用者與核心溝通的程式,常見的有Bash(Linux預設)、SH(舊版UNIX)、CSH(BSD)、Zsh(macOS新預設)。
  • 重設螢幕指令 (reset)
    • 當終端機畫面顯示異常或亂碼時,使用reset或tset指令可重新初始化,避免因登出中斷背景任務。

目錄與路徑操作

  • 查詢目前所在目錄 (pwd)
    • pwd(Print Working Directory)用於顯示當前的絕對路徑,在提示符未顯示完整路徑時特別有用。
  • 列出目錄內容 (ls)
    • 相當於微軟的dir,用於列出檔案與目錄。
    • 常用參數:
    • -a: 顯示所有檔案,包括以 . 開頭的隱藏檔。
    • -l: 以長格式顯示詳細資訊(權限、擁有者、大小、時間等)。
    • -F: 顯示檔案類型(如目錄加/,執行檔加*)。
    • -s, -t, -r: 分別依大小、時間、反向排序。
  • 切換目錄 (cd)
    • 此指令在Linux與微軟系統中通用。
    • 路徑概念:
    • 絕對路徑:從根目錄/開始的完整路徑(如cd /etc)。
    • 相對路徑:相對於目前目錄的路徑,不以/開頭(如cd .cache)。
    • 特殊符號:
    • .: 代表目前目錄。
    • ..: 代表上一層目錄。
    • ~: 代表目前使用者的家目錄(cd ~或單獨cd可快速返回家目錄)。
    • -: 代表上一個工作目錄,可在最近兩個目錄間快速切換(微軟無此功能)。

Linux 檔案系統層次結構標準 (FHS)

  • FHS(Filesystem Hierarchy Standard)定義了Linux根目錄下各目錄的標準用途,確保軟體相容性。
  • 根目錄 (/)
    • Linux檔案系統的頂層,相當於Windows的磁碟機代號。
  • 重要子目錄詳解:
    • /bin (Binary):存放所有使用者皆可執行的基本指令。
    • /boot:存放開機相關檔案,如開機選單設定(grub)和Linux核心(vmlinuz)。
    • /dev (Device):存放設備檔案。硬體(如硬碟sda、隨身碟sdb)插入時,系統會在此生成對應檔案。
    • /etc (Et cetera):存放所有系統和服務的設定檔,管理相對集中。
    • /home:存放一般使用者的家目錄,每個帳號對應一個子目錄。
    • /lib (Library):存放系統運作所需的函式庫及核心模組(驅動程式)。
    • /lost+found:ext系列檔案系統特有,用於存放因意外斷電等原因遺失的檔案片段。
    • /media & /mnt (Mount):用於掛載外部儲存設備(如隨身碟、光碟)的掛載點。/media常用於經常性掛載,/mnt常用於臨時性掛載。
    • /opt (Option):用於存放非作業系統官方提供的第三方軟體。
    • /proc (Process):一個虛擬檔案系統,存在於記憶體中,反映系統當前所有程序的即時資訊。以程序ID(PID)命名的數字目錄包含該程序的詳細資訊。PID為1的程序是系統啟動的第一個程序,管理所有使用者程序。
    • /root:超級使用者root的家目錄,與一般使用者分開存放以策安全。
    • /run:存放執行中服務的暫存檔,如.pid檔,記錄服務的程序ID。
    • /sbin (System Binary):存放系統管理員使用的系統級指令,如格式化磁碟等。
    • /snap:Ubuntu特有的目錄,用於存放Snap套件,提供沙盒化的安全執行環境。
    • /srv (Service):存放服務提供的資料,如網頁伺服器的網站檔案。
    • /sys:與/proc類似的虛擬檔案系統,反映核心偵測到的硬體設備資訊。udev服務會監控此目錄變化,並在/dev下自動建立設備檔案。
    • /tmp (Temporary):系統的通用臨時資料夾。
    • /usr (User):存放使用者安裝的非系統基本軟體及其相關檔案(指令、函式庫等)。現代Linux系統常將根目錄下的bin, sbin, lib等透過符號連結指向/usr內的對應目錄,以統一管理。
    • /var (Variable):專門存放經常變動的檔案,如快取、資料庫、遊戲存檔等。
    • /var/log:存放所有系統和服務的日誌檔案(Log),是問題排查時最重要的目錄。

使用者與家目錄

  • 家目錄(Home Directory)結構
    • Linux/Unix:root使用者的家目錄在/root;一般使用者在/home/<username>。
    • Windows:所有使用者(包括管理員)的設定檔都存放在C:\Users底下。
  • 安全性考量:CentOS和Ubuntu預設不讓root直接登入,旨在提升系統安全性,與微軟作法相似。

2026-0320-03.png