如何让终端的顶部栏显示正在运行的命令?

Tch*_*vic 15 command-line

我经常并行运行需要很长时间才能完成的命令,有时我无法跟踪正在运行的内容,因为它们在屏幕上输出的信息类型基本相同。

您知道有什么方法可以找出在哪个终端中运行的命令吗?

des*_*ert 12

取自Bash - 通过运行第二个命令更新终端标题·U&L并略有更改:

trap 'echo -ne "\033]2;$(history 1 | sed "s/^[0-9 ]* \+//")\007"' DEBUG
Run Code Online (Sandbox Code Playgroud)

这 (ab) 使用DEBUG信号作为触发器,通过XTerm Control Sequence 使用历史记录中的最后一个条目(即您执行的最后一个命令)更新标题。将该行添加到您的,~/.bashrc以在每个新终端窗口中启用该功能。

要在标题旁边打印其他命令输出,请说当前目录,pwd后跟“:”和当前正在运行的命令,我建议使用printf如下:

trap 'echo -ne "\033]2;$(printf "%s: %s" "$(pwd)" "$(history 1 | sed "s/^[0-9 ]* \+//")")\007"' DEBUG
Run Code Online (Sandbox Code Playgroud)

一些终端模拟器允许您指定动态标题,甚至为您提供命令名称作为选项,这样您甚至不需要摆弄 - 我在yakuake的配置文件设置中搜索并找到了它。