这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
tmux
why tmux
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。 会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。 一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
tmux的作用
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。 (2) 它可以让新窗口"接入"已经存在的会话。 (3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。 (4)它还支持窗口任意的垂直和水平拆分。
tmux指令 $ tmux 可以新建一个session,其中包含一个window,该window中包含一个pane,pane里打开了一个shell对话框。
tmux创建的session的名字默认都是按数字排序,所以可以在进入tmux时对session自定义名字。
$ tmux new -s [session_name] Ctrl + b d 在tmux里,如果需要重新退回terminal,可输入上面的命令。其中d表示detaching,运行后并不会真正关闭session,而是将session挂起,在tmux session里面的程序还是会在后台继续运行。
如果想要重新连接刚才退出的tmux session,可以输入下面命令:
tmux a 如果想连接到特定的session:
$ tmux attach -t [session_name]
#也可以将attach简写成a $ tmux a -t [session-name] 注意:如果这时输入tmux,会默认重新开启一个新的session。
在session里时,Ctrl + b + $ 对当前session进行重命名。
在terminal里,可直接对某个特定session重命名:
tmux rename-session -t 0 [session_new_name] Ctrl + b + s 可视化选择任意session,同时,按下左右键可以对当前session的windows进行展开和收起,以及对某个windows的panes进行展开并选择某一pane。
如果不知道当前存在哪些session,可以输入下方命令查看:
$ tmux ls
如果要关闭某个会话:
使用会话编号或具体名字
tmux kill-session -t 在tmux ls中可以看到,第一列显示的是session名字,默认创建时名字是从0开始的整数,然后表示当前session里有几个windows。创建一个session的时候,默认只有一个窗口。
在某个session里时,
Ctrl + b c可以创建新的window。
Ctrl+b 0 可以切换到0号window。
Ctrl + b p切换到上一个window。
Ctrl + b n切换到下一个window。
Ctrl+b , 对当前window进行重命名。
Ctrl+b w 可以从window列表里选择window,该显示结果与Ctrl + b + s 一样。
在新建的一个window里,默认只有一个pane,但是可以对其进行切分:
Ctrl+b % 可以将当前pane分成左右两个panes。
Ctrl+b " 可以将当前pane分成上下两个panes。
Ctrl+b o可以移动到下一个pane里。
Ctrl+b ;可以切换到上一个pane里。
Ctrl + b 也可以直接通过上下左右箭头来切换panes。
Ctrl+b x关闭当前所在pane,这种关闭,会在关闭前进行确认。
Ctrl + b z 可以将当前的pane进行放大/缩小。
Ctrl + d 或者 直接输入exit:直接关闭当前pane;如果当前window的所有pane均已关闭,则自动关闭当前window;直至所有window均已关闭,则自动关闭当前session。