gpt4 book ai didi

tmux - 如何在 tmux 上复制 ssh session

转载 作者:行者123 更新时间:2023-12-04 20:06:24 29 4
gpt4 key购买 nike

我想再次复制我的 ssh session 。

例如,我的窗口名称是“user@host”。我希望按前缀键 + S 来执行“ssh user@host on a new window”

$ tmux bind S confirm-before "neww ssh #W"

尝试后,它只是发出一个没有选项'user@host'的ssh命令
CentOS 7 上的 tmux 版本是 1.8。

最佳答案

你可以试试这样的东西,虽然它有点难看。将其放入您的 tmux.conf :

bind S neww "$(ps -ao pid,tty,args | sort | awk '$1 ~ /#{pane_pid}/{VAR=$2} $2 ~ VAR && $3 ~ /ssh/{$1=\"\"; $2=\"\"; print}')"

解释

创建一个名为 S 的绑定(bind)并让它打开一个新窗口,使用参数作为初始命令
bind S neww "..."

执行内部命令的输出
$(...)

列出所有进程的 pid、tty 和命令(带参数)
ps -ao pid,tty,args | ...

按 pid 排序
... | sort | ...

将输出输入 awk
... | awk '...'

查找当前 Pane /窗口的 tty,并将其放入 VAR ( #{} 被 tmux 取代)
$1 ~ /#{pane_pid}/{VAR=$2}

查找具有我们之前找到的 tty 并且具有以 ssh 开头的命令的进程.请注意,我们假设 ssh session 的 pid 大于调用它的 shell。这在大多数情况下应该是正确的。
$2 ~ VAR && $3 ~ /ssh/{...}

删除 pid、tty 并打印剩余部分。这将是带有所有参数和选项的 ssh 命令。这是将在新窗口中执行的命令。
$1=\"\"; $2=\"\"; print

关于tmux - 如何在 tmux 上复制 ssh session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657678/

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