Linux watch命令介绍
watch 是一个非常实用的命令,它可以帮助用户定时执行一个程序或命令,并将结果输出到终端。这个命令通常用于周期性地监视某个命令的输出结果,例如监控系统资源的使用情况、查看目录内容的变化等。通过使用 watch,你可以实时地了解到命令输出的动态变化。
Linux watch命令适用的Linux版本
watch 命令在大多数Linux发行版中都是可用的。如果你发现系统提示 bash: watch: command not found,你可能需要安装 procps 或 procps-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:结合使用 watch 和 grep
监控特定文本在日志文件中出现的频率:
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的错误,请按照上述方法尝试手动安装。
评论区