Arp*_*ith 50 shell terminal parallelism
Linux 中是否有任何工具/命令可用于同时在多个选项卡中运行命令?我想运行相同的命令:./myprog argument1 argument2同时在多个 shell 中检查互斥锁是否在线程程序中正常工作。我希望能够增加这个程序的实例数量,以便以后让我的代码承受压力。
我正在寻找类似 wall 的东西。我可以考虑使用 tty,但是如果我必须将其扩展到更多 shell,那似乎很痛苦。
jll*_*gre 62
正如 mavillan 已经建议的那样,只需使用terminator。它允许以平铺方式显示许多终端。通过单击网格图标(左上角)并选择“全部广播”启用广播功能时,您可以同时在每个终端上输入相同的命令。
这是一个将 date 命令广播到 32 个终端的网格的示例。

Mic*_*nez 21
tmux有这个能力。(以及许多其他同样有用的功能)
可以通过:
:setw synchronize-panes on
Run Code Online (Sandbox Code Playgroud)
另一种添加到列表中的工具称为multixterm. 它使用xterm终端。你可以像这样调用它:
$ multixterm
Run Code Online (Sandbox Code Playgroud)
一旦启动,您将看到一个 GUI。

然后,您可以xterm通过单击new xterm按钮开始旋转窗口。例如,我在这里调用了 2。如果然后单击主窗口,则可以同时开始在两个窗口中键入命令:

似乎只在 Ubuntu 上可用,看起来类似于 multixterm。
摘抄
键盘投射的目的是允许您一次向多个 X 窗口发送击键。例如,这允许您出于批量管理的目的控制连接到不同但相似的主机的多个终端。
您也可以选择非终端。如果你想出一个合理的使用这种能力的方法,我会很想知道的。
该程序可以通过匹配标题(使用子字符串)或单击它们(以类似于 GIMP 的屏幕截图功能的方法)来选择要发送到的窗口。
该程序还具有生成多个 gnome-terminal 实例的功能,这些实例在多个参数上执行单个命令(例如在多个主机上执行“ssh”)。如果存在配置文件“keyboardcast”(因此,例如,您的字体大小可以更小),则会使用配置文件“keyboardcast”调用 gnome 终端。
您可以执行以下操作:
max_processes=20
for ((i=0; i<$max_processes; i++))
do
/path/to/myprog arg1 arg2 > /tmp/myprog.${i}.log &
done
Run Code Online (Sandbox Code Playgroud)
或者如果每个命令的输出在执行过程中是相关的,您可以设置屏幕。
vi ~/.screenrc
screen -t inst1 1 /path/to/myprog arg1 arg2
screen -t inst2 2 /path/to/myprog arg1 arg2
screen -t inst3 3 /path/to/myprog arg1 arg2
screen -t inst4 4 /path/to/myprog arg1 arg2
Run Code Online (Sandbox Code Playgroud)
屏幕需要更多的手动工作。