National Yang Ming Chiao Tung University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try a Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

1

Local AI

--

Uedu Code

--

陽明交大 AQI 69 24°C PM2.5 26
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 07

查指令說明

指令格式、Linux 手冊與 man page 內容
Interaction 15 minute(s)

Learning Objectives

  • 看懂「指令 選項 參數」的格式,分辨短選項、長選項與參數
  • 用 --help 查看指令的簡短用法,用 man 開啟完整手冊並看懂 NAME、SYNOPSIS、DESCRIPTION 等區塊
  • 知道手冊的章節編號,用 man 5 passwd 指定章節,並在手冊裡翻頁、搜尋、離開
  • 用 whatis、apropos(man -k)找指令,用 type 分辨 shell 內建指令與外部指令

指令記不住,就查說明

Linux 有上千個指令,每個指令又有幾十個選項,沒有人能全部記住。熟練的使用者不是背得多,而是知道怎麼查:

想知道的事 用什麼
這個指令有哪些選項? 指令 --help
完整的用法與說明 man 指令
這個指令是做什麼的?(一行說明) whatis 指令
想做某件事,但不知道指令叫什麼 apropos 關鍵字 或 man -k 關鍵字
這個指令是 shell 內建的,還是一支程式? type 指令

這一課先看懂指令的格式,再逐一練習這些查詢方法。

指令格式:指令 選項 參數

大部分的指令都遵守同樣的格式,中間以空格分開:

指令 [選項] [參數]
  • 指令:要執行的程式,例如 ls、cp
  • 選項(option):調整指令的行為,以 - 開頭。短選項是一個字母(-l),可以合併寫(-la 等於 -l -a); 長選項以 -- 開頭、是完整的單字(--all、--help)
  • 參數(argument):指令要處理的對象,通常是檔案或目錄
  • 方括號 [ ] 表示可以省略
指令 選項 參數 意思
ls -l ./ -l 以詳細清單列出 ./ 目前目錄 列出目前目錄的詳細資訊
cp -v ./aa.txt ./bb.txt -v 顯示執行過程 來源 ./aa.txt、目的 ./bb.txt 把 aa.txt 複製成 bb.txt
cat -n ./aa.txt -n 加上行號 ./aa.txt 顯示 aa.txt 的內容並列出行號
rm ./dev00.file (沒有) ./dev00.file 刪除 dev00.file

投影片說 rm 不加選項時會詢問是否刪除,那是因為該系統把 rm 設成了 rm -i 的別名。 Ubuntu 預設沒有這個別名,rm 會直接刪除,不會詢問。

每個指令都可以加 --help,例如 ls --help、cp --help,印出用法與所有選項的簡短說明, 適合「大概知道指令,只是忘了某個選項」的時候。

Linux 的手冊:man

man(manual)會開啟指令的手冊頁(manual page,簡稱 man page),這是 Linux 內建的線上說明系統。 例如 man ls 開啟 ls 的手冊,內容分成幾個固定的區塊:

區塊 內容
NAME 指令名稱與一行用途說明
SYNOPSIS 指令的語法;[ ] 可以省略,... 可以重複
DESCRIPTION 詳細說明,通常也列出所有選項
OPTIONS 選項的說明(有些手冊把選項併在 DESCRIPTION)
EXAMPLES 使用範例(不是每份手冊都有)
SEE ALSO 相關的其他手冊

手冊在終端機裡以翻頁的方式顯示,常用的按鍵:

按鍵 作用
Space、Page Down 往下翻一頁
Page Up 往上翻一頁
Home、End 到第一頁、最後一頁
/字串 往下搜尋這個字串,例如 /sort
?字串 往上搜尋
n、N 跳到下一個、上一個搜尋結果
q 離開手冊,回到提示字元

下方的模擬器把手冊內容顯示在檢視區,不需要按 q。在真的終端機上,看完手冊一定要按 q 才能回到提示字元。 如果 man 顯示 This system has been minimized,表示安裝時選了精簡(minimized)版本,手冊被移除了,照畫面的說明執行 unminimize 可以補回。

手冊的章節編號

手冊分成好幾個章節(section),同一個名稱可能出現在不同章節。man man 的說明裡有這張表:

