?shell最基本的工作就是執行命令.
每鍵入一道命令, shell 就會執行.
$cd work;ls -l whizprog.c
首先:格式很簡單,以空白(Space 鍵或者 Tab鍵)隔開命令行中的各個組成部分.
其次,命令名稱是命令行的第一個項目.通常后面會跟著選項(option),任何額外的參數(argument)都會放在選項之后
第三,選項的開頭是一個破折號(或減號),后面接著一個字母.選項可有可無,有可能需要加上參數.不需要參數的選項可以合并.
$ ls -lt whizprog.c
長選項前面是一個破折號還是兩個破折號視程序而定.兩個破折號(--)表示選項結尾的用法.
$ cd whizprog-1.1
$patch --verbose --backup -p1</tmp/whizprog-1.1-1.2-patch
?
最后說明,分號(;)可用來分割同一行里的多條命令.shell 會一次執行這些命令.如果使用了&符號而不是;,則 shell 將在后臺執行其前面的命令,這意味著 shell 不用等該命令完成,就可以繼續下一條命令.
?
shell 識別三種基本的命令:
- 內建命令:由 shell 本身所執行餓名理工.
- shell 函數:是功能健全的一系列程序代碼,以 shell 語言寫成,它們可以像命令那樣引用.
- 外部命令:外部命令就是由 shell 的副本(新的進程)所執行的命令,基本過程如下:
- 建立一個新的進程.此進程即位 shell 的一個副本.
- 在新的進程里,在 path 變量內所列出的目錄中,尋找特定的命令.
/bin:/usr/bin:/usr/x11r6/bin/usr/local/bin
為 path 變量典型的默認值.當命令含有斜杠(/)符號時,將掠過路徑查找步驟.
- ?在新的進程里,以所找到的新程序取代執行中的 shell 程序并執行.
- 程序完成后,最初的 shell 會接著從終端讀取的下一條命令,或執行腳本里面的下一條命令.