tmux使用教程

tmux使用教程。感觉跟screen 命令很像的一个工具。懒得在后台挂起一个程序,可以使用该命令,挂起。或者,安装软件时,或者其他执行长时间的命令,担心网络原因,断开,导致程序退出,也可以使用该命令。

相关资源

tmux入门

安装sudo apt install tmux

入门三板斧

# 新建一个名叫psql的会话
tmux new -s psql
# 进入上次的会话
tmux a
# 进入指定名称的会话,如果没有名称,可以使用数字序号
tmux a -t psql   
# 查看有多少会话
tmux ls
# 关掉指定的会话
tmux kill-session -t 34
# 窗口
ctrl+b  c   # c新建   n  下一个
# 面板
ctrl+b   " %     # 新建    
ctrl+b  z   # zoom 临时最大    o 切换
# 会话
ctrl+b  s   选择一个会话
ctrl+b  d  退出一个会话

tmux的C/S架构

服务端(Server): 1个服务端维护1~N个会话;
会话(Session): 1个会话对应1N个窗口;
窗口(Window):1个窗口对应1
N个窗格;
窗格(Pane):vim、bash等具体任务就是在窗格中执行。

1.进入tmux
在shell中执行tmux就会自动创建一个匿名会话、窗口和窗格,而窗格内正在运行着另一个shell程序,这时我们可以像平常使用shell一样来工作。而tmux真正的威力在于对会话、窗口和窗格的管理。

2.快捷键前缀

tmux为使自身的快捷键和其他软件的快捷键互不干扰,特意提供一个快捷键前缀,默认为Ctrl+b。因此当我们输入任何tmux快捷键前必须先输入Ctrl+b。
该快捷键前缀是可以重置的。

3.操作窗格
Ctrl+b “  水平分割当前窗格
Ctrl+b %  垂直分割当前窗格
Ctrl+b x  删除当前窗格
Ctrl+b 方向键  通过上下左右方向键跳转到对应的pane
Ctrl+b ;  跳转到上次激活的pane
Ctrl+b o  跳转到下一个pane
Ctrl+b q  显示各pane的编号,并输入编号跳转到对应的pane
Ctrl+b {  将当前pane移动到最左边
Ctrl+b }  将当前pane移动到最右边
Ctrl+b !  将当前pane转变成window

4.操作Windoiw
Ctrl+b c  创建window
Ctrl+b ,  重命名当前window
Ctrl+b &  关闭当前window
Ctrl+b n  跳转到下一个window
Ctrl+b p  跳转到上一个window
Ctrl+b 0…9  跳转到对应的window

5.操作Session
Ctrl+b s  显示所有会话
Ctrl+b $  重命名
Ctrl+b d  脱离当前会话
Ctrl+b :kill-session  关闭当前会话
Ctrl+b (  跳转到上一个会话
Ctrl+b )  跳转到下一个会话

会话管理 

\常用命令**

tmux new  创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令)

tmux new -s mysession  创建名为mysession的会话

tmux ls  显示会话列表

tmux a  连接上一个会话

tmux a -t mysession  连接指定会话

tmux rename -t s1 s2  重命名会话s1为s2

tmux kill-session  关闭上次打开的会话

tmux kill-session -t s1  关闭会话s1

tmux kill-session -a -t s1  关闭除s1外的所有会话

tmux kill-server  关闭所有会话

常用快捷键

prefix s  列出会话,可进行切换

prefix $  重命名会话

prefix d  分离当前会话

prefix D  分离指定会话

  

窗口管理

prefix c  创建一个新窗口

prefix ,  重命名当前窗口

prefix w  列出所有窗口,可进行切换

prefix n  进入下一个窗口

prefix p  进入上一个窗口

prefix l  进入之前操作的窗口

prefix 0~9  选择编号0~9对应的窗口

prefix .  修改当前窗口索引编号

prefix ‘  切换至指定编号(可大于9)的窗口

prefix f  根据显示的内容搜索窗格

prefix &  关闭当前窗口

 

窗格管理

prefix %  水平方向创建窗格

prefix “  垂直方向创建窗格

prefix Up|Down|Left|Right  根据箭头方向切换窗格

prefix q  显示窗格编号

prefix o  顺时针切换窗格

prefix }  与下一个窗格交换位置

prefix {  与上一个窗格交换位置

prefix x  关闭当前窗格

prefix space(空格键)  重新排列当前窗口下的所有窗格

prefix !  将当前窗格置于新窗口

prefix Ctrl+o  逆时针旋转当前窗口的窗格

prefix t  在当前窗格显示时间

prefix z  放大当前窗格(再次按下将还原)

prefix i  显示当前窗格信息

调整大小 prefix 按下Alt+方向键调整窗口

其他命令

tmux list-key  列出所有绑定的键,等同于prefix ?

tmux list-command  列出所有命令

复制模式

复制模式支持滚屏等操作,进入方法为Ctrl + b再按”[“,此时进入所谓的copy-mode
然后就可以用上下键或PageDn/PageUp浏览屏幕了。
退出copy-mode直接按”q”。

表格展示

引导键

ctrl+b,以下所有的命令,均要先输入引导键,然后再按下面的键。

系统操作

按键 作用
? 列出所有快捷键;按q返回
d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
D 选择要脱离的会话;在同时开启了多个会话时使用
Ctrl+z 挂起当前会话
r 强制重绘未脱离的会话
s 选择并切换会话;在同时开启了多个会话时使用
: 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
[ 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息

窗口操作

按键 作用
c 创建新窗口
& 关闭当前窗口
数字键 切换至指定窗口
p 切换至上一窗口
n 切换至下一窗口
l 在前后两个窗口间互相切换
w 通过窗口列表切换窗口
, 重命名当前窗口;这样便于识别
. 修改当前窗口编号;相当于窗口重新排序
f 在所有窗口中查找指定文本

面板操作

按键 作用
将当前面板平分为上下两块
% 将当前面板平分为左右两块
x 关闭当前面板
! 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
Space 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
q 显示面板编号
o 在当前窗口中选择下一面板
方向键 移动光标以选择面板
{ 向前置换当前面板
} 向后置换当前面板
Alt+o 逆时针旋转当前窗口的面板
Ctrl+o 顺时针旋转当前窗口的面板