有时候我们需要重复执行某个 命令,观察某个文件和某个结果的变化情况。可以写 脚本去实现这些需求,但是有更简单的方法,本文档要介绍的就是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. Docker源码分析(二):Docker Client创建与命令执行

    1. 前言 如今,Docker作为业界领先的轻量级虚拟化容器管理引擎,给全球开发者提供了一种新颖.便捷的软件集成测试与部署之道.在团队开发软件时,Docker可以提供可复用的运行环境.灵活的资源配置. ...

  2. saltstack命令执行过程

    saltstack命令执行过程 具体步骤如下 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc salt ...

  3. HFS远程命令执行漏洞入侵抓鸡黑阔服务器

    先来科普一下: HFS是什么? hfs网络文件服务器 2.3是专为个人用户所设计的HTTP档案系统,如果您觉得架设FTP Server太麻烦,那么这个软件可以提供您更方便的网络文件传输系统,下载后无须 ...

  4. ping命令执行过程详解

    [TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...

  5. 【MongoDB】6.关于MongoDB存储文件的 命令执行+代码执行

    参考:http://www.runoob.com/mongodb/mongodb-gridfs.html 1.命令执行 MongoDB GridFS GridFS 用于存储和恢复那些超过16M(BSO ...

  6. SQL Server数据库备份:通过Windows批处理命令执行

    通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...

  7. 图解“管道过滤器模式”应用实例:SOD框架的命令执行管道

    管道和过滤器 管道和过滤器是八种体系结构模式之一,这八种体系结构模式是:层.管道和过滤器.黑板.代理者.模型-视图-控制器(MVC) 表示-抽象-控制(PAC).微核.映像. 管道和过滤器适用于需要渐 ...

  8. "Java 反序列化"过程远程命令执行漏洞

    一.漏洞描述   国外 FoxGlove 安全研究团队于2015年11月06日在其博客上公开了一篇关于常见 Java 应用如何利用反序列化操作进行远程命令执行的文章.原博文所提到的 Java 应用都使 ...

  9. ASP代码审计 -4.命令执行漏洞总结

    命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip" ...

随机推荐

  1. 在cron运行hive时,无法打出mapreduce日志

    本身我是这么运行的: 15 1 * * * /data/xx/shells/run.sh >> /data/xx/log/joblog/job.log 发现job.log中,没有打出hiv ...

  2. 20165235 实验三 敏捷开发与XP实践

    20165235 实验三 敏捷开发与XP实践 主目录: 姓名:祁瑛 学号:20165235 班级:1652 实验课程:JAVA程序设计 实验名称:Java面向对象程序设计 实验时间:2018.4.30 ...

  3. HashMap实现原理简析及实现的demo(一看就明白)

    HashMap底层就是一个数组结构,数组中的每一项又是一个链表. jdk源码: transient Node<K,V>[] table; static class Node<K,V& ...

  4. Shiro笔记(三)shiroFilter拦截器配置原则

    参考: http://blog.csdn.net/yaowanpengliferay/article/details/17281341

  5. HBase读写数据的详细流程及ROOT表/META表介绍

    一.HBase读数据流程 1.Client访问Zookeeper,从ZK获取-ROOT-表的位置信息,通过访问-ROOT-表获取.META.表的位置,然后确定数据所在的HRegion位置: 2.Cli ...

  6. python基础篇_002_基础数据类型

    Python基础数据类型 1.int # int 用于计算 num = 3 # int 与其他数据类型转换 int_to_str = str(num) # 数字加引号 print(int_to_str ...

  7. HDU 2888 Check Corners (模板题)【二维RMQ】

    <题目链接> <转载于 >>> > 题目大意: 给出一个N*M的矩阵,并且给出该矩阵上每个点对应的值,再进行Q次询问,每次询问给出代询问子矩阵的左上顶点和右下 ...

  8. Django 学习第六天——Django模型基础第一节

    一.Django 的 ORM 简介: Django的ORM系统的分析: 1.ORM 概念:对象关系映射(Object Relational Mapping,简称ORM) 2.ORM的优势:不用直接编写 ...

  9. Django 学习第五天——自定义过滤器及标签

    代码布局:(自定义的代码放在哪?) 1.创建某个 app 特有的: 在 app 目录下,创建 templatetags python包(文件夹): 再到 templatetags 文件夹下创建pyth ...

  10. 自己总结的C#编码规范--6.格式篇

    格式 格式的统一使用可以使代码清晰.美观.方便阅读.为了不影响编码效率,在此只作如下规定: 长度 一个文件最好不要超过500行(除IDE自动生成的类). 一个文件必须只有一个命名空间,严禁将多个命名空 ...