15 個常見的 shell 指令碼案例。
1.*hello world** 最簡單的指令碼示例:
#!/bin/bash
echo "hello, world!"
2.*統計目錄中的檔案數** 統計當前目錄中的檔案數:
#!/bin/bash
count=$(ls -1 | wc -l)
echo "there are $count files in the current directory."
3.*建立備份** 按時間戳備份檔案或目錄:
#!/bin/bash
filename="important_file.txt"
timestamp=$(date +%y%m%d%h%m%s)
cp "$filename" "$_$date +'%y%m%d')_backup"
4.*查詢和刪除空資料夾** 刪除當前目錄及其子目錄中的空子目錄:
#!/bin/bash
find . type d -empty -exec rmdir {}
5.*程序監控和重啟** 當程序不存在時自動啟動程序(例如服務):
#!/bin/bash
process_name="my_server"
if ! pgrep -x "$process_name" > /dev/null; then
path/to/start_script.sh &
fi6.*獲取基本系統資訊** 顯示系統 CPU 和記憶體使用情況:
#!/bin/bash
echo "cpu usage: $top -bn1 | grep "cpu(s)" | awk '')%"
free -m | awk 'nr==2'
7.*計畫執行任務** 建立乙個每分鐘執行一次的任務計畫(使用 crontab):
#!/bin/bash
echo "* */path/to/script.sh" >>/.crontab
crontab ~/.crontab
8.*檔案內容替換** 替換文字檔案中的特定字串:
#!/bin/bash
sed -i 's/old_string/new_string/g' file.txt
9.*檔案** 使用 curl 命令從 Internet 下載檔案
#!/bin/bash
url=""
wget -o downloaded_file.zip "$url"
10.*批量重新命名檔案** 根據模式重新命名一組檔案:
#!/bin/bash
for file in *.txt; do
mv "$file" "$.md"
done 11.*壓縮解壓檔案** 壓縮目錄為tarGZ格式:
#!/bin/bash
tar -czvf archive.tar.gz directory_to_compress/
解壓縮 tarGZ 檔案:
tar -xzvf archive.tar.gz
12.*檢查磁碟空間** 輸出磁碟剩餘空間資訊:
#!/bin/bash
df -ht /home
13.*查詢大檔案** 查詢當前目錄中大於 100MB 的檔案:
#!/bin/bash
du -h --max-depth=1 | grep '[0-9\.]g'
14.使用者輸入處理提示使用者輸入並將輸入寫入檔案
#!/bin/bash
read -p "請輸入一行文字:" input_text
echo "$input_text" >>user_input.log
15.*檢查網路連線** 只需測試網路連線:
#!/bin/bash
ping -c 1 google.com &&echo "網路連線正常" ||echo "網路連線異常"
Linux 命令