標籤:
最近公司不是很忙,因此閒置時候多看了下關於shell的一些東西,因為在linux下進行開發測試的時候,知道些關於shell的東西對自己還是很有協助的。
關於什麼是shell,就是linux的一個殼,負責與使用者的互動對話,然後將使用者的輸入解釋給作業系統,並處理各種各樣的作業系統的輸出結果,將最終的結果返回給使用者。
而shell指令碼就是當命令或者是語句不在命令列執行,而是通過一個程式檔案執行的時候,此程式就是一個shell指令碼,shell程式很類似於DOS系統下的批次程式(*.bat),
該使用者可以在指令碼中敲入一系列的命令或者是命令列語句,這些命令,變數和流程式控制制語句有機的結合起來,就形成了一個功能強大的shell指令碼。
widnows下利用批次程式bat開發的備份網站以及資料的指令碼:
1 @echo off2 set date=%date:~0,4%-%date:~5,2%-%date:~8,2%3 mysqldump -uroot -p -A -B >D:\bak\"%date%".sql4 rar.exe a -k -r -s -ml D:\bak\"%date%".sql.rar D:\bak\"%date%".sql5 del D:\bak\*.sql6 7 rar.exe a -k -r -s -ml D:\bak\"%date%"htdocs.rar D:\work\phpnow\htdocs
範例一:清除/var/log下的messages記錄檔的簡單命令指令碼
1 ROOT_UID=0 2 LOG_DIR = "/var/log/" 3 #要使用root身份的使用者來進行 4 if [ "$UID" -ne "$ROOT_UID" ] 5 then 6 echo "must be the root to run this script!" 7 exit 1 8 fi 9 10 cd $LOG_DIR || {11 echo "cannot change to this dir!"12 exit 113 } 14 15 cat /dev/null > ${LOG_DIR}/messages16 17 echo "logs clean up!"
清空日誌的三種方法:
1 echo " " >/var/log/a.log2 >/var/log/a.log3 cat /dev/null >/var/log/a.log
shell指令碼擅長處理純文字類型的資料,而linux中幾乎所有的設定檔,記錄檔都是純文字檔案
學習shell筆記(day1)