shell是乙個命令直譯器,他的作用就是解釋執行使用者輸入的命令和程式,使用者輸入一條命令,它就執行一條,就可以立即得到回應的對話方式被稱為"互動"
shell存在於作業系統的最外層,負責與使用者直接對話,把使用者輸入的命令解釋給作業系統,並處理各式各樣的作業系統的輸出結果,然後輸出到明明返回給使用者;例如,在linux系統種使用者輸入使用者名稱和密碼並登陸到linux後所有的操作均由shell解釋並執行。
從』shell』單詞的英文釋義可得,命令直譯器(shell)是貝殼的意思,從來看shell就像貝殼一樣包住了系統核心
當命令或程式語句不在命令列中執行,而是通過乙個程式檔案來執行時,該程式就可以成為shell指令碼,通俗的說就是將一大堆命令寫入指令碼中,再由shell執行,就叫做shell指令碼,這種通過檔案執行指令碼的方式稱為非互動的方式,在windows下,這種被稱為 『dos批處理程式』
範例:清除/var/log/下的message日誌檔案
必須以root使用者執行
#!
/bin/bash
cd /var/log
cat /dev/null > messages
echo "logs cleaned up."
1、shell指令碼語言在unix/linux中主要有兩大類shell:一類是bourne shell 、一類是c shell
1.bourne shell
包括bourne shell(sh)、 korn shell(ksh) 、bourne again shell(bash)三種
2.c shell
包括 csh 、 tcsh 兩種
檢視系統支援的shell
#[root@localhost ~
] # cat /etc/shells
2、其他常用指令碼語言種類
①php語言
②perl語言
③python語言
3、linux檢視系統預設shell
法一
[root@localhost ~
] # echo $shell
法二:[root@localhost ~
] # grep root /etc/passwd
1、指令碼開頭(第一行)
會以如下的形式指出由哪個直譯器來執行指令碼中的內容,如下
#!
/bin/bash或#!
/bin/sh
1、編寫乙個簡單小指令碼,條件如下
1、在/root/下建立該指令碼,命名為 test.sh
2、關閉防火牆(firewalld)
3、關閉防火牆自啟
4、設定selinux安全模組為允許模式
5、修改主機名為test
6、檢視當前時間
7、執行完後刪除該指令碼
#!
/bin/bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
hostnamectl set-hostname test
date
echo "execution completed !"
rm -rf /root/test.sh
2、利用while輸出#!
這裡是利用while語句進行迴圈輸出,注意 中括號和數字之間一定要有空格,不能挨在一起,這裡的 -gt 是指的大於,若1>0 條件成立,那麼就執行
2、指令碼的執行
1、使用 . 加上檔名或者絕對路徑,點後面有乙個空格
2、使用直譯器執行,如下:
3、使用source
3.指令碼的終止
運算子說明
-eq檢測兩個數是否相等,相等返回 true。
-ne檢測兩個數是否不相等,不相等返回 true。
-gt檢測左邊的數是否大於右邊的,如果是,則返回 true。
-lt檢測左邊的數是否小於右邊的,如果是,則返回 true。
-ge檢測左邊的數是否大於等於右邊的,如果是,則返回 true。
-le檢測左邊的數是否小於等於右邊的,如果是,則返回 true。
shell程式設計入門
shell指令碼程式不是複雜的程式,它是按行解釋的。指令碼程式總是以 bin sh 開始,它通知shell使用系統上的bourne shell直譯器。其中 符號是注釋。指令碼程式是從上到下執行的,執行指令碼前需要改變該指令碼程式的執行許可權。確保正確建立指令碼例徑,只有 這樣,指令碼程式才能正確執行...
Shell 程式設計入門
首先建立乙個檔案 在終端中輸入如下命令 vi helloworld.sh 然後按i進行命令編寫 下面這句話是必須寫的 bin sh這句話是必須寫的 bin sh a hello world echo a 下面執行的時候先得輸入 將這個許可權改為可執行檔案 chmod x helloworld.sh ...
Shell程式設計入門
目錄 shell概述 shell解析器 shell指令碼 什麼是shell指令碼 編寫shell指令碼 1 指令碼格式 2 第乙個shell指令碼 helloworld 3.指令碼的常用執行方式 第一種 採用bash或sh 指令碼的相對路徑或絕對路徑 不用賦予指令碼 x許可權 第二種 採用輸入指令碼...