章節 內容
1 一般使用者可以執行的指令或程式
2 系統呼叫(由核心提供的函數)
3 函式庫裡的函數
4 特殊檔案(通常在 /dev)
5 設定檔與檔案格式,例如 /etc/passwd
6 遊戲
7 其他(慣例、協定等)
8 系統管理指令(通常要 root 權限)
9 核心相關的函數(非標準)

passwd 既是改密碼的指令(第 1 章),也是帳號設定檔 /etc/passwd 的名稱(第 5 章)。文件裡常寫成 passwd(1)、passwd(5) 來區分:

man passwd      # 不指定章節:開啟找到的第一個,也就是 passwd(1)
man 5 passwd    # 指定第 5 章:/etc/passwd 檔案的格式

whatis 只印出手冊的一行說明,可以先用它看有哪些章節:

$ whatis passwd
passwd (1)           - change user password
passwd (5)           - the password file

不知道指令名稱時,用 apropos 關鍵字(等於 man -k 關鍵字)搜尋所有手冊的一行說明。

type:內建指令與外部指令

指令分成兩種:

  • 外部指令:一支放在磁碟上的程式,例如 /usr/bin/cp。有手冊,可以用 man 查。
  • shell 內建指令(builtin):寫在 bash 本身裡面的指令,例如 cd、history、alias、type。 它們沒有獨立的手冊,man cd 會找不到;要用 bash 的 help 指令查,例如 help cd。

type 可以分辨一個名稱屬於哪一種:

$ type cd
cd is a shell builtin
$ type cp
cp is /usr/bin/cp
$ type ll
ll is aliased to `ls -alF'

cd 必須是內建指令:它要改變的是 shell 自己的目前目錄,另外啟動一支程式無法做到這件事。

互動練習:查指令說明

這一段對應投影片的 Lab1、Lab2:先用「指令 選項 參數」的格式操作檔案,再用 --help、man、whatis、apropos 查說明,最後用 type 分辨內建指令與外部指令。按鈕送出的是真的指令;按下 man 類的按鈕後,手冊內容會顯示在檢視區。man cd 是故意會失敗的按鈕,看看內建指令的說明要用什麼查。Lab3 的「在手冊中搜尋關鍵字」需要按鍵盤,請在自己的 Ubuntu 上執行 man ls 後輸入 /sort 試試看。

查說明的順序

遇到不熟的指令,可以照這個順序查:

  1. whatis 指令:先確認它是做什麼的、有哪些章節
  2. 指令 --help:快速看選項清單
  3. man 指令:需要完整說明時再開手冊,用 /關鍵字 跳到想看的地方
  4. 名稱忘了:apropos 關鍵字,例如 apropos directory 找出所有和目錄有關的指令
  5. man 找不到:用 type 看看是不是內建指令,是的話改用 help 指令

手冊與 --help 多半是英文。看到不懂的選項,可以把那一段說明複製給 AI 助教,請它舉例說明,再回到終端機實際試一次。

想一想:指令格式與 --help

1.

在 cp -v ./aa.txt ./bb.txt 裡,-v 是什麼?

2.

ls -la 和下列哪一個寫法的效果相同?

3.

在 Ubuntu 上執行 rm ./dev00.file(沒有任何選項),會怎樣?

第 1 次作答

想一想:man、章節與 type

1.

想看 /etc/passwd 這個檔案每個欄位的意思,應該用哪一個指令?

2.

正在看 man ls,想找出所有提到 sort 的地方並離開手冊,要按哪些鍵?

3.

man cd 出現 No manual entry for cd,type cd 顯示 cd is a shell builtin。要查 cd 的用法,該怎麼做?

第 1 次作答

重點精華回顧

  • 指令格式是「指令 [選項] [參數]」;短選項 -l 可以合併成 -la,長選項以 -- 開頭。
  • 指令 --help 快速列出用法與選項。
  • man 指令 開啟手冊,主要區塊有 NAME、SYNOPSIS、DESCRIPTION、OPTIONS、SEE ALSO;/字串 搜尋、n 下一個、q 離開。
  • 手冊分章節:1 一般指令、5 設定檔與檔案格式、8 系統管理指令;man 5 passwd 指定章節。
  • whatis 印出一行說明;apropos(man -k)用關鍵字找指令。
  • type 分辨內建指令、外部指令與別名;內建指令用 help 查說明。
這一課完成了!
Next lesson:檔案系統
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。