Tmux 是一个终端复用器(terminal multiplexer) 类似的终端复用器还有 GNU Screen。
打开一个终端窗口(terminal window,以下简称 “窗口”),在里面输入命令。 用户与计算机的这种临时的交互,称为一次 “会话”(session) 。
会话的一个特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会跟着终止,不管进程有没有运行完。
比如,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,找不回上一次执行的命令。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以 “解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话 “绑定” 其他窗口。
Tmux 就是一个 “解绑” 工具
它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
它可以让新窗口 “接入” 已经存在的会话。
它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
它还支持窗口任意的垂直和水平拆分。(Tmux 一般需要自己安装)
sudo apt install tmux
sudo yum install tmuxbrew install tmux输入 tmux 命令
tmux启动 了一个Tmux 窗口,底部是一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。


按下 Ctrl+d 或者输入 exit 命令,退出 Tmux 窗口
exit

Tmux 窗口有快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是 Ctrl+b 如:
帮助命令的快捷键是 Ctrl+b ?
在 Tmux 窗口中,先按下 Ctrl+b ,再按下 ? ,就会显示帮助信息。第一个启动的 Tmux 窗口,编号是 0,第二个窗口的编号是 1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话,不太直观,更好的方法是为会话起名。
tmux new -s <session-name> //新建一个指定名称的会话,session-name是会话名字,可不要在 Tmux 窗口中,按下 快捷键(Ctrl+b) + d 或者输入 tmux detach 命令,就会将当前会话与窗口分离。
tmux detach //退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行
tmux ls //查看当前所有的 Tmux 会话
tmux list-session //查看某个Tmux 会话tmux attach 命令用于重新接入某个已存在的会话。


tmux attach -t 0 //使用会话编号
tmux attach -t <session-name> 使用会话名称tmux kill-session //命令用于杀死某个会话
tmux kill-session -t 0 //使用会话编号
tmux kill-session -t <session-name> //使用会话名称tmux switch
tmux switch -t 0 // 使用会话编号
tmux switch -t <session-name> // 使用会话名称tmux rename-session
tmux rename-session -t 0 <new-name> //将 0 号会话重命名。tmux split-window
tmux split-window //划分上下两个窗格
tmux split-window -h //划分左右两个窗格
移动光标
tmux select-pane
tmux select-pane -U //光标切换到上方窗格
tmux select-pane -D //光标切换到下方窗格
tmux select-pane -L //光标切换到左边窗格
tmux select-pane -R //光标切换到右边窗格tmux new-window
tmux new-window -n <window-name> // 新建一个指定名称的窗口
tmux select-window //命令用来切换窗口
tmux select-window -t <window-number> //切换到指定编号的窗口
tmux select-window -t <window-name> //切换到指定名称的窗口
tmux rename-window <new-name> //为当前窗口起名(或重命名)Ctrl+b c :创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p :切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n :切换到下一个窗口。
Ctrl+b <number> :切换到指定编号的窗口,其中的 是状态栏上的窗口编号。
Ctrl+b w :从列表中选择窗口。
Ctrl+b :窗口重命名
tmux list-keys :列出所有快捷键,及其对应的 Tmux 命令
tmux list-commands :列出所有 Tmux 命令及其参数
tmux info :列出当前所有 Tmux 会话的信息
tmux source-file ~/.tmux.conf :重新加载当前的 Tmux 配置