0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux中使用watch命令呢?

dyquk4xk2p3d ? 來(lái)源:Linux迷 ? 2023-11-17 09:34 ? 次閱讀

有時(shí),您需要反復(fù)運(yùn)行命令或程序來(lái)監(jiān)視系統(tǒng)的各個(gè)方面,如正在運(yùn)行的進(jìn)程、磁盤(pán)空間使用情況或用戶登錄情況。

Linux中的watch命令使您能夠自動(dòng)執(zhí)行這些任務(wù),而無(wú)需手動(dòng)一遍又一遍地運(yùn)行它們。

使用此命令,您可以實(shí)時(shí)監(jiān)視系統(tǒng)活動(dòng),如用戶登錄、網(wǎng)絡(luò)狀態(tài)、內(nèi)存和CPU使用情況、磁盤(pán)空間等。

讓我們看看如何在Linux中使用watch命令。

什么是watch命令?

watch命令在Linux中反復(fù)運(yùn)行指定的命令或程序,以固定時(shí)間間隔,并在終端中顯示其輸出。這使您能夠?qū)崟r(shí)觀察輸出的變化。它會(huì)在每個(gè)時(shí)間間隔刷新輸出,覆蓋上一個(gè)輸出。默認(rèn)情況下,該命令每?jī)擅胫貜?fù)一次,直到您使用Ctrl + C手動(dòng)停止它。

watch命令的語(yǔ)法

watch命令的語(yǔ)法如下:


watch 選項(xiàng) <命令>
有各種可用于watch命令的命令行選項(xiàng)。如果您運(yùn)行watch命令而沒(méi)有任何選項(xiàng),它將每隔兩秒運(yùn)行一次指定的命令。例如,以下命令將顯示ls命令的輸出:

watch ls -l ~/
0e72b928-84e7-11ee-939d-92fbcf53809c.png

輸出將顯示目錄列表中的更改,如果創(chuàng)建了文件、刪除了文件或文件大小發(fā)生變化,它將每?jī)擅胨⑿乱淮屋敵觥?

使用watch命令每隔X秒運(yùn)行一個(gè)命令

您可以更改watch命令的更新間隔。這意味著您可以告訴watch命令在重復(fù)命令之前等待X秒。要更改更新間隔,請(qǐng)使用-n選項(xiàng),后面跟隨以秒為單位的時(shí)間間隔。


watch -n
例如,要每隔5秒運(yùn)行一次命令,請(qǐng)運(yùn)行:

watch -n 5 

突出顯示更新之間的變化

watch命令會(huì)在每次刷新時(shí)覆蓋其輸出。使用-d選項(xiàng),您還可以突出顯示先前輸出和更新后輸出之間的變化。


watch -d

隱藏watch命令輸出中的標(biāo)題

默認(rèn)情況下,watch命令在每個(gè)輸出的頂部顯示一個(gè)標(biāo)題,其中包含更新間隔、命令名稱以及系統(tǒng)的當(dāng)前日期和時(shí)間。您可以使用-t選項(xiàng)從輸出中刪除標(biāo)題:


watch -t 

在錯(cuò)誤時(shí)播放蜂鳴聲

當(dāng)Linux進(jìn)程完成運(yùn)行時(shí),它會(huì)返回一個(gè)退出代碼。按照慣例,成功時(shí)該值為0,非零表示錯(cuò)誤。watch命令的-b選項(xiàng)會(huì)在命令返回非零退出代碼時(shí)播放蜂鳴聲。 假設(shè)您想要監(jiān)視sshd.service,并在服務(wù)停止時(shí)收到通知,您可以使用:


watch -b sudo systemctl status sshd.service
該命令將在服務(wù)停止時(shí)發(fā)出蜂鳴聲。當(dāng)服務(wù)恢復(fù)運(yùn)行時(shí),蜂鳴聲將停止。要使用此功能,您必須在系統(tǒng)上安裝了beep軟件包。

在輸出更改時(shí)退出watch命令

您還可以告訴watch命令在命令的輸出更改時(shí)停止運(yùn)行并退出。您可以使用-g選項(xiàng)來(lái)實(shí)現(xiàn)這一點(diǎn)。在等待輸出中的某些變化時(shí),此選項(xiàng)非常有用。

一旦輸出發(fā)生變化,watch命令將停止。您可以將此用法與echo命令結(jié)合使用,以在屏幕上顯示消息。

例如,考慮一個(gè)場(chǎng)景,您正在等待一個(gè)文件出現(xiàn)在您的目錄中。以下命令將監(jiān)視指定文件的目錄。

一旦出現(xiàn),watch命令將停止運(yùn)行,并且終端上將顯示消息"file arrived"。


watch -g "ls -l | grep filename" && echo "file arrived"
0e8e8d2e-84e7-11ee-939d-92fbcf53809c.png

另一個(gè)有用的示例是在特定用戶登錄到系統(tǒng)時(shí)進(jìn)行通知:

watch -g "who | grep username" && echo "username logged in"
此命令將監(jiān)視who命令的輸出,該命令列出已登錄的用戶。一旦用戶登錄,watch命令將停止并在終端上顯示消息。

類似地,您可以告訴watch命令在文件中進(jìn)行更改時(shí)停止服務(wù)。請(qǐng)注意,在使用一系列命令的管道鏈時(shí),您需要將整個(gè)命令括在引號(hào)內(nèi)。

監(jiān)視Linux系統(tǒng)中的活動(dòng)

