gpt4 book ai didi

shell - 以编程方式打开 gnome 终端选项卡并按顺序执行命令

转载 作者:行者123 更新时间:2023-12-02 13:51:45 25 4
gpt4 key购买 nike

远程工作时,我在 gnome 终端中打开了一系列选项卡,并在其中执行了命令。我想将所有这些设置自动化为一个命令。

如果这些命令可以独立并并行运行,我只会将答案调整为 this question .事实上,我尝试过,使用以下 shell 脚本:


gnome-terminal --working-directory="/home/superelectric" --tab -t "gate" -e 'bash -c "export BASH_POST_RC=\"ssh gate_tunnel\"; exec bash"' --tab -t "mydesktop" -e 'bash -c "export BASH_POST_RC=\"ssh tunneled_mydesktop\"; exec bash"'

分散在多行中,以提高可读性:

gnome-terminal \
--working-directory="/home/superelectric" \
--tab \
-t "gate" \
-e \
'bash -c "export BASH_POST_RC=\"ssh gate_tunnel\"; exec bash"' \
--tab \
-t "mydesktop" \
-e \
'bash -c "export BASH_POST_RC=\"ssh tunneled_mydesktop\"; exec bash"'

第一部分打开一个选项卡,将其命名为“gate”,并在其中执行“ssh gate_tunnel”。这是一个 ssh 别名,它通过学校的面向外部的服务器“gate”打开一条通往学校“mydesktop”的隧道。

第二部分打开另一个选项卡,将其命名为“mydesktop”,并在其中执行“ssh tunneled_mydesktop”。这是另一个 ssh 别名,它通过隧道连接到 mydesktop。

~/.ssh/config: 

Host gate_tunnel
LocalForward 8023 <my_desktop_at_school>:22
HostName <my_school_server>

这就是理论。实际上,这两个命令并行执行,而我需要确保第一个选项卡的命令(打开隧道)在执行第二个选项卡的命令(通过隧道连接)之前完成。

是否有一些我可以在第二个选项卡中执行的命令,它“等待”直到 ssh 隧道打开?

最佳答案

好的,我想我明白了。正如我在评论中提到的那样,从外面到达学校桌面的第一件事就是通过 ssh 进入学校大门,然后从那里通过类似以下内容的 ssh 进入您的桌面:

$ ssh -t gate.school.edu ssh desktop_name

那么只有一个标签,所以你的问题不存在。

但是,您当前的设置有一些非常酷的东西:
在家里,就好像您直接连接到您的台式机一样,因此您可以直接通过 scp 进入它,而不必理会 gate。使用上面的解决方案,这不再是可能的,因为我们最终得到一个间接连接:如果你想 scp,你必须从 gate 进行,这很糟糕。

查看这篇关于使用 ssh 的 ProxyCommand 功能的文章:

然后你就可以两全其美了:)

关于shell - 以编程方式打开 gnome 终端选项卡并按顺序执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com