#command-output #command #watch #monitoring #ansi-colors #execute-command #real-time

app hwatch

现代的 watch 命令替代品,记录执行结果差异,并可以在之后进行检查

20 个版本

0.3.15 2024 年 6 月 18 日
0.3.13 2024 年 5 月 6 日
0.3.11 2024 年 3 月 4 日
0.3.10 2023 年 4 月 15 日
0.1.6 2021 年 10 月 31 日

#506命令行工具

Download history 18/week @ 2024-04-22 10/week @ 2024-04-29 225/week @ 2024-05-06 25/week @ 2024-05-13 25/week @ 2024-05-20 9/week @ 2024-05-27 170/week @ 2024-06-03 119/week @ 2024-06-10 256/week @ 2024-06-17 21/week @ 2024-06-24 18/week @ 2024-07-01 14/week @ 2024-07-08 6/week @ 2024-07-15 65/week @ 2024-07-22 27/week @ 2024-07-29 17/week @ 2024-08-05

116 每月下载量

自定义许可

6.5MB
5K SLoC

hwatch

hwatch - 替代 watch 命令。

描述

hwatch 是一个替代的 watch 命令。它会记录命令执行的结果,并可以显示其历史和差异。

特性

  • 当发生差异时,可以保留历史记录,并在以后进行检查。
  • 可以检查历史记录中的差异。显示方法可以实时更改。
  • 可以将执行结果作为日志(json 格式)输出。
  • 提供自定义键盘映射。
  • 支持 ANSI 颜色代码。
  • 执行结果可以滚动。
  • 不仅作为 TUI 应用程序,还可以将差异输出到标准输出。
  • 如果发生差异,可以执行指定的额外命令。

安装

macOS (brew)

brew install hwatch

macOS (MacPorts)

sudo port install hwatch

Arch Linux (AUR)

paru -S hwatch

Cargo Install

cargo install hwatch

使用方法

命令

    $ hwatch --help
    A modern alternative to the watch command, records the differences in execution results and can check this differences at after.

    Usage: hwatch [OPTIONS] [command]...

    Arguments:
      [command]...

    Options:
      -b, --batch                         output exection results to stdout
      -B, --beep                          beep if command has a change result
          --border                        Surround each pane with a border frame
          --with-scrollbar                When the border option is enabled, display scrollbar on the right side of watch pane.
          --mouse                         enable mouse wheel support. With this option, copying text with your terminal may be harder. Try holding the Shift key.
      -c, --color                         interpret ANSI color and style sequences
      -r, --reverse                       display text upside down.
      -C, --compress                      Compress data in memory.
      -t, --no-title                      hide the UI on start. Use `t` to toggle it.
      -N, --line-number                   show line number
          --no-help-banner                hide the "Display help with h key" message
      -x, --exec                          Run the command directly, not through the shell. Much like the `-x` option of the watch command.
      -O, --diff-output-only              Display only the lines with differences during `line` diff and `word` diff.
      -A, --aftercommand <after_command>  Executes the specified command if the output changes. Information about changes is stored in json format in environment variable ${HWATCH_DATA}.
      -l, --logfile [<logfile>]           logging file
      -s, --shell <shell_command>         shell to use at runtime. can  also insert the command to the location specified by {COMMAND}. [default: "sh -c"]
      -n, --interval <interval>           seconds to wait between updates [default: 2]
      -L, --limit <limit>                 Set the number of history records to keep. only work in watch mode. Set `0` for unlimited recording. (default: 5000) [default: 5000]
          --tab-size <tab_size>           Specifying tab display size [default: 4]
      -d, --differences [<differences>]   highlight changes between updates [possible values: none, watch, line, word]
      -o, --output [<output>]             Select command output. [default: output] [possible values: output, stdout, stderr]
      -K, --keymap <keymap>               Add keymap
      -h, --help                          Print help
      -V, --version                       Print version

快捷键

Watch 模式快捷键(默认)。

操作
, 移动选定的屏幕(历史/监视)。
pageup, pagedn 移动选定的屏幕(历史/监视)。
home, end 移动选定的屏幕(历史/监视)。
Tab 切换选择屏幕(历史/监视)。
选择监视屏幕。
选择历史屏幕。
H 显示帮助窗口。
B 切换启用/禁用边框。
S 切换启用/禁用边框滚动条。
C 切换颜色。
N 切换行号显示。
R 切换反向模式。
M 切换鼠标支持。
D 切换 diff 模式。
T 切换 UI(历史窗格和标题)。
Backspace 切换历史窗格。
Q 退出 hwatch。
0 禁用 diff。
1 切换监视类型 diff。
2 切换行类型 diff。
3 切换单词类型 diff。
O 切换输出模式(输出->stdout->stderr)。
Shift+O 仅显示有差异的行(仅限行/单词 diff 模式)。
Shift+S 在历史记录中显示摘要信息。
F1 仅输出标准输出。
F2 仅输出标准错误。
F3 输出结果。
+ 增加间隔。
- 减少间隔。
/ 按字符串过滤历史记录。
* 按正则表达式过滤历史记录。
Esc 取消过滤。
Ctrl+c 取消。

