天天看點

linux之shell

相信很多同學都不陌生這個腳本,尤其是運維的同學,少不了吧。公司的運維系統就靠你了。shell是一種解釋型的語言,我們寫好了代碼後,不需要編譯,直接運作即可。平時我們會用它來寫一些腳本,比如備份,或者啟動腳本,切割日志等。當然shell也是linux的解釋器,本篇我們先來了解下這個解釋器。

shell解釋器

shell也叫殼,差別與作業系統核心。比如一個不同國家的人交流需要一個翻譯官,那麼shell就是這個翻譯官。shell是負責使用者,負責接受使用者的指令,解釋并運作,将需要執行的操作給操作核心。

shell的常見種類

sh

由 Bourne shell 開發,為了紀念大佬,就用了他的名字命名了。sh也是第一個流行的shell。

csh

C shell 文法和C語言比較類似。

ksh

集合了 csh 和 sh 的優點,并且和sh相容。

bash

與sh完全相容,sh的的擴充版本,在sh上增加了新特性,補全指令,指令編輯器和曆史指令等功能也是linux預設的shell。

zsh

內建了bash,ksh等優點,使得互動式的操作更加友善。小編用的也是zsh。

linux預設的shell解釋器

linux 預設的 shell 解釋器是bash,在/bin目錄下。

➜ ~ ll /bin/bash

-rwxr-xr-x 1 root root 939K 9月 7 2017 /bin/bash

編寫一個shell腳本

一般來說,shell腳本的程式一般用.sh結尾。編寫一個hello.sh

#!/bin/bash

echo "hello world!"
~           

複制

#!/bin/bash : 指定腳本使用的指令解釋器。

echo "hello world!" 内容列印一個hello world! 。

➜  test ls
hello.sh           

複制

執行腳本:

➜  test chmod +x hello.sh
➜  test ./hello.sh
hello world!           

複制

chmod +x hello.sh 給腳本加可執行權限

./hello.sh 執行hello.sh

另外也可以用以下幾種方式執行(可以沒有可執行權限) 編寫一個新的腳本,不添加可執行權限。

➜  test bash t.sh
bash!
➜  test sh t.sh
bash!
➜  test source t.sh
bash!           

複制

shell執行順序

從上到下, 從左到右 。