tmux
本教程是基于ACWing的《Linux基础课》所做,希望大家支持ACWing
功能
-
分屏
当需要同时运行两个终端,并且进行比对着输入时,来回切换比较麻烦,就可以利用分屏
可以在一个对话框里同时处理两个终端,其中每个分屏都是一个终端,都是一个shell对话框
-
允许断开Terminal连接后(关掉终端),继续运行进程
在tmux中写文档时,不需要担心断网,断网后连接回tmux,所有东西都还在,让进程不会因为断开连接而中断,比如在tmux中使用vim时,不用担心意外,写的文件不会丢掉,进程会在云端执行
结构
一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane
session:会话
window:窗口
pane:小窗口
每个pane都会打开一个shell交互对话框
创建一个session
在终端中输入:
tmux
直接输入tmux
,会新建一个session,其中包含一个window,window中包含一个pane,pane里打开了一个shell对话框
切分pane为多个pane
在tmux中,许多操作需要用到前缀键
前缀键:Ctrl + a
竖直分屏
按下Ctrl + a
后手指松开,然后按%
,将当前pane左右平分成两个pane
并且可以继续分割
横向分屏
按下Ctrl + a
后手指松开,然后按"
,将当前pane上下平分成两个pane
退出
关闭当前pane,如果当前window所有pane均关闭,则自动关闭window,若当前session的所有window均已关闭,则自动关闭session
Ctrl + d
若只有一个session,一个window,一个pane时,按下Ctrl + d
则会直接退出session
选中一个pane
鼠标操作:鼠标点击可以选pane
键盘操作:按下Ctrl + a
后手指松开,然后按方向键
:选择相邻的pane
调整分割线位置
鼠标操作:鼠标拖动pane之间的分割线,可以调整分割线的位置
键盘操作:按住Ctrl + a
的同时按方向键
,可以调整pane之间分割线的位置
注意是同时,与切换pane不一样
全屏、取消全屏
选中想要全屏的窗口后,按下Ctrl + a
后手指松开,然后按 z
,将当前pane全屏/取消全屏
挂起当前session
要退出tmux,但又不想把session关掉,也就是不想把窗口关掉时
按下Ctrl + a
后手指松开,然后按d
此时已经从tmux中退出来,但是session是挂起的
打开之前挂起的session
若想打开刚刚挂起的session
tmux a
或者
tmux attach
选择其他的session
当把当前的session挂起后,再输入命令tmux
,就会打开一个新的session
选择其他的session:按下Ctrl + a
后手指松开,然后按s
会出现一个菜单列表,可以在里面使用方向键选择session
方向键上:选择上一项
方向键下:选择下一项
方向键右:展开当前项
方向键左:闭合当前项
方向键上下选择哪个session
在每个session中,按下→
,会展开,可以看见有多少个pane,再按一下→
,就会把该window所有pane都展开;按下←
,会合上
创建一个window
按下Ctrl + a
后手指松开,然后按c
,在当前session中创建一个新的window
可以使用Ctrl + a
和按s
来查看是否创建了新的window
可以看见当前session中的window数量从1个变成了2个
选择其他window
按下Ctrl + a
后手指松开,然后按w
:选择其他window,方向键与选择其他session同理
在第一个session里,有两个window,一个window有3个pane,一个有1个pane
Ctrl a + s
默认打开session这一级
Ctrl a + w
默认打开window这一级
Ctrl a + s
:
Ctrl a + w
:
建议每个session只开一个window
翻阅当前pane内的内容
按下Ctrl + a
后手指松开,然后按PageUp/PageDown
从tmux中复制文本
在tmux中选中文本时,需要按住Shift
键来选中,选中完成后,再使用 Ctrl + Insert
和 Shift + Insert
Ctrl + Insert
从终端里复制
Shift + Insert
往终端里粘贴