#### if條件測試語句
if條件語句的單分支結構由if、then、fi關鍵詞組成。

如:判斷/media/cdrom文件是否存在,若存在就結束條件判斷和整個Shell腳本,反之則去創建整個目錄。
vim mkcdrom.sh
\#!/bin/bash
DIR=”/media/cdrom”
if \[ ! -e $DIR \]
then
mkdir -p $DIR
fi
if條件語句的雙分支結構由if、then、else、fi關鍵詞組成。

如:判斷某主機是否在線,根據返回值顯示主機是否在線的信息
**ping命令 -c** **規定嘗試的次數;-i定義每個數據包的發送間隔;-W定義等待超時時間**
vim chkhost.sh
\#!/bin/bash
ping -c 3 -I 0.2 -W 3 $1 &> /dev/null # $1表示的是第一個參數;&>是輸出重定向
if \[ $? -eq 0 \]
then
echo “Host $1 is On-line.”
else
echo “Host $1 is Off-line.”
fi
執行:bash chkhost.sh 192.168.10.10(Host 192.168.10.10 is On-line.)
bash chkhost.sh 192.168.10.20(Host 192.168.10.20 is Off-line.)
if條件語句的多分支結構由if、then、elif、else、fi關鍵詞組成。

如:判斷用戶輸入的分數在哪個成績區間內,然后輸出Excellent、Pass、Fail等提示信息。
read 是用來讀取用戶輸入信息,接受賦值給后面的指定變量,-p顯示一定的提示信息
vim chkscore.sh
\#!/bin/bash
read -p “Enter your score(0-100): ”GRADE
if \[ $GRADE -ge 85 \] && \[ $GRADE -le 100 \] ; then
echo “$GRADE is Excellent”
elif \[ $GRADE -ge 70 \] && \[ $GRADE le 84 \] ; then
echo “$GRADE is Pass”
else
echo “$GRADE IS Fail”
fi
執行:bash chkscore.sh
Enter your score(0-100): 88
88 us Excellent
#### for條件循環語句
for循環語句運行腳本一次性讀取多個信息

如:從列表文件中(users.txt)讀取多個用戶,然后為其逐一創建用戶賬戶并設置密碼。
vim users.txt
andy
barry
carl
duke
eric
george
下面通過read讀取用戶輸入密碼賦值給PASSWD變量。然后逐一用“**id 用戶名**”查看用戶信息。
**/dev/null是一個被稱作Linux黑洞的文件,把輸出信息重定向到這個文件等同于刪除數據(類似于沒有回收功能的垃圾箱),可以讓用戶的屏幕窗口保持簡潔。**
vim Example.sh
\#!/bin/bash
read -p “Enter The Users Password :” PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &> /dev/null
if \[ $? -eq 0 \]
then
echo “Already exists”
else
useradd $UNAME &> /dev/null
echo “$PASSWD” | passwd --stdin $UNAME &> /dev/null
if \[ $? -eq 0 \]
then
echo “$UNAME , Create success”
else
echo “$UNAME, Create failure”
fi
fi
done
判斷列表中(ipadds.txt)的主機是否在線
vim ipadds.txt
192\.168.10.10
192\.168.10.11
192\.168.10.12
vim CheckHosts.sh
\#!/bin/bash
HLIST=$(cat ~/ipadds.txt) ($類似于反引號`命令`)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP $> /dev/null
if \[ $? -eq 0 \] ; then
echo “Host $IP is On-line.”
else
echo “Host $IP is Off-line.”
fi
done
#### while條件循環語句
while條件循環語句是一種讓腳本根據某些條件來重復執行命令的語句。

如:編寫一個猜測數值大小的腳本Guess.sh
vim Guess.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 1000) \#**(expr命令是取得結果)**
TIMES=0 #(統計次數)
echo “商品實際價格為0-999之間,猜猜看是多少?”
while true
do
read -p “請輸入你您猜測的價格數目:”INT
**let TIMES++** # (次數自動累加)
if \[ $INT -eq $PRICE \] ; then
echo “恭喜您答對了,實際價格是$PRICE”
echo “您總共猜了 $TIMES 次”
exit 0
elif \[ $INT -gt $PRICE \] ; then
echo “太高了!”
else
echo “太低了!”
fi
done
#### case條件測試語句
case語句是在多個范圍內匹配數據,若匹配成功則執行相關命令并結束整個條件測試;而如果數據不在所列出的范圍內,則會去執行星號(\*)中所定義的默認命令。

如:提示用戶輸入一個字符并將其賦值給變量KEY,然后根據變量KEY的值向用戶顯示其值是字母、數字還是其他字符。
vim Checkkeys.sh
#!/bin/bash
read -p “請輸入一個字符,并按ENTER鍵確認:”KEY
case “$KEY” in
\[a-z\]|\[A-Z\])
echo “您輸入的是 字母。”
;;
\[0-9\])
echo “您輸入的是 數字。”
;;
\*)
echo “您輸入的是 空格、功能鍵或其他控制字符。”
esac
- 常用的RPM軟件包命令
- 常見的Yum命令
- Linux開機過程
- Systemd初始化進程服務的劣勢:
- system 與 system V init 的區別以及作用
- systemctl管理服務的啟動、重啟、停止、重載、查看狀態等常用命令
- systemctl設置服務開機啟動、不啟動、查看各級別下服務啟動狀態等常用命令
- 主流 Linux 系統選擇 Bash 解釋器作為命令行終端主要有以下 4 項優勢
- 常見執行Linux命令的格式:
- man命令中常用按鍵以及用途
- man命令幫助信息的接個歐以及意義
- 常用系統命令(10)
- 系統狀態檢測命令(8)
- 工作目錄切換命令(3)
- 文本文件編輯命令(9)
- 文件目錄管理命令(7)
- 打包壓縮與搜索命令(3)
- 輸入輸出重定向
- 管道命令符
- 命令行的通配符
- 常用的轉義字符
- 重要的環境變量
- Vim文本編輯器
- 編寫Shell腳本
- 流程控制語句
- 計劃任務服務程序
- 用戶身份與文件權限
- 文件權限與歸屬
- 文件的隱藏屬性
- 文件訪問控制列表
- su命令與sudo服務
- 存儲結構與磁盤劃分
- 使用RAID與LVM磁盤陣列技術
- iptables與firewalld防火墻
- 使用SSH服務管理遠程主機