1. 編寫 hello world 腳本
#!/bin/bash
echo "hello world"
2. 經過位置變量建立 Linux 系統帳戶及密碼
#!/bin/bash
#$1 是執行腳本的第一個參數,$2 是執行腳本的第二個參數
useradd "$!"
echo "$2" | passwd ‐‐stdin "$2"
3. 每週 5 使用 tar 命令備份/var/log 下的全部日誌文件
#vim /root/logbak.sh
#編寫備份腳本,備份後的文件名包含日期標籤,防止後面的備份將前面的備份數據覆蓋
#注意 date 命令須要使用反引號括起來,反引號在鍵盤<tab>鍵上面
tar -czf log-`date +%Y%m%d`.tar.gz /var/log
# crontab ‐e #編寫計劃任務,執行備份腳本
00 03 * * 5 /root/logbak.sh
4. 一鍵部署 LNMP(RPM 包版本)
#!/bin/bash
#使用 yum 安裝部署 LNMP,須要提早配置好 yum 源,不然該腳本會失敗
#本腳本使用於 centos7.2 或 RHEL7.2
yum ‐y install httpd
yum ‐y install mariadb mariadb‐devel mariadb‐server
yum ‐y install php php‐mysql
systemctl start httpd mariadb
systemctl enable httpd mariadb
5. 實時監控本機內存和硬盤剩餘空間,剩餘內存小於 500M、根分區剩餘空間小於 1000M
時,發送報警郵件給 root 管理員
#!/bin/bash
#Author:丁丁歷險(Jacob)
#提取根分區剩餘空間
disk_size=$(df / |awk '/\//{print $4}')php
#提取內存剩餘空間
mem_size=$(free |awk '/Mem/{print $4}')
while :
do
#注意內存和磁盤提取的空間大小都是以 Kb 爲單位
if [ $disk_size ‐le 512000 ‐a $mem_size ‐le 1024000 ];then
mail ‐s Warning root <<EOF
Insufficient resources,資源不足
EOF
fi
done
6. 腳本生成一個 100 之內的隨機數,提示用戶猜數字,根據用戶的輸入,提示用戶猜對了,
猜小了或猜大了,直至用戶猜對腳本結束。
#!/bin/bash
#Author:丁丁歷險(Jacob)
#RANDOM 爲系統自帶的系統變量,值爲 0‐32767 的隨機數
#使用取餘算法將隨機數變爲 1‐100 的隨機數
num=$[RANDOM%100+1]
#使用 read 提示用戶猜數字
#使用 if 判斷用戶猜數字的大小關係:‐eq(等於),‐ne(不等於),‐gt(大於),‐ge(大於等於),‐lt(小於),‐le(小
於等於)
while :
do
read ‐p "計算機生成了一個 1‐100 的隨機數,你猜: " cai
if [ $cai ‐eq $num ];then
echo "恭喜,猜對了"
exit
elif [ $cai ‐gt $num ];then
echo "Oops,猜大了"
else
echo "Oops,猜小了"
fi
done
7. 檢測本機當前用戶是否爲超級管理員,若是是管理員,則使用 yum 安裝 vsftpd,若是不
是,則提示您非管理員(使用字串對比版本)
#!/bin/bash
if [ $USER == "root" ];then
yum ‐y install vsftpd
else
echo "您不是管理員,沒有權限安裝軟件"
fi
8. 檢測本機當前用戶是否爲超級管理員,若是是管理員,則使用 yum 安裝 vsftpd,若是不
是,則提示您非管理員(使用 UID 數字對比版本)mysql
#!/bin/bash
if [ $UID ‐eq 0 ];then
yum ‐y install vsftpd
else
echo "您不是管理員,沒有權限安裝軟件"
fi
9. 編寫腳本:提示用戶輸入用戶名和密碼,腳本自動建立相應的帳戶及配置密碼。若是用戶
不輸入帳戶名,則提示必須輸入帳戶名並退出腳本;若是用戶不輸入密碼,則統一使用默
認的 123456 做爲默認密碼。
#!/bin/bash
read ‐p "請輸入用戶名: " user
#使用‐z 能夠判斷一個變量是否爲空,若是爲空,提示用戶必須輸入帳戶名,並退出腳本,退出碼爲 2
#沒有輸入用戶名腳本退出後,使用$?查看的返回碼爲 2
if [ ‐z $user ];then
echo "您不需輸入帳戶名"
exit 2
fi
#使用 stty ‐echo 關閉 shell 的回顯功能
#使用 stty echo 打開 shell 的回顯功能
stty ‐echo
read ‐p "請輸入密碼: " pass
stty echo
pass=${pass:‐123456}
useradd "$user"
echo "$pass" | passwd ‐‐stdin "$user"
10. 依次提示用戶輸入 3 個整數,腳本根據數字大小依次排序輸出 3 個數字
#!/bin/bash
read ‐p "請輸入一個整數:" num1
read ‐p "請輸入一個整數:" num2
read ‐p "請輸入一個整數:" num3
#無論誰大誰小,最後都打印 echo "$num1,$num2,$num3"
#num1 中永遠存最小的值,num2 中永遠存中間值,num3 永遠存最大值
#若是輸入的不是這樣的順序,則改變數的存儲順序,如:能夠將 num1 和 num2 的值對調
tmp=0
#若是 num1 大於 num2,就把 num1 和和 num2 的值對調,確保 num1 變量中存的是最小值
if [ $num1 ‐gt $num2 ];then
tmp=$num1
num1=$num2
num2=$tmp
fi
#若是 num1 大於 num3,就把 num1 和 num3 對調,確保 num1 變量中存的是最小值
if [ $num1 ‐gt $num3 ];then
tmp=$num1
num1=$num3
num3=$tmp
fi
#若是 num2 大於 num3,就把 num2 和 num3 對標,確保 num2 變量中存的是小一點的值算法
if [ $num2 ‐gt $num3 ];then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo "排序後數據爲:$num1,$num2,$num3"sql