Shell 簡(jiǎn)介

Shell 簡(jiǎn)介

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

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


Shell 腳本

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

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

由于習(xí)慣的原因,簡(jiǎn)潔起見,本文出現(xiàn)的"shell編程"都是指shell腳本編程,不是指開發(fā) shell 自身。


Shell 環(huán)境

Shell 編程跟 java、php 程一樣,只要有一個(gè)能編寫代碼的文本編輯器和一個(gè)能解釋執(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 程序。


第一個(gè) Shell 腳本

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

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

## 實(shí)例

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

"#!" 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行,即使用哪一種 Shell。
echo 命令用于向窗口輸出文本。

運(yùn)行 Shell 腳本有兩種方法:

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

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

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

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

2、作為解釋器參數(shù)

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

/bin/sh test.sh

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 歡迎加入技術(shù)交流群群號(hào): 552340860 Shell 是一個(gè)用 C 語言編寫的程序,它是用戶使用 Linux...
    ptlCoder閱讀 219評(píng)論 0 0
  • 1. shell是什么 Shell英文意思是外殼, 用戶通過Shell和操作系統(tǒng)交互,Shell就是一個(gè)解釋器,在...
    夏至悲歌閱讀 738評(píng)論 0 1
  • 什么是運(yùn)維 術(shù)語名詞 IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心,主要服務(wù)包括整機(jī)租用、...
    lyh165閱讀 2,879評(píng)論 0 19
  • Shell環(huán)境 Shell 編程跟 java、php 編程一樣,只要有一個(gè)能編寫代碼的文本編輯器和一個(gè)能解釋執(zhí)行的...
    Joyner2018閱讀 2,132評(píng)論 0 0
  • 1.Shell 簡(jiǎn)介 Shell 是一個(gè)用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是...
    wit92閱讀 158評(píng)論 0 0

友情鏈接更多精彩內(nèi)容