簡單了解Shell腳本

在軟件領(lǐng)域,語言主要分為兩大類飘哨,腳本編程(scripting)語言編譯型(compiled)語言胚想。

許多大型或中型的程序都是用編譯型語言寫成,例如C芽隆、C++或是JAVA浊服。用編譯型語言寫成的程序,從源代碼(source code)轉(zhuǎn)換成目標代碼(object code)胚吁,便能直接通過計算機來執(zhí)行牙躺。(JAVA并不完全是這樣,但很接近這種說法腕扶。)

編譯型語言的好處是高效孽拷,而因為高效,所以編譯型語言多是運作于底層半抱,處理的是字節(jié)、整數(shù)、浮點數(shù)或是其他機器層級的對象躲履。

例如,在C++里激蹲,進行“將一個目錄里所有的文件復(fù)制到另一個目錄中”的簡單操作,會非常麻煩江掩,也很困難学辱。

腳本編程語言,通常是解釋型(interpreted)的环形。這一類程序的執(zhí)行策泣,是由解釋器(interpreter)讀入程序代碼,并將其轉(zhuǎn)換成內(nèi)部的形式抬吟,再執(zhí)行萨咕。解釋器本身也是一般的編譯型程序。

使用腳本編程語言火本,最方便的地方在于腳本編程語言大多運行在比編譯型語言高的層級危队,能夠輕易處理文件與目錄之類的對象,但相對的钙畔,腳本編程語言的效率不如編譯型語言茫陆。

一般常用的腳本編程語言有Python、Ruby和Shell擎析。


特別是Shell腳本簿盅,可以在各UNIX系統(tǒng)之間通用,并且經(jīng)過了POSIX的標準化揍魂,可以應(yīng)用到很多系統(tǒng)上桨醋,例如使用比較廣泛紅帽Linux(Red Hat)系統(tǒng)

現(xiàn)在现斋,我們從一個簡單的腳本開始喜最,在紅帽Linux系統(tǒng)上使用。

比如庄蹋,我們想知道目前系統(tǒng)上有多少用戶登錄瞬内,可以輸入who命令


輸入who命令的輸出結(jié)果

可以得知蔓肯,當(dāng)前的系統(tǒng)有兩個用戶登錄遂鹊。由于是在虛擬機上的操作系統(tǒng)振乏,因此列出來的用戶很少蔗包,tty1指的是文字界面,就是當(dāng)前打開的命令窗口慧邮,pts/0指的是打開的第一個終端调限,若是再有另外一個終端打開舟陆,就是pts/1。

在很多大型的耻矮、多用戶的系統(tǒng)上秦躯,who命令所列出來的表會很長,這個時候統(tǒng)計用戶數(shù)就很麻煩裆装,對此踱承,可以用wc程序。wc程序是一個字數(shù)計算程序哨免,可以計算出行數(shù)(line)茎活、字數(shù)(word)、和字符數(shù)(character)琢唾。使用wc -l命令载荔,只算行數(shù)。


計算用戶數(shù)

|”是管道(pipeline)符號采桃,可以在兩個程序之間建立管道懒熙。who | wc -l命令就是who的輸出,成了wc的輸入普办,最后得出的結(jié)果就是已登錄用戶的個數(shù)工扎。

接下來,就是把這條命令輸入一個一般的文件中衔蹲,再給該文件賦予執(zhí)行的權(quán)限定庵,大體流程如下:


建立一個簡單腳本文件的大體流程


我們先來建立文件,按照流程輸入踪危。


建立文件和輸入內(nèi)容

可以通過ls命令查看文件是否建立蔬浙,再通過cat命令查看文件內(nèi)容。

然后再賦予文件執(zhí)行的權(quán)限贞远,用chmod命令畴博。


賦予文件執(zhí)行權(quán)限

先用ll命令查看各個文件的狀況,可以看到新建的nusers文件的權(quán)限狀態(tài)為-rw-rw-r--蓝仲,沒有末尾的x俱病,也就是沒有執(zhí)行權(quán)限

輸入命令chmod +x nusers袱结,給文件nusers賦予執(zhí)行權(quán)限亮隙,再用ll命令查看,成功賦予執(zhí)行權(quán)限垢夹。

最后溢吻,直接使用該文件。有兩個命令可以運行,一個是./促王,一個是sh犀盟。


執(zhí)行文件

nurses就是一個簡單的腳本文件。一般而言蝇狼,開發(fā)一個小型的Shell腳本阅畴,首先要在命令行(command line)上測試,然后確認能夠完成工作的合適語法迅耘,再將編寫的程序語言放入獨立的腳本文件中贱枣,設(shè)置相應(yīng)的執(zhí)行權(quán)限,這樣一個小型的腳本文件就可以直接使用了颤专。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冯事,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子血公,更是在濱河造成了極大的恐慌昵仅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件累魔,死亡現(xiàn)場離奇詭異摔笤,居然都是意外死亡,警方通過查閱死者的電腦和手機垦写,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門吕世,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梯投,你說我怎么就攤上這事命辖。” “怎么了分蓖?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵尔艇,是天一觀的道長。 經(jīng)常有香客問我么鹤,道長终娃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任蒸甜,我火速辦了婚禮棠耕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柠新。我一直安慰自己窍荧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布恨憎。 她就那樣靜靜地躺著蕊退,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咕痛,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天痢甘,我揣著相機與錄音喇嘱,去河邊找鬼茉贡。 笑死,一個胖子當(dāng)著我的面吹牛者铜,可吹牛的內(nèi)容都是我干的腔丧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼作烟,長吁一口氣:“原來是場噩夢啊……” “哼愉粤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拿撩,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤衣厘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后压恒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體影暴,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年探赫,在試婚紗的時候發(fā)現(xiàn)自己被綠了型宙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡伦吠,死狀恐怖妆兑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毛仪,我是刑警寧澤搁嗓,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站箱靴,受9級特大地震影響谱姓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜刨晴,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一屉来、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狈癞,春花似錦茄靠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厌小。三九已至,卻和暖如春璧亚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脂信。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工癣蟋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疯搅,地道東北人丽声。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓歧胁,卻偏偏與公主長得像屠缭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子崭参,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容