sys min exit spec 內部命令 linu 使用 工具 而是

筆記內容如下:

1、內建命令與外部命令之分
2、help , man , info命令的使用以及區別

內建命令與外部命令

有一些查看幫助的工具在內建命令與外建命令上是有區別對待的。

內建命令實際上是 shell 程序的一部分,其中包含的是一些比較簡單的 Linux 系統命令,這些命令是寫在bash源碼的builtins裏面的,由 shell 程序識別並在 shell 程序內部完成運行,通常在 Linux 系統加載運行時 shell 就被加載並駐留在系統內存中。而且解析內部命令 shell 不需要創建子進程,因此其執行速度比外部命令快。比如:history、cd、exit 等等。

外部命令是 Linux 系統中的實用程序部分,因為實用程序的功能通常都比較強大,所以其包含的程序量也會很大,在系統加載時並不隨系統一起被加載到內存中,而是在需要時才將其調入內存。雖然其不包含在 shell 中,但是其命令執行過程是由 shell 程序控制的。外部命令是在 Bash 之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。

我們可以使用 type 命令來區分命令是內建的還是外部的。例如這兩個得出的結果是不同的

技術分享圖片

#得到這樣的結果說明是內建命令,正如上文所說內建命令都是在 bash 源碼中的 builtins 的.def中
xxx is a shell builtin
#得到這樣的結果說明是外部命令,正如上文所說,外部命令在/usr/bin or /usr/sbin等等中
xxx is /usr/bin/xxx
#若是得到alias的結果,說明該指令為命令別名所設定的名稱;
xxx is an alias for xx --xxx

幫助命令

1、help命令

# help xxx 只能用於內部命令,不能用於外部命令
$help cd 
dhsafkdsjfakjsdgjkasdbkjdsb
fasdfdsfdsagsdgsdgsdgasdg
asdgdsagdsagdsgdagsdgdsg(一堆幫助文檔)
$help ls 
沒有與“ls”匹配的XXXX

# xxx --help 用於外部命令
$ls --help
dhsafkdsjfakjsdgjkasdbkjdsb
fasdfdsfdsagsdgsdgsdgasdg
asdgdsagdsagdsgdagsdgdsg(一堆幫助文檔)

2、man命令

$man ls

得到的內容比用 help 更多更詳細,而且 man 沒有內建與外部命令的區分,因為 man 工具是顯示系統手冊頁中的內容,也就是一本電子版的字典,這些內容大多數都是對命令的解釋信息,還有一些相關的描述。通過查看系統文檔中的 man 也可以得到程序的更多相關信息和 Linux 的更多特性。

在嘗試上面這個命令時我們會發現最左上角顯示“ LS (1)”,在這裏,“ LS ”表示手冊名稱,而“(1)”表示該手冊位於第一章節。這個章節又是什麽?在 man 手冊中一共有這麽幾個章節

章節數 說明
1 Standard commands (標準命令)
2 System calls (系統調用)
3 Library functions (庫函數)
4 Special devices (設備說明)
5 File formats (文件格式)
6 Games and toys (遊戲和娛樂)
7 Miscellaneous (雜項)
8 Administrative Commands (管理員命令)
9 其他(Linux特定的), 用來存放內核例行程序的文檔。
打開手冊之後我們可以通過 pgup 與 pgdn 或者上下鍵來上下翻看,可以按 q 退出當前頁面

3、info命令

$info ls

得到的信息比 man 還要多,info 來自自由軟件基金會的 GNU 項目,是 GNU 的超文本幫助系統,能夠更完整的顯示出 GNU 信息。所以得到的信息當然更多

man 和 info 就像兩個集合,它們有一個交集部分,但與 man 相比,info 工具可顯示更完整的 GNU 工具信息。若 man 頁包含的某個工具的概要信息在 info 中也有介紹,那麽 man 頁中會有“請參考 info 頁更詳細內容”的字樣。

來源: 實驗樓
鏈接: https://www.shiyanlou.com/courses/1

linux:幫助命令help、man、info