如何利用watch幫你重復(fù)執(zhí)行命令
watch命令
watch是一個非常實用的命令,基本所有的Linux發(fā)行版都帶有這個小工具,如同名字一樣,watch可以幫你監(jiān)測一個命令的運行結(jié)果,省得你一遍遍的手動運行。在Linux下,watch是周期性的執(zhí)行下個程序,并全屏顯示執(zhí)行結(jié)果。你可以拿他來監(jiān)測你想要的一切命令的結(jié)果變化,比如 tail 一個 log 文件,ls 監(jiān)測某個文件的大小變化,看你的想象力了!
1.命令格式:
watch[參數(shù)][命令]
2.命令功能:
可以將命令的輸出結(jié)果輸出到標(biāo)準(zhǔn)輸出設(shè)備,多用于周期性執(zhí)行命令/定時執(zhí)行命令
3.命令參數(shù):
- -n或--interval watch缺省每2秒運行一下程序,可以用-n或-interval來指定間隔的時間。
- -d或--differences 用-d或--differences 選項watch 會高亮顯示變化的區(qū)域。 而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來。
- -t 或-no-title 會關(guān)閉watch命令在頂部的時間間隔,命令,當(dāng)前時間的輸出。
- -h, --help 查看幫助文檔
引言
有時候你需要不斷的執(zhí)行某個命令,追蹤其輸出產(chǎn)生的變化情況。你可能會寫一個死循環(huán)來做這件事情:
while : do clear commands sleep 1 done
然而實際上linux中有一個 watch 命令能夠幫你做這件事情。它會定期執(zhí)行指定的程序并將結(jié)果全屏輸出。
watch 的使用方法很簡單,只需要
watch 命令
就行了,這樣 watch 命令會每隔兩秒執(zhí)行一次該該命令,并全屏輸出執(zhí)行結(jié)果。
從上圖可以看出,第一行中的 Every 2.0s: 表示 watch 每隔2秒執(zhí)行一次命令。后面的 date 為要執(zhí)行的命令。再后面的 T520: Thu May 10 16:55:23 2018 是主機(jī)名以及執(zhí)行命令的時間。
在下面,從第二行開始就是命令執(zhí)行的時間了。
通過 -n INTERVAL 你也可以設(shè)置重復(fù)執(zhí)行命令的間隔時間,比如我可以調(diào)整為每5秒中執(zhí)行一次 date 命令
watch -n 5 date
不僅如此,通過 -d 選項, watch 還能高亮顯示兩次輸出中不同的部分,這個功能相當(dāng)實用
watch -d -n 1 date
除了高亮顯示輸出中改變的部分外,你也可以設(shè)置讓 watch 發(fā)現(xiàn)結(jié)果有改變時退出循環(huán)執(zhí)行,方法是使用 -g/--chgexit 選項
watch -g free
默認(rèn)情況下, watch 并不會關(guān)心命令的執(zhí)行結(jié)果是否成功
但你可以讓 watch 檢測命令的返回值,當(dāng)命令運行返回非0時發(fā)出蜂鳴(-b/–beep)或者直接退出(-e/–errexit)。
watch -e wrong_commands
最后,若你希望 watch 只顯示出命令的執(zhí)行結(jié)果,而不要顯示第一行的那些信息,那么可以使用 -t 選項關(guān)閉title的顯示
watch -t date
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
jmeter 在linux服務(wù)器的安裝和運行教程圖解
本文通過圖文并茂的形式給大家介紹了jmeter 在linux服務(wù)器的安裝和運行的,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-07-07詳解Linux進(jìn)程間通信——使用共享內(nèi)存
共享內(nèi)存是在兩個正在運行的進(jìn)程之間共享和傳遞數(shù)據(jù)的一種非常有效的方式。這篇文章主要介紹了詳解Linux進(jìn)程間通信——使用共享內(nèi)存,有興趣的可以了解一下。2017-01-01Linux運維基礎(chǔ)進(jìn)程管理實時監(jiān)控控制
這篇文章主要介紹了Linux運維基礎(chǔ)中進(jìn)程的管理及實時監(jiān)控控制,有需要的朋友可以借鑒參考下,希望可以有所幫助,共同學(xué)習(xí)共同進(jìn)步2021-09-09Apache多虛擬主機(jī)多站點配置的兩種實現(xiàn)方案
本文介紹了在Apache服務(wù)器上配置多虛擬主機(jī)的兩種方案:基于IP地址的虛擬主機(jī)配置和基于域名的虛擬主機(jī)配置,詳細(xì)說明了每個方案的配置步驟,以實現(xiàn)在同一臺服務(wù)器上托管多個網(wǎng)站的目的,感興趣的可以了解一下2024-09-09linux下cat命令連接文件并打印到標(biāo)準(zhǔn)輸出設(shè)備上
這篇文章主要給大家介紹了關(guān)于在linux下cat命令連接文件并打印到標(biāo)準(zhǔn)輸出設(shè)備上的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07記一次入侵Linux服務(wù)器和刪除木馬程序的經(jīng)歷
這篇文章主要介紹了記一次入侵Linux服務(wù)器和刪除木馬程序的經(jīng)歷的相關(guān)資料,需要的朋友可以參考下2016-02-02Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決
這篇文章主要介紹了Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04