我在 EC2 AWS 上使用tmux
,但我想查看我创建的一个会话中发生的情况。
我使用Ctrl+b然后d离开会话。
答案1
我想查看我创建的一个会话中发生的情况。
据我所知,您可以tmux
使用以下方式查看会话列表
tmux list-sessions
查看当前正在运行的会话tmux
。
要真正看到这些会话中正在运行的内容,您必须附加到特定的会话,为此您有两个选择(根据经验)。
如果您当前没有运行
tmux
会话(或当前不在tmux
会话中),您可以通过运行进行连接tmux attach -t n
(其中 -t 代表目标会话,n 代表该会话编号)。如果你在另一个 tmux 会话中运行,则在尝试连接到另一个会话时会出错,因此查看正在运行的内容的最简单方法是使用该
tmux list-windows -a
命令移动无论您在哪个窗格/窗口中运行任务。
移动窗口
使用tmux move-window -s n1 -t n2
(-s == 源窗口,-t == 目标窗口源窗口将附加到的位置。n1== 您要移动的窗口的编号以及n2是您要移动到的窗口编号)。
格式
这n1&n2数字的排序/格式为sessionNumb:windowNumb
。因此,第一个窗口中的第一个会话将是 0:1,而第一个窗口中的第二个会话将是 1:1。
笔记:n2必须是具有尚未创建窗口的可用会话。如果将窗口移动到已创建的窗口,您将收到一条错误消息,提示“目标窗口不为空”,而移动到未创建的会话将出现错误消息“找不到会话 n”。
移动窗格
有时在一个窗口中您可能有许多窗格而您只需要移动一个窗格,如果您只需要将该窗格移动到当前窗口内(因为您不能将一个窗口移动到另一个窗口内),这将很有用。
您使用与移动窗口几乎类似的语法,但您确实这样做了tmux move-pane -s *n1* -t *n2*
。
在哪里n1现在的格式sessionNumb:windowNumb.paneNumb
是n2。
例子
之后tmux list-windows -a
你将得到类似这样的结果
0:1: Project- (4 panes) [177x48]
0:2: Mirror (3 panes) [177x48]
0:3: Chat! (1 panes) [177x48]
0:4: ssh* (1 panes) [177x48]
1:1: zsh (2 panes) [176x45]
1:2: zsh* (1 panes) [176x45]
1:3: zsh- (1 panes) [176x45]
现在,我必须运行将窗口“聊天”从第一个会话移动到第二个会话tmux move-window -s 0:3 -t 1:4
(记住不能将窗口移动到已经创建的窗口)。
移动窗格
如果你只需要移动一个窗格,那么你需要这样做tmux list-panes -a
,或者如果你已经知道它来自哪个窗口,你可以tmux list-panes -t 0:1
请参阅上面的格式说明。
结果显示会话 0 窗口 1 (-s 0:1) 有这些窗格。
1: [177x34] [history 3/10000, 4119 bytes] %7 (active)
2: [88x13] [history 541/10000, 231972 bytes] %8
3: [88x13] [history 2/10000, 1541 bytes] %9
这是不可接受的,但如果你需要查看更多信息,以便知道你真正需要哪个窗格,你可以这样做
tmux list-panes -F "#{pane_current_command}" -t 0:1
每个窗格将显示当前正在运行的命令。
就我而言
vim
zsh
python (sadly it's running `ranger`)
因此,在确定您想要哪个窗格(比如 vim 窗格)后,您需要移动它。
tmux move-pane -s 0:1.1 -t 1:1.2
移动到特定窗格在这种情况下
如果目标窗口中只有一个窗格,则可以tmux move-pane -s 0:1.1 -t 1:1.
没有目标窗格,它仍然可以工作。
答案2
根据上面的回答,你可以尝试:
tmux ls
获取会话编号。然后
tmux attach-session -t <session_number>
答案3
如果您有一个 tmux 会话,请使用:
tmux a
访问它
答案4
如果你想将其绑定到 shell 中的一个键(为了让它在你离开 tmux 时能够无缝地重新进入),你可以做类似的事情。这是针对zsh
。
我猜测只有function
和bindkey
形式与其他外壳之间会略有不同。
在我的~/.zshrc
:
function tmux_last_session(){
LAST_TMUX_SESSION=$(tmux list-sessions | awk -F ":" '{print$1}' | tail -n1);
tmux attach -t $LAST_TMUX_SESSION
}
bindkey -s '^s' 'tmux_last_session ^M'
来源它。source ~/.zshrc
Ctrl+s
现在打开最后一个分离的 tmux 会话。