linux之watch

linux之watch

watch命令用于周期性的执行命令,且打印在一个屏幕中!超过一个屏幕将无法显示!

免去单行while或for的语句来说很是方便,但如果打印输出超出一个屏幕将无法显示,所以需要根据环境去使用这个命令。

命令格式
watch [参数] [命令]
命令参数
  • -n或–interval 缺省每2秒运行一下程序,可以用-n或-interval来指定间隔周期
  • -d或–differences 选项watch 会高亮显示变化的区域
  • -d=cumulative选项会把变动过的区域(不管最近的那次有没有变动)都高亮显示出来。
  • -t 或-no-title 关闭watch命令在顶部的时间。
  • -h, –help 查看帮助文档

范例:循环显示当前时间

使用while来循环显示时间,需要sleep

while true;do echo `date '+%Y-%m-%d %H:%M:%S'`;sleep 1;done

下面使用watch来循环显示时间

1.空命令执行后,顶行右上角显示时间,默认间隔周期为2秒

watch  ""
https://qnimg.ffing.cn/wp-content/uploads/2022/10/image.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

2.调整,输出指定格式的时间戳:yyyy-mm-dd HH:MM:SS

#日期和时间中间有空格,需要引号
watch -n1 "date '+%Y-%m-%d %H:%M:%S'"
https://qnimg.ffing.cn/wp-content/uploads/2022/10/image-2.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

3.再次调整,不显示顶行的watch提示执行内容及自带的时间戳(加入-t参数)

 watch -tn1 "date '+%Y-%m-%d %H:%M:%S'"
https://qnimg.ffing.cn/wp-content/uploads/2022/10/image-3.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

范例:循环显示平均负载

#默认2秒刷新一次,-d参数用于高亮变化区域
watch -d uptime
https://qnimg.ffing.cn/wp-content/uploads/2022/10/image-4.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

范例:循环显示内存使用状态

watch -n1 free
https://qnimg.ffing.cn/wp-content/uploads/2022/10/image-5.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

拓展:

因此watch可以免去我们的循环写法,但鉴于只能打印一个屏幕,在grep关键字段时,需要注意不能超时屏幕行数,或者tail时不能加-f

good good study, day day up!

发表评论

textsms
account_circle
email

linux之watch
watch命令用于周期性的执行命令,且打印在一个屏幕中!超过一个屏幕将无法显示! 免去单行while或for的语句来说很是方便,但如果打印输出超出一个屏幕将无法显示,所以需要根据环境去使…
扫描二维码继续阅读
2022-10-17