title: tmux-初探
Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。
废话不多说来个效果图
Tmux的使用场景
1)可以某个程序在执行时一直是输出状态,需要结合nohup、&来放在后台执行,并且ctrl+c结束。这时可以打开一个Tmux窗口,在该窗口里执行这个程序,用来保证该程序一直在执行中,只要Tmux这个窗口不关闭
2)公司需要备份数据库时,数据量巨大,备份两三天弄不完,这时不小心关闭了终端窗口或误操作就前功尽弃了,使用Tmux会话运行命令或任务,就不用担心这些问题。
3)下班后,你需要断开ssh或关闭电脑,将运行的命令或任务放置后台运行。
4)关闭终端,再次打开时原终端里面的任务进程依然不会中断
Tmux功能:
- 提供了强劲的、易于使用的命令行界面。
- 可横向和纵向分割窗口。
- 窗格可以自由移动和调整大小,或直接利用四个预设布局之一。
- 支持 UTF-8 编码及 256 色终端。
- 可在多个缓冲区进行复制和粘贴。
- 可通过交互式菜单来选择窗口、会话及客户端。
- 支持跨窗口搜索。
- 支持自动及手动锁定窗口。
Tmux安装
yum -y install tmux
Tmux个性化配置
此类配置可以在命令行模式中输入show-options -g查询
tmux加上下列参数,实现个性化设置
set-option -g base-index 1 # 窗口的初始序号;默认为0,这里设置为1
set-option -g display-time 5000 # 提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000 # 控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒
set-option -g status-keys vi # 操作状态栏时的默认键盘布局;可以设置为vi或emacs
set-option -g status-utf8 on # 开启状态栏的UTF-8支持
---
set-option -g status-bg blue
set-option -g status-fg '#bbbbbb'
set-option -g status-left-fg green
set-option -g status-left-bg blue
set-option -g status-right-fg green
set-option -g status-right-bg blue
set-option -g status-left-length 10 # 状态栏左方的内容长度;
set-option -g status-right-length 15 # 状态栏右方的内容长度;建议把更多的空间留给状态栏左方(用于列出当前窗口)
set-option -g status-left '[#(whoami)]' # 状态栏左方的内容
set-option -g status-right '[#(date +" %m-%d %H:%M ")]' # 状态栏右方的内容;这里的设置将得到类似23:59的显示
set-option -g status-justify "centre" # 窗口列表居中显示
set-option -g default-terminal "screen-256color" # 支持256色显示
分割窗口边界的颜色
set-option -g pane-active-border-fg '#55ff55'
set-option -g pane-border-fg '#555555'
---
此类设置可以在命令行模式中输入show-window-options -g查询
set-window-option -g mode-keys vi # 复制模式中的默认键盘布局;可以设置为vi或emacs
set-window-option -g utf8 on # 开启窗口的UTF-8支持
set-window-option -g mode-mouse on # 窗口切换后让人可以用鼠标上下滑动显示历史输出
---
窗口切分快捷键(没设置成功)
bind \ split-window -h # 使用 \ 将窗口竖切
bind - split-window -v # 使用 - 将窗口横切
bind K confirm-before -p "kill-window #W? (y/n)" kill-window # 使用大写 K 来关闭窗口
bind '"' choose-window # 双引号选择窗口
---
Pane之间切换的快捷键
bind h select-pane -L # 定位到左边窗口的快捷键
bind j select-pane -D # 定位到上边窗口的快捷键
bind k select-pane -U # 定位到下方窗口的快捷键
bind l select-pane -R # 定位到右边窗口的快捷键
---
设置window属性
setw -g window-status-current-bg red
setw -g window-status-current-fg white
setw -g window-status-current-attr bright
setw -g window-status-attr bright
set-option -g window-status-format '#I #W'
set-option -g window-status-current-format ' #I #W '
setw -g window-status-current-bg blue
setw -g window-status-current-fg green
不使用prefix键,使用Ctrl和左右方向键方便切换窗口
bind-key -n "C-Left" select-window -t :-
bind-key -n "C-Right" select-window -t :+
tmux session 使用介绍
运行tmux并开启一个新的会话
tmux
显示所有会话
tmux ls
新建会话并指定会话名称(建议制定会话名称,以便了解该会话用途)
tmux new -s <session-name>
新建会话(不指定会话名称)
tmux new
接入上一个会话
tmux a
接入指定名称的会话
tmux a -t <session-name>
断开当前会话(还可以使用快捷键