有时候我们需要重复执行某个命令,观察某个文件和某个结果的变化情况。可以写脚本去实现这些需求,但是有更简单的方法,本文档要介绍的就是watch命令。
1. 以固定时间反复执行某个命令
  1. root@jaking-virtual-machine:~# watch -n 1 cat hello.txt
  2. Every 1.0s: cat hello.txt
  3. jaking-virtual-machine: Tue Mar 19 19:13:33 2019
  4.  
  5. Hello World!
  6. Hello Jaking!
2. 高亮变化内容
  1. root@jaking-virtual-machine:~# watch -d uptime #为了突出变化部分,可以使用 -d(difference)参数。
  2. Every 2.0s: uptime
  3. jaking-virtual-machine: Tue Mar 19 19:14:01 2019
  4.  
  5. 19:14:01 up 3 days, 12:53, 2 users, load average: 0.01, 0.01, 0.00
  6. (这里省略,变化内容会高亮,非常便于观察)
3. 执行出错时退出
  1. root@jaking-virtual-machine:~# watch -n 1 -e cat hello.txt #运行某个命令,当退出码不是0时,即命令执行出错时就结束,可以使用 -e(errexit)参数。
  2. Every 1.0s: cat hello.txt
  3. jaking-virtual-machine: Tue Mar 19 19:16:49 2019

打开另一个终端,执行mv操作,可以看到效果:

  1. root@jaking-virtual-machine:~# mv hello.txt /tmp
  2. #新终端
  3. root@jaking-virtual-machine:~# watch -n 1 -e cat hello.txt
  4. #旧终端
  5. Every 1.0s: cat hello.txt
  6. jaking-virtual-machine: Tue Mar 19 19:16:49 2019
  7.  
  8. cat: hello.txt: No such file or directory
4. 执行结果变化时退出
  1. root@jaking-virtual-machine:~# watch -n 1 -g 'du -b hello.txt'
  2. Every 1.0s: du -b hello.txt
  3. jaking-virtual-machine: Tue Mar 19 19:23:41 2019
  4.  
  5. 27 hello.txt

打开另一个终端执行echo操作,可以看到效果:

  1. root@jaking-virtual-machine:~# echo "watch -n -l -g command" >> hello.txt
  2. #新终端
  3.  
  4. root@jaking-virtual-machine:~# watch -n 1 -g 'du -b hello.txt'
  5. #旧终端
  6. Every 1.0s: du -b hello.txt
  7. jaking-virtual-machine: Tue Mar 19 19:21:55 2019
  8.  
  9. 50 hello.txt
  10. #此时watch -n 1 -g 'du -b hello.txt'运行结束
  11.  
  12. root@jaking-virtual-machine:~#

