249個(gè)Linux Shell腳本經(jīng)典案例,拿來即用(附PDF)
除此之外,還準(zhǔn)備了一些Shell腳本的編寫規(guī)范、入門手冊、編寫指南等資源,今天一并分享給大家。
由于腳本案例太多,在此僅展示部分,完整版領(lǐng)取方式請見文末
249個(gè)拿來即用的shell腳本!
這249個(gè)Shell腳本共147頁,目錄清楚,一鍵搜索定位,代碼清晰可復(fù)制,電子版可以隨時(shí)拿來練習(xí)提升,是學(xué)習(xí)、提升、面試必備精品。
1、通過位置變量創(chuàng)建Linux系統(tǒng)賬戶及密碼
#!/bin/bash
# 通過位置變量創(chuàng)建 Linux 系統(tǒng)賬戶及密碼
#$1 是執(zhí)行腳本的第一個(gè)參數(shù),$2 是執(zhí)行腳本的第二個(gè)參數(shù)
useradd "$1"
echo "$2" | passwd ‐‐stdin "$1"2、備份日志
#!/bin/bash
# 每周 5 使用 tar 命令備份/var/log 下的所有日志文件
# vim /root/logbak.sh
# 編寫備份腳本,備份后的文件名包含日期標(biāo)簽,防止后面的備份將前面的備份數(shù)據(jù)覆蓋
# 注意 date 命令需要使用反引號括起來,反引號在鍵盤<tab>鍵上面
tar -czf log-`date +%Y%m%d`.tar.gz /var/log
# crontab ‐e #編寫計(jì)劃任務(wù),執(zhí)行備份腳本
00 03 * * 5 /root/logbak.sh3、輸入三個(gè)數(shù)并進(jìn)行升序排序
#!/bin/bash
# 依次提示用戶輸入 3 個(gè)整數(shù),腳本根據(jù)數(shù)字大小依次排序輸出 3 個(gè)數(shù)字
read -p "請輸入一個(gè)整數(shù):" num1
read -p "請輸入一個(gè)整數(shù):" num2
read -p "請輸入一個(gè)整數(shù):" num3
# 不管誰大誰小,最后都打印 echo "$num1,$num2,$num3"
# num1 中永遠(yuǎn)存最小的值,num2 中永遠(yuǎn)存中間值,num3 永遠(yuǎn)存最大值
# 如果輸入的不是這樣的順序,則改變數(shù)的存儲順序,如:可以將 num1 和 num2 的值對調(diào)
tmp=0
# 如果 num1 大于 num2,就把 num1 和和 num2 的值對調(diào),確保 num1 變量中存的是最小值
if [ $num1 -gt $num2 ];then
tmp=$num1
num1=$num2
num2=$tmp
fi
# 如果 num1 大于 num3,就把 num1 和 num3 對調(diào),確保 num1 變量中存的是最小值
if [ $num1 -gt $num3 ];then
tmp=$num1
num1=$num3
num3=$tmp
fi
# 如果 num2 大于 num3,就把 num2 和 num3 對標(biāo),確保 num2 變量中存的是小一點(diǎn)的值
if [ $num2 -gt $num3 ];then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo "排序后數(shù)據(jù)(從小到大)為:$num1,$num2,$num3"4、點(diǎn)名器腳本
#!/bin/bash
# 編寫一個(gè)點(diǎn)名器腳本
# 該腳本,需要提前準(zhǔn)備一個(gè) user.txt 文件
# 該文件中需要包含所有姓名的信息,一行一個(gè)姓名,腳本每次隨機(jī)顯示一個(gè)姓名
while :
do
#統(tǒng)計(jì) user 文件中有多少用戶
line=`cat user.txt |wc ‐l`
num=$[RANDOM%line+1]
sed -n "${num}p" user.txt
sleep 0.2
clear
done5、對100以內(nèi)的所有正整數(shù)相加求和(1+2+3.....+100)
#!/bin/bash
# 對 100 以內(nèi)的所有正整數(shù)相加求和(1+2+3+4...+100)
#seq 100 可以快速自動生成 100 個(gè)整數(shù)
sum=0
for i in `seq 100`
do
sum=$[sum+i]
done
echo "總和是:$sum"6、統(tǒng)計(jì)當(dāng)前Linux系統(tǒng)中可以登錄計(jì)算機(jī)的賬戶有多少個(gè)
#!/bin/bash
# 統(tǒng)計(jì)當(dāng)前 Linux 系統(tǒng)中可以登錄計(jì)算機(jī)的賬戶有多少個(gè)
#方法 1:
grep "bash$" /etc/passwd | wc -l
#方法 2:
awk -f: '/bash$/{x++}end{print x}' /etc/passwd8、打印各種格式的時(shí)間
#!/bin/bash
# 打印各種時(shí)間格式
echo "顯示星期簡稱(如:Sun)"
date +%a
echo "顯示星期全稱(如:Sunday)"
date +%A
echo "顯示月份簡稱(如:Jan)"
date +%b
echo "顯示月份全稱(如:January)"
date +%B
echo "顯示數(shù)字月份(如:12)"
date +%m
echo "顯示數(shù)字日期(如:01 號)"
date +%d
echo "顯示數(shù)字年(如:01 號)"
date +%Y echo "顯示年‐月‐日"
date +%F
echo "顯示小時(shí)(24 小時(shí)制)"
date +%H
echo "顯示分鐘(00..59)"
date +%M
echo "顯示秒"
date +%S
echo "顯示納秒"
date +%N
echo "組合顯示"
date +"%Y%m%d %H:%M:%S"更多內(nèi)容展示
上下滾動查看更多,僅展示部分內(nèi)容
Shell腳本是自動化運(yùn)維的關(guān)鍵組成部分,雖然簡簡單單幾十行代碼,但可是蘊(yùn)藏著巨大的能量和智慧,還是很值得運(yùn)維朋友學(xué)習(xí)的。
所有資料已經(jīng)打包好了,想要提升的同學(xué)請務(wù)必拿走學(xué)習(xí)!
資料整理自網(wǎng)絡(luò),僅作免費(fèi)交流分享,侵刪
領(lǐng)取方式如下:
掃描上方二維碼
備注【249個(gè)shell腳本】
即可100%免費(fèi)領(lǐng)取
評論
圖片
表情





