跳到主要内容

Linux watch 命令教程(注重实用技巧)

大家好,今天我们来聊一聊 Linux 系统中的 watch 命令,它可是个监控利器哦!😎

1. 命令简介

watch 命令是一个非常实用的工具,它可以让你定期执行一个命令,并显示其执行结果在终端中。这对于监控系统状态、文件变化、或者任何需要持续观察的任务都非常有用。

2. 命令格式

watch [options] command
  • command 是你想要执行的命令。
  • options 是可选的参数,用来控制 watch 的行为。

3. 实用技巧

3.1 监控系统负载

watch -n 2 uptime

终端输出:

Every 2.0s: uptime                       你的主机名: Tue Nov 20 09:45:01 2024

09:45:01 up 3 days, 12:34, 3 users, load average: 0.00, 0.01, 0.05

这里的 -n 2 表示每2秒执行一次 uptime 命令,显示系统当前的负载情况。😎

3.2 监控特定文件的变化

watch -d ls -l file.txt

终端输出:

Every 2.0s: ls -l file.txt               你的主机名: Tue Nov 20 09:47:03 2024

-rw-r--r-- 1 user user 1024 Nov 20 09:47 file.txt

-d 选项会高亮显示输出中的变化部分。假设你想监控某个文件的大小变化,这个命令就很合适。📝

3.3 无标题监控

watch -t free -m

终端输出:

              total        used        free      shared  buff/cache   available
Mem: 15989 2534 5776 11 7679 12983
Swap: 10239 0 10239

这个命令会监控系统的内存使用情况,并且不显示标题栏。😉

3.4 监控特定进程

watch 'ps -ef | grep [f]irefox'

终端输出:

UID          PID    PPID  C STIME TTY          TIME CMD
user 1234 1232 0 09:40 ? 00:00:00 /usr/lib/firefox/firefox
user 1235 1234 0 09:40 ? 00:00:00 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser

这里使用了 grep 命令来过滤进程列表,显示与 firefox 相关的进程信息。🔍

3.5 监控网络连接

watch -n 5 'netstat -tuln | grep LISTEN'

终端输出:

Every 5.0s: netstat -tuln | grep LISTEN   你的主机名: Tue Nov 20 09:50:05 2024

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN

这个命令可以监控正在监听的网络端口,-n 5 表示每5秒更新一次。📡

3.6 监控磁盘空间

watch -n 10 'df -h | grep /dev/sda1'

终端输出:

Every 10.0s: df -h | grep /dev/sda1      你的主机名: Tue Nov 20 09:52:15 2024

/dev/sda1 20G 15G 3.8G 80% /home

这个命令可以监控特定分区的磁盘空间使用情况。📦

3.7 监控日志文件

watch -n 1 'tail -n 5 /var/log/syslog'

终端输出:

Every 1.0s: tail -n 5 /var/log/syslog    你的主机名: Tue Nov 20 09:55:26 2024

Nov 20 09:55:25 your-hostname systemd[1]: Starting User Slice of user user...
Nov 20 09:55:25 your-hostname systemd[1]: Created slice User Slice of user user.
Nov 20 09:55:25 your-hostname systemd[1]: Starting User Runtime Directory /run/user/1000...
Nov 20 09:55:25 your-hostname systemd[1]: Created slice User Runtime Directory /run/user/1000.
Nov 20 09:55:26 your-hostname systemd[1]: Starting User Manager for UID 1000...

这个命令可以实时监控系统日志的变化,-n 1 表示每秒更新一次。📜

4. 小技巧与注意事项

4.1 退出 watch 命令

要退出 watch 命令,按 Ctrl + C。✋

4.2 暂停与恢复

如果你想暂停监控,可以按 Ctrl + Z,然后使用 fg 恢复。🔄

4.3 脚本中使用 watch

在编写脚本时,watch 可以用来监控脚本执行过程中某些变量或文件的变化:

#!/bin/bash
watch -n 5 'echo "监控变量 $VARIABLE"'

这样每5秒会输出变量 $VARIABLE 的值。📜

5. 总结

watch 命令是系统管理员和开发者的好帮手,它让你可以轻松地监控系统的各种变化。无论是系统负载、文件变化、网络连接、磁盘空间还是日志文件,watch 都能帮你实时掌握情况。📂

掌握了 watch,你就可以随时了解系统的动态,确保一切都在你的掌控之中。🎯


加油,继续在命令行中探索新技能!💪🏻 别忘了收藏在线知识库(www.zxzsk.com),让更多有用的知识为你提供帮助!😊

继续探索,你已经很棒啦!🌟