watch解放你的双手的更多相关文章

  1. 解放程序员双手之Supervisor

      前言 对于大部分程序员来说,主要工作都是进行编码以及一些简单的中间件安装,这就导致了很多人对于“运维”相关的工作会比较生疏.例如当我们拥有一台自己的服务器以后,可能会在上面跑一跑自己blog程序, ...

  2. 巧用watch命令执行循环操作,来解放我们的双手

    有时候我们需要重复执行某个 命令,观察某个文件和某个结果的变化情况.可以写 脚本去实现这些需求,但是有更简单的方法,本文档要介绍的就是watch 命令. 1. 以固定时间反复执行某个命令 root@j ...

  3. jQuery前端数据通用验证库,解放你的双手

    这个简易的验证库,应该能完成90%的基本验证,包括失去焦点时的验证,以及点击提交按钮时的验证.后端的那我就无能为办了,只能是谁用就谁自个儿去写了:). 先上一段调用的代码吧,JS代码说少也不少了,就不 ...

  4. Cash Loan----:利用脚本自动化部署系统,解放我们的双手

    [前言] 现在我们的项目发布(从git上拉代码部署到Linux上)是通过脚本来完成,生产和测试环境都是运维在控制,开发联调环境由开发来负责,之前开发环境每次部署都是先在本地打好jar包然后传到服务器上 ...

  5. 写一个umi插件 自动生成代码 解放cv的双手

    引言 最近在写一个中台项目,使用的react的umi框架. 各种增删改查.基本是列表页 新建页 详情页这种页面 为了避免不必要的简单重复(主要是想偷懒) 于是想去实现自己的一个代码生成器 探索 首先, ...

  6. ssh配置连接远程主机 彻底解放你的双手

    查看ssh支持配置 man ssh_config 打开ssh并配置 vi ~/.ssh/config 基本配置示例说明 密钥文件连接 Host <别名> Port <机器端口号> ...

  7. ES6中的变量的解构赋值, 解放我们的双手,实现变量的批量赋值

    ES6--变量的解构赋值 引言 正文 一.数组的解构赋值 解构失败 不完全解构 默认值 二.对象的解构赋值 三.字符串的解构赋值 结束语 引言 变量的解构赋值, 听起来很复杂, 简单点说可以理解成批量 ...

  8. Serverless+SCF=打倒服务器,解放程序员

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云加社区技术沙龙 发表于云+社区专栏 "你做什么工作的?" "程序员." "那正好, ...

  9. mapstruct解放Java对象转换

    摘要 当前web后端开发,都是使用多层工程结构,需要在VO,BO,DTO,DO等各种数据结构中相互转换.这些转换代码都是些比较简单的字段映射,类型转换,重复性工作比较高,可以使用一些工具解放我们的双手 ...

随机推荐

  1. jmeter报错:响应数据HTTP Status 500 & 后台日志Typed variable declaration : Object constructor

    今天在测试文件下载接口,发现在测试单个文件下载1次时,文件成功下载.但是在测试单个文件并发下载50次时,Jmeter报错了,后台服务器tomcat竟然没有发现报错信息. Jmeter响应信息报错: H ...

  2. 20165236 2017-2018-2《Java程序设计》课程总结

    20165236 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总: 1.我期望的师生关系 2.学习基础和C语言基础调查 3.20165236郭金涛 预备作业3 L ...

  3. [LeetCode] 559. Maximum Depth of N-ary Tree_Easy tag: DFS

    Given a n-ary tree, find its maximum depth. The maximum depth is the number of nodes along the longe ...

  4. \Temporary ASP.NET Files\root\文件不断增长,如何处理?

    很久没有写博了.最近半年除了忙活布置新家和过年期间走亲访友之外,都是在公司处理一些项目中的杂事:连家里买的很多书都停下来没看了,感觉这段时间在事业和学习上一直都是忙忙碌碌,却又碌碌无为. 吐槽完,说正 ...

  5. MySQL--8MySQL存储过程小结

    CURD: 就是对数据表进行插入更新删除查找的操作. 预编译:第一次会分析语法是否正确,编译成可识别的命令.然后存在内存中,以后再调用就省去了这两步,效率变高. 第一点:在存储过程内可以写控制语句,可 ...

  6. gdb强制生成core文件

    如何为自己的进程产生core 文件,又不想退出这个进程? 系统只在程序崩溃退出时自动产生core file. 有的人像自己处理异常信号,然后自己产生一个core file,然后继续运行.那该怎么办呢? ...

  7. 2017.11.11日后matlab统一过期需激活解决办法

    转载自此处: 在matlab安装目录中找到license目录,并创建license.lic文件,然后把以下内容copy到文件中,重启matlab. INCREMENT Aerospace_Blocks ...

  8. iOS 阅读唐巧博客心得

    1. iOS 开发中的争议(一) http://blog.devtang.com/2015/03/15/ios-dev-controversy-1/ 文中提及到,在使用的时候,应该是使用self.pr ...

  9. shell基础:位置参数变量

    位置参数名称,作用不变.变得是传入参数. 抽象问题,大多为年长资格老师少数年轻老师,故而问的技术细节少,抽象理论知识多,比如什么是软件工程,问什么会有软件工程.有事注重的是品质,有的注重出身. 每种都 ...

  10. H5 dom元素保存为图片

    一.使用插件html2canvas:https://github.com/niklasvh/html2canvas 具体代码: 1.html <div class="test" ...