将输入分叉到多个终端窗口
cterm的Python项目详细描述
clusterterminal(cterm
)将所有击键从主窗口转发到多个从窗口。使用cterm
作为执行特殊任务的方法,而不是作为自动化框架的替代。
This is mostly just something I wanted to do out of fun; plenty of similar solutions out there,
tmux
being a very popular one.
安装
pip3 install cterm
ClusterTerminal使用MacOS的内置终端应用程序。
用法
最常见的用例是同时控制多个ssh会话:
cterm ssh host1 host2
除了主窗口之外,上面还将创建两个从属窗口,如下所示:
ssh host1
ssh host2
命令参数
如果要向命令传递参数,请将其作为命令的一部分包含在内。注意人物在必要的地方逃跑。例如:
cterm "ssh -l \"some user\"" host1 host2
将扩展到:
ssh -l "some user" host1
ssh -l "some user" host2
You could've also used
cterm "ssh -l 'some user'" host1 host2
to get the same outcome; I only escaped quotes to demo purposes.
项目参数
与命令类似,您可以传递每项参数(同样,请注意字符转义):
cterm ssh "\-p 1022 host1" "\-p 2022 host2"
将扩展到:
ssh -p 1022 host1
ssh -p 2022 host2
提示
您可能想在~/.bash_profile
中为集群ssh设置一个别名。例如,alias cssh="cterm ssh"
,然后使用cssh host1 host2
调用它。
在别名中,您可以保存常规设置,如alias cssh="cterm --screen 2 ssh"
以更改默认屏幕。
如果指定同一个参数两次,则最后一个实例就是使用的实例。这很有用,因为您可能希望覆盖部分别名,但不是全部别名。例如,下面将使用屏幕1:
cterm ssh host1 host2 --screen 2 --screen 1
限制
窗口必须完全不透明,因为终端的脚本功能忽略了alpha组件。