#plot #watch #tui #command-line-tool #unix #cli

app lipl

分析自定义 shell 命令随时间输出的命令行工具

1 个不稳定版本

0.1.0 2022年8月23日

#23 in #plotting

MIT 许可证

19KB
361

实时绘图

Actions Status Actions Status Actions Status

lipl 是一个命令行工具,与 watch 类似,但具有针对输出数字的命令的扩展功能。

例如,使用 lipl 'ls' 将显示 ls 的输出,并且默认情况下每秒刷新一次结果。

现在如果命令输出一个数字,例如 ls -1 | wc -l,则可以绘制结果。在这种情况下,图表将显示一个恒定的结果,直到另一个进程向当前文件夹添加或删除文件。当您将许多文件下载到当前文件夹并希望跟踪进度时,这很有用。如果您知道总共将下载 1000 个文件,则可以简单地添加选项 --target 1000,并显示进度条以及估计的完成时间。

main example screenshot

安装

homebrew (osx & linux)

brew install yxdunc/tools/lipl

aur (arch linux)

lipl 可以使用可用的 AUR 软件包 通过 AUR 助手 安装。例如,

yay -S lipl

参数

位置参数

包含 bash 命令的字符串。

如果 bash 命令返回一个数字,则将显示一个图表(例如:ls -1 | wc -l

如果 bash 命令返回其他任何内容,则命令显示输出并遵循与 watch 相同的行为

命名参数

-n/--refresh-rate:以秒为单位的刷新率

-t/--target:用于根据命令输出显示进度条的靶值。使用简单的线性回归。

-l/--history-len:存储并绘制的给定命令的结果数量。

--show-regression-line:当为true时,显示用于计算ETA的回归线。

--show-target-line:当为true时,显示表示靶值的水平线。

示例用法

🗃在/tmp中绘制文件数量

lipl -n 0.5 "ls -1 /tmp | wc -l"

♨️ 绘制给定PID的CPU使用率

lipl -n 0.1 "ps -p ${PID} -o %cpu | tail -1"

🗂绘制给定PID的内存使用率

lipl -n 0.1 "ps -p ${PID} -o %mem | tail -1"

🐍绘制运行的Python进程数量

lipl -n 0.5 "pgrep python | wc -l"

👩‍🚀绘制太空中的人数

lipl -n 1 'echo "curl -s http://api.open-notify.org/astros.json | jq .number" | sh'

🔥绘制最耗CPU的进程的负载

lipl -n 0.01 "ps -eo pcpu | sort -n | tail -1"

💻绘制所有进程CPU负载的总和

lipl -n 0.01 'ps -eo pcpu | grep -v CPU | sed "s/  //" | paste -sd "+" - | bc'

⛓绘制比特币价格

lipl -n 5 'curl -s https://api.coindesk.com/v1/bpi/currentprice.json | jq .bpi.EUR.rate_float'

🎢绘制多项式

lipl -n 1 'echo "x=$(($(date +%s) % 30 - 15)); echo $(($x * $x * $x + $x * $x + $x))" | sh'
lipl -n 1 'echo "x=$(($(date +%s) % 30 - 15)); echo $(($x * $x + $x))" | sh'

依赖关系

~7-16MB
~192K SLoC