命令行生存指南:监视命令输出
文章插图
有时候需要不断的执行某个命令并追踪其输出产生的变化情况 。
? 作者:Lujun9972 ?
(本文字数:1686 , 阅读时长大约:2 分钟)
作为一个工程师 , 我们经常与命令行打交道 , 但除了工作用的命令 , 你是否尝试过让命令来替代你生活中方方面面?
为了让更多的爱好者可以用命令行作为自己的有效工具 , Linux 中国特别邀请了三位作者 , 撰写了《命令行生存指南》 , 希望可以通过这个系列的文章 , 让你换一个视角 , 来看待命令行的存在 。 如果你想体验一下不一样的命令行 , 那就不妨来看看今天的《命令行生存指南》 。
本次的内容为试读内容 , 也欢迎你针对今天的内容提出自己的意见和建议 。
操作概述有时候需要不断的执行某个命令并追踪其输出产生的变化情况 。 一种常见的方法是通过写一段死循环的 shell 脚本来实现 , 不过 Linux 本身已经提供了一个工具来帮你定期执行指定的程序并将结果全屏输出 , 本节将会介绍该工具 。
概念和术语在 shell 上执行一个命令行时通常会自动打开三个标准文件 , 即标准输入文件(stdin) , 通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr) , 这两个文件都对应终端的屏幕 。 进程将从标准输入文件中得到输入数据 , 将正常输出数据输出到标准输出文件 , 而将错误信息送到标准错误文件中 。
操作实战场景一:使用 watch 定期执行命令并监视输出
文章插图
watch 的基本用法
watch 的使用方法很简单 , 只需要:
watch 命令
就行了 , 这样 watch 命令会每隔两秒执行一次 命令 , 并全屏输出执行结果 。
下图是执行 watch date 的一个界面:
Every 2.0s: dateorangepipc2: Sat Oct3 09:55:14 2020Sat 03 Oct 2020 09:55:14 AM CST
图中第一行中的 Every 2.0s: 表示 watch 每隔 2 秒执行一次命令 。 后面的 date 为要执行的命令 。 再后面的 orangepipc2: 是执行命令的主机名 , Sat Oct 3 09:55:14 2020 为执行命令的时间 。
从第三行开始就是命令执行的输出结果 。
指定重复执行命令的间隔时间
通过 -n 间隔 你也可以设置重复执行命令的间隔时间 , 比如我可以调整为每 5 秒中执行一次 date 命令
watch -n 5 date
发现输出中的变化
如果只是单纯的重复执行命令的话 , 那么可以很容易地通过 shell 循环来实现 , 然而 watch 的能力不仅如此而已 。
通过 -d 选项 , watch 还能高亮显示两次输出中不同的部分 , 这个功能相当实用:
watch -d -n 10 date
文章插图
【命令行生存指南:监视命令输出】除了高亮显示输出中改变的部分外 , 你也可以设置让 watch 发现结果有改变时退出循环执行 , 方法是使用 -g/--chgexit 选项 。 例如我们可以通过下面命令来发现 USB 变动情况 。
watch -g 'dmesg |grep -i usb |tail'
检测命令执行的返回值
默认情况下 , watch 并不会关心命令的执行结果是否成功 , 但你可以设置让 watch 检测命令的返回值 , 当命令运行返回非 0 时发出蜂鸣(-b/--beep)或者直接退出(-e/--errexit) 。
watch -e wrong_commands
文章插图
小练习
- 尝试使用 watch 监控工程目录 , 并结合其他工具实现自动编译 。
- 关闭|虾米音乐的关闭,再次应证了互联网下竞争的规则,小而精很难生存
- 投资|假日购物季投资指南:华尔街最爱的10支零售股
- 数字|数字文化产业融合有了新指南
- 购机|购机指南 2款5G千元机都有索尼6400万四摄 该如何选择?
- 浅谈如何开好一家手机维修店(六):指南舟手机维修培训学校
- Java模块系统新特性快速上手指南
- 告别卡顿,一份手机清理指南
- 笔记本选购避坑指南:这三个问题要看仔细
- 小白零基础装机完全指南(上)-认识所有配件型号和功能
- 实操指南|金蝶KIS云?旗舰版电商管理:电子面单启用