Shell 簡介
Shell 是一個用 C 語言編寫的程序朝氓,它是用戶使用 Linux 的橋梁缸逃。Shell 既是一種命令語言少辣,又是一種程序設(shè)計語言。
Shell 是指一種應(yīng)用程序笤成,這個應(yīng)用程序提供了一個界面评架,用戶通過這個界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。
Shell 腳本
Shell 腳本(shell script)炕泳,是一種為 shell 編寫的腳本程序古程。
業(yè)界所說的shell通常都是指shell腳本,但讀者朋友要知道喊崖,shell和shell script是兩個不同的概念挣磨。
由于習(xí)慣的原因雇逞,簡潔起見,本文出現(xiàn)的"shell編程"都是指shell腳本編程茁裙,不是指開發(fā) shell 自身塘砸。
Shell 環(huán)境
Shell 編程跟 java、php 程一樣晤锥,只要有一個能編寫代碼的文本編輯器和一個能解釋執(zhí)行的腳本解釋器就可以了掉蔬。
Linux 的 Shell 種類眾多,常見的有:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
- ……
在一般情況下矾瘾,人們并不區(qū)分 Bourne Shell 和 Bourne Again Shell女轿,所以,像 #!/bin/sh壕翩,它同樣也可以改為#!/bin/bash蛉迹。
#!告訴系統(tǒng)其后路徑所指定的程序即是解釋此腳本文件的 Shell 程序。
第一個 Shell 腳本
打開文本編輯器(可以使用 vi/vim 命令來創(chuàng)建文件)放妈,新建一個文件 test.sh北救,擴(kuò)展名為 sh(sh代表shell),擴(kuò)展名并不影響腳本執(zhí)行芜抒,見名知意就好珍策。
輸入一些代碼,第一行一般是這樣:
## 實例
#!/bin/bash
echo "Hello World !"
"#!" 是一個約定的標(biāo)記宅倒,它告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行攘宙,即使用哪一種 Shell。
echo 命令用于向窗口輸出文本拐迁。
運行 Shell 腳本有兩種方法:
1蹭劈、作為可執(zhí)行程序
將上面的代碼保存為 test.sh,并 cd 到相應(yīng)目錄:
chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限
./test.sh #執(zhí)行腳本
注意唠亚,一定要寫成 ./test.sh 链方,而不是 test.sh 持痰,運行其它二進(jìn)制的程序也一樣灶搜,直接寫 test.sh ,linux 系統(tǒng)會去 PATH 里尋找有沒有叫 test.sh 的工窍,而只有 /bin, /sbin, /usr/bin割卖,/usr/sbin 等在 PATH 里,你的當(dāng)前目錄通常不在 PATH里患雏,所以寫成 test.sh 是會找不到命令的鹏溯,要用 ./test.sh 告訴系統(tǒng)說,就在當(dāng)前目錄找淹仑。
2丙挽、作為解釋器參數(shù)
這種運行方式是肺孵,直接運行解釋器,其參數(shù)就是 shell 腳本的文件名颜阐,如:
/bin/sh test.sh
這種方式運行的腳本平窘,不需要在第一行指定解釋器信息,寫了也沒用凳怨。