#Tmux introduce 原文: http://www.ruanyifeng.com/blog/2019/10/tmux.html # Tmux简介 Tmux: 终端复用器( terminal multiplexer) ## 会话与进程 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"), 在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。 会话的一个重要特点是,窗口与其中启动的进程是连在一起的。 打开窗口,会话开始; 关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。 一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。 这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。 因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。 为了解决这个问题,会话与窗口可以"解绑": 窗口关闭时,会话并不终止,而是继续运行, 等到以后需要的时候,再让会话"绑定"其他窗口。 [tmux]: http://data.linuxtoy.cn/image/tmux.png "Tmux界面" ## Tmux的作用 支持将会话与窗口解绑 1) 允许在单个窗口中同时访问多个会话, 这对于同时运行多个命令行程序很有用。 2) 它可以让新窗口"接入"已经存在的会话。 3) 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。 4) 它还支持窗口任意的垂直和水平拆分。 类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。 # 基本用法 ## 启动与退出 输入tmux命令,进入tmux窗口。 上面命令会启动 Tmux 窗口,底部有一个状态栏。 状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。 ![Tmux页面][tmux] 按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。 ## 前缀键 Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。 默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。 举例来说,帮助命令的快捷键是Ctrl+b ?。 它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。 然后,按下 ESC 键或q键,就可以退出帮助。 # 会话管理 ## 新建会话 第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1, 以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。 使用编号区分会话,不太直观,更好的方法是为会话起名。 > `$ tmux new -s ` 上面命令新建一个指定名称的会话 ## 分离会话 在 Tmux 窗口中,按下`Ctrl+b d`或者输入tmux detach命令,就会将当前会话与窗口分离。 > `$ tmux detach` 上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。 tmux ls命令可以查看当前所有的 Tmux 会话。 > `$ tmux ls` > `# or` > `$ tmux list-session` ## 接入会话 tmux attach命令用于重新接入某个已存在的会话。 使用会话编号 > `$ tmux attach -t 0` 使用会话名称 > `$ tmux attach -t ` ## 结束会话 tmux kill-session命令用于结束某个会话。 > `$ tmux kill-session -t 0` > `$ tmux kill-session -t ` ## 常用快捷键 | 快捷键 | 命令 | 描述 | | --- | --- | --- | | `Ctrl+b d` | `tmux detach` | 分离会话 | | `Ctrl+b s` | `tmux switch -t ` | 列出所有会话,可选择切换到选中的会话 | | `Ctrl+b $` | `tmux rename-session -t 0 ` | 重命名当前会话 | | | | -t指定要重命名的会话编号 | | `Ctrl+b "` | `tmux split-window` | 将当前窗格划分为上下两个pane | | `Ctrl+b %` | `tmux split-window -h` | 将当前窗格划分为左右两个pane | | `Ctrl+b ` | NA | 在不同窗格中移动光标 | | `Ctrl+b Ctrl+` | NA | 调整窗格大小 | | `Ctrl+b !` | NA | 将当前窗格拆分为一个独立的窗口 | | `Ctrl+b z` | NA | 将当前窗格全屏显示, | | | | 再使用一次恢复原来的大小 | | `Ctrl+b q` | NA | 显示窗格编号 | | `Ctrl+b x` | `exit` | 关闭当前窗格 | ## 常用会话操作流程 新建会话 `tmux new -s my_session` 在 Tmux 窗口运行所需的程序。 按下快捷键 `Ctrl+b d` 将会话分离。 下次使用时,重新连接到会话 `tmux attach-session -t my_session` # 窗口管理 | 快捷键 | 命令 | 描述 | | --- | --- | --- | | `Ctrl+b c` | `tmux new-window` | 创建一个新窗口, | | | | 状态栏中会显示多个窗口的信息 | | `Ctrl+b p` | NA | 切换到上一个窗口 | | `Ctrl+b n` | NA | 切换到下一个窗口 | | `Ctrl+b ` | NA | 切换到指定编号的窗口, | | | | 其中num是状态栏上的窗口编号 | | `Ctrl+b w` | NA | 从列表中选择窗口 | | `Ctrl+b ,` | `tmux rename-window ` | 窗口重命名 |