1.linux組成kernel、shell、工具程序有sh.bashphp
一個例子html
!#/bin/bashlinux
echo ''shell
執行以前chmod +xapache
執行./bash
2.一個小竅門 cp /dev/null /var/log/apache2/access.logcookie
利用/dev/null來晴空apache2中的日誌文件ssh
註釋:把/dev/null看做"黑洞". 它很是等價於一個只寫文件. 全部寫入它的內容都會永遠丟失. 而嘗試從它那兒讀取內容則什麼也讀不到. 然而, /dev/null對命令行和腳本都很是的有用.編輯器
禁止標準輸出.工具
1 cat $filename >/dev/null 2 # 文件內容丟失,而不會輸出到標準輸出. |
禁止標準錯誤 (來自例子 12-3).
1 rm $badname 2>/dev/null 2 # 這樣錯誤信息[標準錯誤]就被丟到太平洋去了. |
禁止標準輸出和標準錯誤的輸出.
1 cat $filename 2>/dev/null >/dev/null 2 # 若是"$filename"不存在,將不會有任何錯誤信息提示. 3 # 若是"$filename"存在, 文件的內容不會打印到標準輸出. 4 # 所以Therefore, 上面的代碼根本不會輸出任何信息. 5 # 6 # 當只想測試命令的退出碼而不想有任何輸出時很是有用。 7 # 8 # 9 # cat $filename &>/dev/null 10 # 也能夠, 由 Baris Cicek 指出. |
例子 28-1. 隱藏cookie而再也不使用
1 if [ -f ~/.netscape/cookies ] # 若是存在則刪除. 2 then 3 rm -f ~/.netscape/cookies 4 fi 5 6 ln -s /dev/null ~/.netscape/cookies 7 # 如今全部的cookies都會丟入黑洞而不會保存在磁盤上了. |
shell中可能常常能看到:>/dev/null 2>&1
命令的結果能夠經過%>的形式來定義輸出
/dev/null 表明空設備文件
> 表明重定向到哪裏,例如:echo "123" > /home/123.txt
1 表示stdout標準輸出,系統默認值是1,因此">/dev/null"等同於"1>/dev/null"
2 表示stderr標準錯誤
& 表示等同於的意思,2>&1,表示2的輸出重定向等同於1
那麼本文標題的語句:
1>/dev/null 首先表示標準輸出重定向到空設備文件,也就是不輸出任何信息到終端,說白了就是不顯示任何信息。
2>&1 接着,標準錯誤輸出重定向等同於 標準輸出,由於以前標準輸出已經重定向到了空設備文件,因此標準錯誤輸出也重定向到空設備文件。
來源:http://www.yunwei.org/read.php?18
小竅門 IO重定向 ls>1.txt 將結果進行保存到文件
三、利用crontab在自動清理log文件
只用把上面的sh文件寫到crontab中
使用權限 : root用戶和crontab文件的全部者
語法 : crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ] 說明 : crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是相似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必需要有其權限(好比說是 root)纔可以指定他人的時程表。若是不使用 -u user 的話,就是表示設定本身的時程表。 參數 : -e [UserName]: 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,若是你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(好比說 setenv VISUAL joe) -r [UserName]: 刪除目前的時程表 -l [UserName]: 列出目前的時程表
-v [UserName]:列出用戶cron做業的狀態
例子 crontab -u root -e就能夠打開vi了
而後寫入0 6 * * * /root/clearlog.sh 表示每日早上6點就會執行
0 * * * * /bin/ls 每個月天天每小時的第 0 分鐘執行一次 /bin/ls
*/20 6-12 * 12 * /usr/bin/backup
在 12 月內, 天天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup
20 0-23/2 * * * echo "haha"
每個月天天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"
四、部署bash shell的環境
echo $SHELL 看shell版本 /bin/bash
咱們能夠從網上下源碼 bash-3.2.48.tar.gz
解壓./configure 也能夠經過--prefix=/home/ols32來指定安裝目錄
編譯 make 測試 make tests
五、登錄ssh 若是沒有指定賬號 例 ssh 192.168.1.2 至關於以root登錄
或者ssh 賬號@ip 例如 ssh john@192.168.1.2