Shell 教程

2022-07-19 16:07 更新

Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設計語言。

Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統(tǒng)內核的服務。

Ken Thompson的sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。

Shell 在線工具


Shell 腳本

Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。

業(yè)界所說的shell通常都是指shell腳本,但讀者朋友要知道,shell和shell script是兩個不同的概念。

由于習慣的原因,簡潔起見,本文出現的"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)
  • ……

本教程關注的是 Bash,也就是 Bourne Again Shell,由于易用和免費,Bash 在日常工作中被廣泛使用。同時,Bash 也是大多數 Linux 系統(tǒng)默認的 Shell。

在一般情況下,人們并不區(qū)分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同樣也可以改為#!/bin/bash。

#!告訴系統(tǒng)其后路徑所指定的程序即是解釋此腳本文件的 Shell 程序。


第一個 Shell 腳本

打開文本編輯器(可以使用 vi/vim 命令來創(chuàng)建文件),新建一個文件 test.sh,擴展名為 sh(sh代表shell),擴展名并不影響腳本執(zhí)行,見名知意就好,如果你用 php 寫 shell 腳本,擴展名就用 php 好了。

輸入一些代碼,第一行一般是這樣:

實例

#!/bin/bash
echo "Hello World !"

運行實例 ?

"#!" 是一個約定的標記,它告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行,即使用哪一種 Shell。

echo 命令用于向窗口輸出文本。

運行 Shell 腳本有兩種方法:

1、作為可執(zhí)行程序

將上面的代碼保存為 test.sh,并 cd 到相應目錄:

chmod +x ./test.sh  #使腳本具有執(zhí)行權限
./test.sh  #執(zhí)行腳本

注意,一定要寫成 ./test.sh ,而不是 test.sh ,運行其它二進制的程序也一樣,直接寫 test.sh ,linux 系統(tǒng)會去 PATH 里尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當前目錄通常不在 PATH里,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統(tǒng)說,就在當前目錄找。

2、作為解釋器參數

這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:

/bin/sh test.sh
/bin/php test.php

這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號