自定义按键绑定

可以使用-K选项自定义按键绑定。格式为keybind=function

hwatch -K ctrl-p=history_pane_up -K ctrl-n=history_pane_down command...

可以指定的按键绑定函数如下。

函数 描述
up 向上移动
watch_pane_up 在监视器面板中向上移动
history_pane_up 在历史面板中向上移动
down 向下移动
watch_pane_down 在监视器面板中向下移动
history_pane_down 在历史面板中向下移动
page_up 向上翻页
watch_pane_page_up 在监视器面板中向上翻页
history_pane_page_up 在历史面板中向上翻页
page_down 向下翻页
watch_pane_page_down 在监视器面板中向下翻页
history_pane_page_down 在历史面板中向下翻页
move_top 移动到顶部
watch_pane_move_top 在监视器面板中移动到顶部
history_pane_move_top 在历史面板中移动到顶部
move_end 移动到底部
watch_pane_move_end 在监视器面板中移动到底部
history_pane_move_end 在历史面板中移动到底部
toggle_forcus 切换焦点窗口
forcus_watch_pane 聚焦监视器面板
forcus_history_pane 聚焦历史面板
quit 退出hwatch
reset 过滤重置
取消 取消
help 显示和隐藏帮助窗口
toggle_color 切换启用/禁用ANSI颜色
toggle_line_number 切换启用/禁用行号
toggle_reverse 切换启用/禁用文本反转
toggle_mouse_support 切换启用/禁用鼠标支持
toggle_view_pane_ui 切换查看标题/历史面板
toggle_view_header_pane 切换查看标题面板
toggle_view_history_pane 切换查看历史面板
toggle_border 切换启用/禁用边框
toggle_scroll_bar 切换启用/禁用滚动条
toggle_diff_mode 切换差异模式
set_diff_mode_plane 设置差异模式面板
set_diff_mode_watch 设置差异模式监视器
set_diff_mode_line 设置差异模式行
set_diff_mode_word 设置差异模式词
set_diff_only 仅设置差异行(仅行/词差异)
toggle_output_mode 切换输出模式
set_output_mode_output 设置输出模式输出
set_output_mode_stdout 设置输出模式标准输出
set_output_mode_stderr 设置输出模式标准错误
togge_history_summary 切换历史摘要
interval_plus 间隔+0.5秒
interval_minus 间隔-0.5秒
change_filter_mode 更改过滤模式
change_regex_filter_mode 更改正则表达式过滤模式

配置

如果您始终想使用某些命令行选项,您可以在HWATCH环境变量中设置它们。例如,如果您使用bash,您可以将以下内容添加到您的.bashrc

export HWATCH="--no-title --color --no-help-banner --border --with-scrollbar"

示例

间隔10秒

使用-n选项指定命令执行间隔。

hwatch -n 3 command...

日志输出

命令执行结果可以以json格式输出为日志。

hwatch -n 3 -l hwatch_log.json command...

当您检查json日志时,您可以使用此脚本轻松检查。

使用shell函数

如果您想定期执行shell函数,您可以使用以下方式指定要执行的shell命令-s。

# bash
hwatch -n 3 -s 'bash -c "source ~/.bashrc"; {COMMAND}' command...

# zsh
hwatch -n 3 -s 'zsh -c "source ~/.zshrc"; {COMMAND}' command...

ANSI颜色代码

如果您想以ANSI颜色代码查看输出,请启用颜色模式。

要启用颜色模式,请使用带有 -c 选项的 hwatch 运行。或者,您可以在执行过程中使用 C 键来启用/禁用颜色模式。

hwatch -n 3 -c command...

diff 查看器

要启用颜色模式,请使用带有 - 选项的 hwatch 运行。

有几种“diff 模式”可供选择。可以使用 D 键进行切换。

hwatch -n 3 -d command...

监视 diff

行 diff

词 diff

历史过滤

您可以使用 / 键按字符串过滤历史,使用 * 键按正则表达式过滤。

运行批处理模式

您可以使用 - 选项将命令 diff 直接输出到 stdout,而不是作为 TUI 应用程序。

hwatch -b command...

依赖项

~35-48MB
~1M SLoC