【问题标题】:Sending different commands to different terminals向不同的终端发送不同的命令
【发布时间】:2011-12-30 19:28:03
【问题描述】:

我需要在不同的“计算机”上运行 3 个不同的程序。这些计算机在终端的三个不同选项卡中打开。如何制作 bash/python/??可以将三个不同的命令发送到三个不同的选项卡的脚本。提前致谢。

【问题讨论】:

  • 你的意思是“计算机”?是ssh 连接还是什么?
  • @dmitry.malikov 是的。计算机意味着与远程主机的 ssh 连接

标签: bash terminal command gnome-terminal


【解决方案1】:

编辑给cmets:

gnome-terminal -e "bash -c 'ls *; echo hello world; ssh user@remote -XCt xterm'"

请注意,这也允许您轻松嵌入环境变量:

MESSAGE="goobye"
gnome-terminal -e "bash -c 'echo $MESSAGE'"

我会使用 GNU 屏幕:

screen -DRS mysession # starts the session with a given name
screen command1       # start the commands
screen command2
screen command3

现在有许多选项可以同时显示多个或所有窗口、监视活动、记录窗口的输出等等。您甚至可以分离会话并重新连接到它,因此如果您离开桌面,您可以通过使用例如登录到您的 PC 来回到您的会话。 ssh,然后输入

screen -DRS mysession

再次:你会回到原来的位置,所有三个窗口仍然处于活动状态

编辑哦,既然你问了:

screen -xS mysession

将查看/共享同一个会话(名为mysession),而不分离另一个终端。这使您可以远程共享屏幕,或在不同的 Xterm/gnome-terminal 等中显示会话的单独屏幕。


一些键绑定:

  • Ctrl+A空格下一屏
  • Ctrl+AS水平分割
  • Ctrl+A|垂直分割
  • Ctrl+ATab焦点到下一个可见窗口

  • Ctrl+AD 分离(用screen -DR重新连接)

更多功能...

  • Ctrl+A?功能帮助

【讨论】:

  • 非常感谢。但是,我的意图是发送将在多个服务器上运行的多个命令,并且我想自动化它(因为我经常这样做)。你能再解释一下吗?
  • 不,我想发送不同的命令,例如A. 在 Server1 上运行 QEMU B. 在 Server2 上运行 simplescalar C. 在 Server3 上运行 M5
  • Puppet 看起来像是一个管理工具。我不是系统管理员,只是一个用户,想使用这些服务器
  • 这样的东西对我来说已经足够了: gnome-terminal -e 'command "complex argument"' from stackoverflow.com/questions/6611542/… 唯一的问题是我需要发出命令,这些命令有它们的参数。该怎么做?
  • 谢谢。我找到了答案。我需要将 xterm -e ssh xyz1 用于不同的终端,这样就可以了。感谢您的及时帮助。
猜你喜欢
  • 2021-09-22
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-17
相关资源
最近更新 更多