完整的 tmux 命令可以参考
tmux 常用命令
Tmux 快捷键 & 速查表
Linux 下的分屏利器 - tmux
有时候相关操作,开多个终端切来切去的挺麻烦,这时可以在一个终端里分屏。tmux 工具就是分屏用的。
安装
Ubuntu 用 apt 命令安装
apt install tmux
RHEL 或 CentOS 用 yum 命令安装:
yum install tmux
原理
tmux 是 C-S 架构,server 可以在本地或其他服务器上。client 连接到 server,建立 session 会话。每个终端可以建立多个 session,每个 session 可以包含多个 window(从0开始编号,类似 SecureCRT 中每个连接对应的一个 tab),一个 window 可以被分割为多个 pane(左右或上下分屏)。
关闭 client 窗口后,session 相关进程会持续在后台 server 上执行。除非关闭 session。
启动 tmux,建立 session
在终端输入
tmux
即可启动 tmux,创建一个匿名的 session。启动后,需要通过命令前缀 Ctrl + b
向 tmux 发送命令。
新建名字为 session_name 的命名 session:
tmux new -s session_name
查看所有 session
tmux ls
tmux list-sessions
临时退出 session
按下 Ctrl+b 命令前缀后,输入 d
,会回到终端,此时所有 tmux 客户端相关进程仍在后台运行:
d
d 表示 detach。
进入已存在的session
tmux a -t $session_name
a 表示 attach。
结束当前所在 session
按下 Ctrl+b 命令前缀后,输入下面命令,注意用冒号开头:
:kill-session
结束所有 session
如果在 tmux 中,需要按下 Ctrl+b 命令前缀后,输入下面命令,注意用冒号开头:
:kill-server
如果在终端中,输入以下命令即可:
tmux kill-server
结束指定 session
回到终端中,输入下面命令:
tmux kill-session -t session_name
常见用法
为了防止命令冲突,tmux 规定了一个命令前缀 Ctrl + b
,要想向 tmux 发送命令,必须首先按一次 Ctrl 和 B 两个键。
创建及切换窗口
按命令前缀 Ctrl + b
后,再按 c
键即可创建新窗口(类似新开的 tab 页)。
c
按命令前缀 Ctrl + b
后,再按 0-9 数字键即可跳转到对应的窗口。
分屏、切换光标、删除分屏
水平分屏 - 双引号
启动 tmux 后,按命令前缀 Ctrl + b
后,再按一次双引号 "
即可将当前屏幕分为上下两块。
垂直分屏 - 百分号
启动 tmux 后,按命令前缀 Ctrl + b
后,再按一次百分号 %
即可将当前屏幕分为左右两块。
切换光标
分屏后,通过方向键可以在不同分屏之间切换光标。记得每次切换前仍需要命令前缀 Ctrl + b
。
组合分屏
通过 tmux 分屏后,可以对某一个分屏再次进行分屏,从而得到上二下一、左一右二等各种样式的分屏。
调整 pane 大小
按下命令前缀后,按住ctrl 然后用方向键改变分屏大小。注意不要松开 Ctrl。
删除 pane
启动 tmux 后,按命令前缀 Ctrl + b
后,再按一次 x
即可将当前 pane 删除。
后台运行 tmux
按下命令前缀 Ctrl + b
后,再按一次 d
键,返回主 shell。此时 tmux 中的命令保持在运行状态。可以通过 tmux ls
命令查看后台运行的 tmux 客户端。
查看帮助
按下命令前缀 Ctrl + b
后,再按一次 ?
键,可以查看 tmux 的帮助文档。
- C-b t //显示时钟
- C-b & // 确认后退出 tmux
拷贝
按下命令前缀 Ctrl + b
后,再按一次 [
键进入拷贝模式。空格开始拷贝,回车结束拷贝。[
键退出拷贝模式。
利用 tmux 后台运行任务
ssh 登录远程的 Linux 运行一些耗时较长的任务, 如果网络不稳定导致掉线,会使得任务中途失败。要让命令提交后不受本地关闭终端窗口/网络断开连接的影响,可以将任务放到后台运行,也可以利用 tmux 实现。