Linux tmux 工具
基础术语:
sessions :会话,一个用户登录到主机,那么就建立了一个 session,如下图1,详细参考:https://my.oschina.net/u/158589/blog/360862
tmux session :在 session 中,我们可以创建多个 tmux session,效果相当于我们用 SecureCRT 打开多个 session,通常我们只打开一个就够了
注意 session 与 tmux session 的区别,我们只有先在 session 中打开一个 tmux session,才能在 tmux session 中创建多个 windows 和 panes
windows :在 session 中,我们可以通过 screen 命令创建多个屏幕,但在 tmux session 中,我们一般说可以创建多个窗口(windows)
Panes :在 tmux session 中,一个 windows 可以创建多个面板(Panes),或者说对一个 window 进行分屏,如下图2
tmux :一个分屏工具,它允许在一个 session 中创建多个 windows,在一个 windows 中创建多个 pages,即使 session 被关闭,windows 和 pages 也能在后台运行
tmux 命令:
[root@localhost ~]$ yum install -y tmux # 安装 tmux [root@localhost ~]$ tmux list-keys # 列出所有快捷键
tmux session 常用操作:
[root@localhost ~]$ tmux # 在当前 session 中创建并进入一个新的 tmux session [root@localhost ~]$ tmux new -s session_name # 在当前 session 中创建并进入一个新的命名的 tmux session [root@localhost ~]$ tmux switch -t session_name # 通过 session_name 切换到指定的 tmux session [root@localhost ~]$ tmux list-sessions / tmux ls # 列出当前 session 中的所有 tmux session [root@localhost ~]$ tmux detach # 离开当前开启的 tmux session [root@localhost ~]$ tmux kill-server # 关闭所有 tmux session
tmux windows 常用操作:
[root@localhost ~]$ tmux # 需要先进入 tmux session 才能进行如下操作 [root@localhost ~]$ tmux new-window # 创建一个新的 window [root@localhost ~]$ tmux list-windows # 查看所有的 window [root@localhost ~]$ tmux select-window -t :0-9 # 根据索引跳转到指定的 window [root@localhost ~]$ tmux rename-window xxx # 重命名当前 window
tmux panes 常用操作:
[root@localhost ~]$ tmux split-window # 将当前 window 水平划分成两个 pane [root@localhost ~]$ tmux split-window -h # 将当前 window 垂直划分成两个 pane [root@localhost ~]$ tmux select-pane -[UDLR] # 切换到指定方向的 pane,分别表示:Up Down Left Right [root@localhost ~]$ tmux swap-pane -[UDLR] # 交换指定方向的 pane,分别表示:Up Down Left Right
在上面的操作中,我们都是直接用命令,但更常用的是使用 tmux 的快捷键,在操作快捷键之前需要先按 Ctrl + B ,再按快捷键才会生效
tmux sessions 快捷键:
[root@localhost ~]$ tmux # 需要先进入 tmux session 才能进行如下操作 ? # 查看所有快捷键,按 q 返回 d # 离开当前的 tmux session,暂时返回 session shell 界面 d # 离开指定的 tmux session,暂时返回 session shell 界面 s # 选择并进入到指定的 tmux session Ctrl + D # 退出当前 tmux session Ctrl + Z # 挂起当前 tmux session
tmux windows 快捷键:
c # 创建新的窗口 & # 关闭当前窗口 [0-9] # 切换到指定窗口 p # 切换至上一窗口 n # 切换至下一窗口 l # 前后窗口间互相切换 w # 通过窗口列表切换窗口 , # 重命名当前窗口 . # 修改当前窗口编号,相当于重新排序
tmux panes 快捷键:
" # 将当前窗口上下分屏 % # 将当前窗口左右分屏 x # 关闭当前面板 ! # 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板 ctrl+方向键 # 以1个单元格为单位移动边缘以调整当前面板大小 alt+方向键 # 以5个单元格为单位移动边缘以调整当前面板大小 q # 显示面板编号 o # 切换到当前面板中的下一个面板 方向键 # 移动到当前面板中的指定方向的面板 { # 向前调换当前面板位置 } # 向后调换当前面板位置 z # 最大化当前所在面板,再按一次则还原
tmux 个性化配置:
[root@localhost ~]$ cat ~/.tmux.conf # 自定义 tmux 配置文件 setw -g mode-mouse on # 开启window/pane里面的鼠标支持 setw -g mouse-resize-pane on # 开启支持用鼠标拖动调节pane的大小 setw -g mouse-select-pane on # 开启支持用鼠标点击pane来激活该pane