快速上手Tmux使用
一、Tmux 是什么?
官方解释:
Tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件。
通俗理解:
当在终端里执行一个程序或命令时,终端突然关闭,此时执行的程序或命令不管有没有执行完成都会会终止,而Tmux就是解决此问题,Tmux 是进程与终端的"解绑"工具。
例如:SSH 登录远程计算机,打开一个远程终端执行命令。如网络突然断线,再次登录的时候,是找不回上一次执行的命令的,因为上一次 SSH 会话已经终止了。
二、Tmux 安装
apt-get install tmux
通过man tmux
命令查看tmux帮助信息
三、Tmux 配置文件
可以从两个位置设置Tmux配置文件。刚个位置只需要配置一个即可!
- vim ~/.tmux.conf
- vim /etc/tmux.conf
vim /etc/tmux.conf
# 配置使用ctrl+q作为命令引导键(默认为ctrl+b)
set-option -g prefix C-q
bind-key C-q send-prefix
unbind-key C-b
# 设置窗口分割的边框颜色
set -g pane-border-fg colour189
set -g pane-border-bg black
# 设置当前窗口分割的边框颜色
set -g pane-active-border-fg white
set -g pane-active-border-bg colour208
# 窗口号和窗口分割号都以1开始(默认从0开始)
#set -g base-index 1
#setw -g pane-base-index 1
# 支持鼠标选择窗口,调节窗口大小
set -g mouse on
set -s escape-time 1
# 允许鼠标选择窗口(在多窗口下使用更好)
#set -g mouse-select-pane on
# 允许鼠标调整窗口的大小(多窗口下可以使用鼠标调整窗口大小)
#set -g mouse-resize-pane on
# 允许鼠标选择tmux打开的session列表可以替代ctrl+b 0 / ctrl+b 1
#set -g mouse-select-window on
# 选择窗口分割快捷键
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# 选择窗口快捷键
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
# 调节窗口大小快捷键
bind -r H resize-pane -L 3
bind -r J resize-pane -D 3
bind -r K resize-pane -U 3
bind -r L resize-pane -R 3
set-window-option -g mode-keys vi
set-window-option -g renumber-windows on
#set -g status off
bind-key b set-option status
四、常用命令
- 启动Tmux
$ tmux
- 退出Tmux
在 Tmux 窗口中执行exit
- 帮助信息
Ctrl+q ?
按ESC或q退出帮助 - 创建会话
$ tmux new -s <session-name>
其中-s
是指定会话名称
如果不指定名称,则会使用编号进行区分会话,第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。 - 分离会话
在 Tmux 窗口中,按下Ctrl+q d
或者输入tmux detach
命令,就会将当前会话与窗口分离 - 进入会话
a. 使用会话编号
$ tmux attach -t 0
b. 使用会话名称
$ tmux attach -t <session-name>
- 查看当前所有的 Tmux 会话
$ tmux ls
或者$ tmux list-session
- 切换会话
a. 使用会话编号
$ tmux switch -t 0
b. 使用会话名称
$ tmux switch -t <session-name>
- 杀死会话
a. 使用会话编号
$ tmux kill-session -t 0
b. 使用会话名称
$ tmux kill-session -t <session-name>
- 进入tmux翻屏模式
先按 ctrl +q(默认是ctrl +b),松开,然后再按 [
进入翻屏模式后,PgUp PgDn 实现上下翻页
按 q 退出翻屏模式
五、常用快捷键
Tmux提供各种快捷键功能,但需要一个<prefix>
组合键作为前缀。也就是说,需要先按下<prefix>
组合键,才能激活快捷键功能,然后再按对应各种功能的快捷键才会生效。这样能把快捷键的输入跟用户正常输入区分开来。
我的配置将<prefix>
组合键设为: Ctrl+q
5.1 窗口快捷键
prefix | 快捷键 | 功能描述 |
---|---|---|
Ctrl+q | c | 创建新窗口 |
Ctrl+q | w | 列出所有窗口 |
Ctrl+q | n | 切换到下一个窗口 |
Ctrl+q | p | 切换到上一个窗口 |
Ctrl+q | 数字 | 切换到指定编号的窗口 |
Ctrl+q | , | 窗口重命名 |
Ctrl+q | & | 关闭当前窗口 |
5.2 窗格快捷键
prefix | 快捷键 | 功能描述 |
---|---|---|
Ctrl+q | ” | 将当前面板平分为上下两块 |
Ctrl+q | % | 将当前面板平分为左右两块 |
Ctrl+q | x | 关闭当前面板 |
Ctrl+q | 方向键 | 光标切换到其他窗格 |
Ctrl+q | ; | 光标切换到上一个窗格 |
Ctrl+q | o | 光标切换到下一个窗格 |
Ctrl+q | z | 当前窗格全屏显示,再次使用即恢复 |
Ctrl+q | q | 显示窗格编号 |
5.3 其他快捷键
prefix | 快捷键 | 功能描述 |
---|---|---|
Ctrl+q | s | 列出所有会话 |
Ctrl+q | $ | 重命名当前会话 |
Ctrl+q | ? | 列出所有快捷键;按q返回 |
Ctrl+q | d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 |
5.4 复制粘贴
C-b [
进入复制模式- 参考上表移动鼠标到要复制的区域,移动鼠标时可用vim的搜索功能"/“,”?"
- 安空格键开始选择复制区域
- 选择完成后安enter键退出
C-b ]
粘贴