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

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

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

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

root@jaking-virtual-machine:~# echo "watch -n -l -g command" >> hello.txt
#新终端 root@jaking-virtual-machine:~# watch -n 1 -g 'du -b hello.txt'
#旧终端
Every 1.0s: du -b hello.txt
jaking-virtual-machine: Tue Mar 19 19:21:55 2019 50 hello.txt
#此时watch -n 1 -g 'du -b hello.txt'运行结束 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. 001-mock.js安装使用

    一.基础 1.1.安装 //安装 npm install mockjs --save 1.2.使用 // 使用 Mock var Mock = require('mockjs') Mock.mock( ...

  2. python基础入门--input标签、变量、数字类型、列表、字符串、字典、索引值、bool值、占位符格式输出

    # 在python3 中: # nian=input('>>:') #请输入什么类型的值,都成字符串类型# print(type(nian)) # a = 2**64# print(typ ...

  3. Ext.define细节分析

    自己写的其实还是不懂,再看看别人写的吧Extjs4 源码分析系列一 类的创建过程https://www.cnblogs.com/creazyguagua/p/4302864.htmlhttp://ww ...

  4. Sqlserver2008R2配置数据库镜像之我的经验总结

    一. 相关环境介结. 数据库:Sqlserver2008R2    网络环境:主机.镜像机(阿里云,青岛节点同域),见证机(本公司自己托管在上海) 二. 服务器相关配置. 1. 分别开启三台服务器50 ...

  5. cocos2d JS 艺术字特殊符号的显示

    this.setSocreAtion(score, this.tfMoneyList[index],mun); //传入分数与对象,调用下面的函数 setSocreAtion : function ( ...

  6. 数据加密之MD5加密

    MD5是一个安全的散列算法,有两个特点:1.输入两个不同的明文(一段原始的数字信息)不会得到相同的输出值2.根据输出值,不能得到原始的明文,即过程不可逆所以要解密MD5没有现成的算法,只能用穷举法,把 ...

  7. react native 中使用react-native-vector-icons

    1.引入依赖 cnpm install react-native-vector-icons --save 2.LINK原生 react-native link react-native-vector- ...

  8. python爬取12306及各参数的使用。完整代码

    import requestsfrom retrying import retryreuquests和retrying的下载及安装可以通过命令行pip install 口令实现 # 调用重连装饰器固定 ...

  9. windows中查看端口占用情况

    说几个命令, netstat 用于查看进程端口占用情况,用法可以使用netstat -h 查看 tasklist 列出当前进程,有进程号 findstr 用于过滤字符串 大致过程就是: 1. 使用 n ...

  10. web.config 特殊字符转义

    字符 转义码 & 符号 & & 单引号 ' &apos; 双引号 " " 大于 > > 小于 < <