tmux简明使用教程
tmux是一个简单的终端复用软件。思考以下场景:我需要运行一个C++程序,还需要用pmap看一下这个程序的内存映射。当然,我们可以开两个终端,但这样显然不优雅。如果能在一个终端使用就好了。另外,如果我们远程连接到服务器,退出后再次连接就没有办法保存上次的一些内容,使用tmux可以解决这些问题。
# 原因
因为自己用习惯了VSCode这样强大的现代工具,因此对于命令行的很多操作反而很生疏。看到老师上课演示全程用终端感觉还挺不错的,因此特意了解了一下tmux。
# 安装
试了一下很多系统自带了,我用的WSL,发行版是Ubuntu 20.04。如果没有的话ubuntu使用sudo apt-get install tmux
就可以安装了。
# 概念解释
# session、window、pane
⼀个tmux可以包含多个session,⼀个session可以包含多个window,⼀个window可以包含多个pane。
- session:会话
- window:窗⼝
- pane:⼩窗⼝
每个pane都是⼀个交互对话框。
# session管理
提示
在tmux中,许多操作需要⽤到前缀键Ctrl + B,下文所述“前缀”皆为此。
# 创建⼀个session
在终端中输⼊:tmux
会新建⼀个session,其中包含⼀个window,window中包含⼀个pane,pane⾥打开了⼀个shell对话框。tmux new -s <session-name>
可以创建一个名字为<session-name>
的终端。
# 挂起当前session
要退出tmux,但⼜不想把session关掉,也就是不想把窗⼝关掉时按下前缀后⼿指松开,然后按D,此时已经从tmux中退出来,但是session是挂起的。
# 查看所有挂起的session
tmux ls
# 打开之前挂起的session
若想打开刚刚挂起的session
# 使用会话编号
tmux attach -t 0
# 使用会话名称
tmux attach -t <session-name>
2
3
4
5
# 选择其他session
按下前缀后⼿指松开,然后按S,会出现⼀个菜单列表,可以在⾥⾯使⽤⽅向键选择session。
- ⽅向键上:选择上⼀项
- ⽅向键下:选择下⼀项
- ⽅向键右:展开当前项
- ⽅向键左:闭合当前项
⽅向键上下选择哪个session,在每个session中,按下→,会展开,可以看见有多少个pane,再按⼀下→,就会把该window所有pane都展开;按下←,会合上。
# 退出session
Ctrl + D 退出,关闭当前pane,如果当前window所有pane均关闭,则⾃动关闭window,若当前session的所有window均已关闭,则⾃动关闭session。若只有⼀个session,⼀个window,⼀个pane时,按下Ctrl + D则会直接退出session。
# pane 管理
# 水平拆分
前缀+%,将当前pane左右平分成两个pane,并且可以继续分割。
# 垂直拆分
前缀+",将当前pane上下平分成两个pane。
# 选中⼀个pane
- ⿏标操作:⿏标点击可以选pane(与使用的终端有关,部分终端例如WSL不可以)。
- 键盘操作:按下前缀后⼿指松开,然后按⽅向键:选择相邻的pane。
# 调整分割线位置
- ⿏标操作:⿏标拖动pane之间的分割线,可以调整分割线的位置(与使用的终端有关,部分终端例如WSL不可以)。
- 键盘操作:按住前缀的同时按⽅向键,可以调整pane之间分割线的位置。
# 全屏、取消全屏
选中想要全屏的窗⼝后,按下前缀后⼿指松开,然后按Z,将当前pane全屏/取消全屏。
# 翻阅当前pane内的内容
按下前缀后⼿指松开,然后按PageUp/PageDown
注意
建议每个session只创建一个window,文中没有如何创建和选择window的操作。