Shell 編程,是指在 Shell (殼層)中編寫腳本程序,通過運行腳本程序來完成特定的任務。Shell 編程主要用於自動化系統管理工作,如批量操作文件、定時任務、系統監控、日誌分析等。Shell 編程因其簡單易學、強大實用而備受青睞。
一、 Shell 編程基礎
1、 Shell 命令
echo "Hello World"
ls -l /home
cat /etc/passwd
2、 變數、注釋
#!/bin/sh
# 這是一條注釋
variable="Hello World"
echo $variable
3、 流程式控制制
#!/bin/sh
if [ $1 = "hello" ]; then
echo "Hello World"
else
echo "Input error!"
fi
4、 函數
#!/bin/sh
function wordCount {
words=`cat $1`
echo "Word count: `echo $words | wc -w`"
}
wordCount $1
二、 Shell 編程高級應用
1、 正則表達式
#!/bin/sh
if [[ $1 =~ "^([0-9]{3}-){2}[0-9]{4}$" ]]; then
echo "Valid phone number."
else
echo "Invalid phone number."
fi
2、 數組、循環
#!/bin/sh
array=("apple" "orange" "banana")
for fruit in ${array[@]}; do
echo $fruit
done
3、 文件處理
#!/bin/sh
filename="sample.txt"
if [ -f $filename ]; then
echo "The file exists."
echo "File size: `ls -lh $filename | awk '{ print $5 }'`"
else
echo "The file does not exist."
fi
三、 Shell 編程實戰
1、 批量重命名文件
#!/bin/sh
for file in *.txt; do
mv $file `echo $file | sed 's/.txt/.doc/g'`
done
2、 定時備份數據
#!/bin/sh
backup_path="/backup"
filename="backup-$(date +%Y%m%d).tar.gz"
tar -zcvf $backup_path/$filename /data
3、 監控系統進程
#!/bin/sh
while true; do
if pgrep apache2 > /dev/null; then
sleep 60
else
systemctl start apache2
echo "Apache2 restarted."
fi
done
四、 結語
通過以上 Shell 編程入門指南,我們可以掌握 Shell 編程的基本語法和常用技巧,以及如何運用 Shell 編程來完成實際的系統管理任務。Shell 編程雖然入門門檻較低,但在日常工作中卻發揮著重要的作用,幫助我們提高工作效率,實現更加自動化的系統管理操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/181754.html