Tmux工具使用案例
连接linux一般使用ssh,当ssh会话中需要长时间执行命令时,为了避免命令不受ssh会话影响,除了可以将命令通过nohup <cmd> &等方法放到后台执行外,也可以利用Tmux这个工具解绑SSH会话与执行命令,当关闭SSH会话后,程序可以继续运行。
1. Tmux简介
Tmux 是一个强大的终端复用工具,它允许你在一个终端窗口中同时运行多个会话和进程。
默认情况下一个终端窗口就是一个会话,会话中运行的命令随着会话中断二终止。Tmux 就是会话与窗口的解绑工具,有如下作用:
- 允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
- 可以让新窗口"接入"已经存在的会话。
- 允许每个会话有多个连接窗口,因此可以多人实时共享会话。
- 支持窗口任意的垂直和水平拆分。
Tmux 基本概念:
- 会话(Session):一个Tmux会话是一个独立的环境,可以包含多个窗口和面板。
- 窗口(Window):每个会话中可以有多个窗口,每个窗口相当于一个独立的终端。
- 面板或窗格(Pane):窗口中的多个部分,每个部分都可以运行独立的命令和程序。
参考:https://www.ruanyifeng.com/blog/2019/10/tmux.html
2. 基本用法
2.1 安装
# Ubuntu 或 Debian
$ sudo apt-get install tmux
# CentOS 或 Fedora
$ sudo yum install tmux
# Mac
$ brew install tmux
2.2 启动与退出
安装后使用命令tmux
进入Tmux窗口,使用Ctrl+d
或exit
命令退出Tmux窗口。
2.3 前缀键
Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。
举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。
然后,按下 ESC 键或q键,就可以退出帮助。
3. 会话管理
3.1 新建会话
第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话,不太直观,更好的方法是为会话起名。
# 创建指定名称的会话
$ tmux new -s <session-name>
3.2 分离会话
在 Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。
# 退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。
$ tmux det