终端复用工具---「tmux」的安装及使用

简介

tmux 是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于远程 ssh 访问特别有用,网络不好的情况下仍然能保证工作现场不丢失! tmux 完全使用键盘控制窗口,实现窗口的切换。

安装

在「Mac OS」中安装

安装「Homebrew」

如果没有 homebrew ,先安装 homebrew ,如果已经安装,则跳过此步。

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装「Tmux」

1
brew install tmux

查看是否安装成功

通过如下命令查看 tmux 的版本号

1
tmux -V

当前安装版本为 2.6,则终端显示如下:

1
tmux 2.6

在「Ubuntu」中安装

在终端输入如下命令:

1
sudo apt-get install tmux

「Tmux」的配置文件

tmux 的配置文件为 ~/.tmux.conf ,每当开启一个新的会话时,tmux 都会先读取这个文件。本人使用的配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 状态栏
# 颜色
set -g status-bg black
set -g status-fg white
# 对齐方式
set-option -g status-justify centre
# 左下角
set-option -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
set-option -g status-left-length 20
# 窗口列表
setw -g automatic-rename on
set-window-option -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
set-window-option -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'
# 右下角
set -g status-right '#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]'

「Tmux」的快捷键前缀(Prefix)

为了使自身的快捷键和其他软件的快捷键互不干扰, tmux 提供了一个快捷键前缀(Prefix),默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)
当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键,以下把前缀按键称为 Prefix

下面介绍一下 tmux 的三个核心概念,会话(session)、窗口(window)和窗格(pane)及其基本用法。

会话「session」

创建session

创建一个新的会话,只需要在终端运行如下的命令:

1
tmux new -s <session_name> -n <window_name>

参数说明:

-s 参数表示会话名称,如果不加 -s 参数,那么 tmux 默认会新建一个以数字(下标从 0 开始)命名的会话,并默认打开一个窗口。
-n 参数表示默认打开的窗口的名称

重命名session

1
Prefix + $ : 重命名当前的会话

断开session

想要暂时从 tmux 暂时分离,回到终端环境时,可以通过如下快捷键。

1
Prefix + d : 断开当前的会话

注意,即使是 detach 的状态,tmux 中在运行的程序还会继续运行

回到session

想要回到 session 时,只需执行:

1
tmux attach -t <session_name>

列出session

在终端下,运行如下命令列出当前有多少个会话:

1
tmux ls

在会话中列出当前有多少个会话

1
Prefix + s : 列出所有会话

关闭session

在终端下,要真正关闭一个会话,可以运行如下命令:

1
tmux kill-session -t <session_name>

参数说明:

-t 参数表示会话名称。

窗口「window」

如果说会话是个不可见的东西,那么窗口就是我们输入、执行命令的地方。一个会话 可以包含多个会话。

创建window

在创建会话的时候默认会创建一个以 数字下标+bash 命名的窗口,并且名称随着 bash 中执行的不同命令而变化。

1
Prefix + c : 创建一个新窗口

重命名window

1
Prefix + , : 重命名当前窗口

切换window

同一个会话下的多个window之间切换。

1
2
3
4
Prefix + p: 切换到上一个窗口。
Prefix + n: 切换到下一个窗口 。
Prefix + 0: 切换到0号window,依次类推,1、2、3...
Prefix + w: 列出全部窗口,通过上、下键选择要进入的窗口,按回车键即可进入所选择的窗口中。

关闭window

1
Prefix + & : 关闭当前窗口。

窗格「pane」

一个窗口可以切割成多个窗格,也就是所谓的分屏。

创建pane

1
2
Prefix + % : 垂直分屏,用一条垂线把当前窗口分成左右两屏。
Prefix + " : 水平分屏,用一条水平线把当前窗口分成上下两屏。

切换pane

1
2
3
4
Prefix + o : 依次切换当前窗口下的各个窗格。
Prefix + Up|Down|Left|Right : 根据按箭方向选择切换到某个窗格。
Prefix + Space(空格键): 对当前窗口下的所有窗格重新排列布局,每按一次,换一种样式。
Prefix + z : 最大化当前窗格。再按一次后恢复。

关闭pane

1
Prefix + x : 关闭当前使用中的窗格。

其他pane快捷键

1
2
3
4
5
Prefix + q : 显示窗格的编号
Prefix + } : 与下一个窗格交换位置
Prefix + { : 与上一个窗格交换位置
Prefix + ! : 在新窗口中显示当前窗格
Prefix + t : 在当前窗格显示时间

滚屏

1
Prefix + [ : 滚屏

滚屏要进入 copy-mode,然后就可以用上下键来滚动屏幕,配置了 vi 快捷键模式,就可以像操作 vi 一样来滚动屏幕,非常的方便。 退出直接回车键或 q键即可退出

-------------本文结束感谢您的阅读-------------
坚持整理学习笔记,您的支持将鼓励我继续整理下去!