侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux watch命令教程:如何实时监控命令输出(附实例详解和注意事项)

Linux watch命令介绍

watch 是一个非常实用的命令,它可以帮助用户定时执行一个程序或命令,并将结果输出到终端。这个命令通常用于周期性地监视某个命令的输出结果,例如监控系统资源的使用情况、查看目录内容的变化等。通过使用 watch,你可以实时地了解到命令输出的动态变化。

Linux watch命令适用的Linux版本

watch 命令在大多数Linux发行版中都是可用的。如果你发现系统提示 bash: watch: command not found,你可能需要安装 procpsprocps-ng 包。下面是在不同Linux发行版中安装 watch 命令的方法:

# 基于apt的发行版(如Debian、Ubuntu、Raspbian、Kali Linux等)
sudo apt-get update && sudo apt-get install procps

# 基于yum的发行版(如RedHat,CentOS 7等)
sudo yum update && sudo yum install procps

# 基于dnf的发行版(如Fedora,CentOS 8等)
sudo dnf update && sudo dnf install procps-ng

# 基于apk的发行版(如Alpine Linux)
sudo apk add --update procps

# 基于pacman的发行版(如Arch Linux)
sudo pacman -Syu && sudo pacman -S procps

# 基于zypper的发行版(如openSUSE)
sudo zypper ref && sudo zypper in procps

# 基于pkg的FreeBSD发行版
sudo pkg update && sudo pkg install procps

# 基于Homebrew的OS X/macOS发行版
brew update && brew install watch

Linux watch命令的基本语法

语法格式如下:

watch [选项] 命令

Linux watch命令的常用选项或参数说明

选项描述
-d高亮显示变化的部分。
-n设置刷新间隔,以秒为单位。
-t不显示标题栏(包含时间和刷新间隔信息)。
--help显示帮助信息。
-v显示版本信息。

Linux watch命令实例详解

实例1:基础使用

下面的例子将每隔2秒刷新一次 date 命令的输出。

[linux@bashcommandnotfound.cn ~]$ watch -n 2 date

实例2:监控文件夹内容变化

使用以下命令可以实时监控 /tmp 目录下文件的变化。

[linux@bashcommandnotfound.cn ~]$ watch -n 5 'ls -lh /tmp'

实例3:高亮显示变化

监控内存使用情况,并高亮显示变化的部分。

[linux@bashcommandnotfound.cn ~]$ watch -d -n 2 free -m

实例4:使用管道和过滤

你可以结合 grep 来监控特定的输出。下面的命令监控正在运行的 httpd 进程。

[linux@bashcommandnotfound.cn ~]$ watch "ps aux | grep httpd"

实例5:监视网络连接状态

监控当前活动的网络连接:

watch -n 1 netstat -tnp

这个命令每秒更新一次,显示当前的网络连接,以及哪些端口正在被监听。

实例6:实时查看日志文件的末尾

实时监控日志文件 /var/log/syslog 的最新10行输出:

watch -n 5 tail -n 10 /var/log/syslog

这将每5秒刷新显示文件的末尾10行。

实例7:监控磁盘空间使用情况

使用 df 命令监控磁盘空间使用情况:

watch -d -n 10 df -h

这个命令每10秒刷新一次,并高亮显示变化的部分。

实例8:跟踪特定进程的CPU或内存占用

假设你想实时监控进程ID为1234的进程的资源使用情况:

watch -n 1 'ps u -p 1234'

这将每秒更新该进程的CPU和内存使用情况。

实例9:监控某个服务的状态

如果你使用的是systemd管理服务,可以实时查看服务(例如nginx)的状态:

watch -n 5 systemctl status nginx

实例10:监控目录中文件数量的变化

监控指定目录(例如 /var/log)中文件数量的变化:

watch -n 2 'ls -1 /var/log | wc -l'

实例11:比较连续两次命令输出的差异

监控并高亮显示连续两次 ls 命令输出的差异:

watch -d ls -l

实例12:结合使用 watchgrep

监控特定文本在日志文件中出现的频率:

watch "grep 'specific text' /var/log/syslog | wc -l"

这将显示包含 "specific text" 文本的行数,并每隔2秒刷新一次。

实例13:监控CPU温度

在一些系统上,你可以使用 sensors 命令监控硬件的温度:

watch -n 2 sensors

这个命令每2秒刷新一次,显示CPU和其他硬件的温度信息。

Linux watch命令的注意事项

  • watch 命令默认使用的是标准间隔时间(2秒),但是你可以使用 -n 选项来自定义间隔时间。
  • 如果你的终端不支持高亮显示,-d 选项可能不会有任何效果。
  • 如果你遇到 bash: watch: command not found 的错误,请按照上述方法尝试手动安装。
0

评论区