如果您發(fā)現(xiàn)自己反復(fù)執(zhí)行相同的流程,請(qǐng)考慮使用watch命令來(lái)自動(dòng)化它。這可以使您免于頻繁鍵入命令以查看發(fā)生了什么變化。

您還可以將watch命令與其他Linux命令一起使用,以監(jiān)視系統(tǒng)資源和活動(dòng),并跟蹤文件或目錄中的更改。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208712
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    590

    瀏覽量

    27311

原文標(biāo)題:如何使用 Linux 上的 watch 命令定期運(yùn)行程序

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在Linux上可視化Ping響應(yīng)

    本文討論ping網(wǎng)絡(luò)管理實(shí)用程序的簡(jiǎn)要?dú)v史,以及如何在Linux中使用gping實(shí)用程序以圖形格式顯示ping命令輸出。
    發(fā)表于 12-05 09:29 ?948次閱讀

    何在Linux使用iostat命令

    IO等待或者`iowait`,`wait`,`wa`,`%iowait`,或者`wait%`通??梢酝ㄟ^(guò)Linux系統(tǒng)監(jiān)控工具查看。例如命令行工具top、sar、atop等。
    的頭像 發(fā)表于 01-04 17:17 ?1499次閱讀

    何在Linux中使用htop命令

    本文介紹如何在 Linux 中使用 htop 命令。
    的頭像 發(fā)表于 12-04 14:45 ?1828次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用htop<b class='flag-5'>命令</b>

    Linux基本命令總結(jié)

    都說(shuō)Linux命令多,實(shí)際工作中我們又有多少命令會(huì)接觸用到?本文跟大家分享Linux運(yùn)維工作中常用的600個(gè)
    的頭像 發(fā)表于 01-11 10:32 ?933次閱讀

    何在Linux中使用SIM7100模塊的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在Linux中使用SIM7100模塊的詳細(xì)資料概述
    發(fā)表于 06-14 08:00 ?10次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用SIM7100模塊的詳細(xì)資料概述

    何在 Linux 中使用一個(gè)命令升級(jí)所有軟件

    你無(wú)需運(yùn)行每個(gè)包管理器來(lái)更新包。 topgrade 工具通過(guò)檢測(cè)已安裝的軟件包、工具、插件并運(yùn)行相應(yīng)的軟件包管理器來(lái)更新 Linux 中的所有軟件,用一條命令解決問(wèn)題。
    的頭像 發(fā)表于 07-28 08:20 ?4722次閱讀

    何在嵌入式Linux中使用GPIO

    了解如何在嵌入式Linux中使用GPIO,特別強(qiáng)調(diào)Zynq-7000系列。 我們介紹了基本的用戶和內(nèi)核空間GPIO使用情況,以及GPIO,GPIO密鑰和GPIO LED上的bit-banged I / O.
    的頭像 發(fā)表于 11-26 07:02 ?4047次閱讀

    何在Linux中使用nmcli命令添加和管理網(wǎng)絡(luò)連接

    nmcli 實(shí)用程序是在 Linux 系統(tǒng)上添加和管理網(wǎng)絡(luò)連接的有用工具。它提供了簡(jiǎn)單的命令行選項(xiàng)來(lái)幫助您配置網(wǎng)絡(luò),尤其在命令行服務(wù)器上。
    的頭像 發(fā)表于 08-07 16:28 ?3860次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用nmcli<b class='flag-5'>命令</b>添加和管理網(wǎng)絡(luò)連接

    何在Linux使用pidof命令

    `pidof`是一個(gè)命令行程序,可讓您找到正在運(yùn)行程序的進(jìn)程ID。在教程中,我們將說(shuō)明如何在Linux 使用pidof命令。
    的頭像 發(fā)表于 12-05 17:01 ?2271次閱讀

    何在Linux使用touch命令

    Linux touch命令用于更改文件時(shí)間戳。但touch命令的最常見(jiàn)用法是創(chuàng)建文件。
    的頭像 發(fā)表于 12-05 17:21 ?2001次閱讀

    何在Linux使用rpm命令

    RPM是基于RedHat Linux發(fā)行版的軟件包管理器,例如CentOS和Fedora。RPM還指`rpm`命令和`.rpm`文件擴(kuò)展名稱。
    的頭像 發(fā)表于 01-04 17:14 ?1622次閱讀

    何在Linux上使用粘貼命令?

    Linux中的粘貼命令是一個(gè)有用的工具,用于將多個(gè)文件或文本行合并到單個(gè)文件或輸出中。它通常與剪切命令結(jié)合使用,允許用戶剪切特定行或文本部分并將其粘貼到其他地方。在本文中,小編將探討 Linu
    的頭像 發(fā)表于 02-08 16:58 ?1761次閱讀

    何在Linux中使用progress命令

    progress 命令是一個(gè)簡(jiǎn)單但功能強(qiáng)大的 Linux/Unix 命令行工具,可讓用戶查看文件操作的進(jìn)度。
    的頭像 發(fā)表于 04-08 15:51 ?2272次閱讀

    何在Linux命令行中運(yùn)行Python腳本

    Python 腳本。 在本文中,我們將詳細(xì)介紹如何在 Linux 命令行中運(yùn)行 Python 腳本。我們將討論以下主題:
    的頭像 發(fā)表于 05-12 14:49 ?1640次閱讀

    恒訊科技分析:如何在Linux上使用rm命令刪除文件和目錄?

    本指南展示了如何在Linux中使用rm命令行刪除文件、目錄和其他內(nèi)容?
    的頭像 發(fā)表于 06-09 17:02 ?1140次閱讀