TMUX 简易使用方法
主要参考:
阮一峰 Tmux 使用教程:https://www.ruanyifeng.com/blog/2019/10/tmux.html
Tmux使用手册:http://louiszhai.github.io/2017/09/30/tmux/#查看所有的会话
**基本概念:**输入tmux命令就相当于开启了一个服务器,此时默认将新建一个会话,然后会话中默认新建一个窗口,窗口中默认新建一个面板。tmux会话、窗口、面板之间的联系如下:
0. tmux 安装
ROOT 用户安装:
1 2 3 4 5 6 7 8
| $ sudo apt-get install tmux
$ sudo yum install tmux
$ brew install tmux
|
非ROOT 用户安装:
非root用户安装tmux参考以下链接:
知乎:非root用户安装tmux
如果使用wget
产生类似无法解析github.com
的错误信息可以利用链接进入GitHub仓库下载后传入安装位置。
1. 基本用法
最简单也是最常用的tmux使用流程是:新建会话、在新建的会话中运行程序、分离会话、下次使用接入会话
创建会话
- 使用tmux快速创建会话
- 指定创建会话的名称
上面表示创建一个名为test
的会话。会话创建完后会在当前窗口的下方出现一个小绿条,类似这种:
小绿条左边显示会话名称test-1
、窗格(pane)序号0
以及窗口名称bash
(窗格和窗口的简单操作后面会提到)。小绿条右边则显示会话的创建时间及其他一些信息。
运行程序
在刚才创建好的会话中键入自己想运行的程序指令,然后该指令便会一直在后台运行并不会随着SSH连接的断开而停止运行。例如在刚才的会话中运行train.py
。
就像正常的SSH连接一样程序开始运行。
会话分离
经过上面的操作程序已经正常运行起来了,接下来我们可以用detach
将这个会话与SSH窗口分离开,让它自己在后台运行。
具体操作如下:
然后小绿条消失,会话窗口恢复到SSH连接窗口。
可能在运行程序之后,你的程序会一直打印输出导致你无法输入上述指令这时可以利用先按一次Ctrl+b
松开后再按d
快捷键分离会话。
会话接入
一个小时之后我们想看看自己的程序跑得怎么样了,这时使用attach
便能接入会话查看训练过程。具体指令如下:
退出会话
会话分离操作只是将任务放置后台托管并没有断开连接,如果想在程序运行完之后断开连接退出会话则需要使用快捷键Ctrl+d
或者键入exit
。
2. 其他操作
会话操作
1
| $ tmux new -s <session-name>
|
1 2 3 4 5
|
$ tmux ls
$ tmux list-session
|
1
| $ tmux attach -t <session-name>
|
1 2 3
|
$ tmux kill-session -t <session-name>
|
1
| $ tmux switch -t <session-name>
|
1
| $ tmux rename-session -t <old-name> <new-name>
|
窗格操作
1 2 3 4 5 6 7 8 9 10
|
$ tmux split-window
$ tmux split-window -h
|
1 2 3 4 5 6 7 8 9 10 11
| $ tmux select-pane -U
$ tmux select-pane -D
$ tmux select-pane -L
$ tmux select-pane -R
|
除了使用上面的显示指令外也可以通过ctrl+b
和键盘上下左右方向键来移动光标
。
1 2 3 4 5
| $ tmux swap-pane -U
$ tmux swap-pane -D
|
貌似无法支持窗格左右移动?
1 2 3 4 5
|
$ tmux kill-pane -t 0
|
窗口操作
1 2 3 4
| $ tmux new-window
$ tmux new-window -n <window-name>
|
1 2 3 4
| $ tmux rename-window <new-name>
$ tmux rename-window -t <old-name> <new-name>
|
1 2 3 4 5
| $ tmux select-window -t <window-number>
$ tmux select-window -t <window-name>
|
1 2
| $ tmux kill-window -t <name>
|
END