TMUX使用指南-基础版
在Linux系统中可以通过apt安装
sudo apt install tmux
命令行输入命令使用工具
~$:tmux
0.基础概念
-
session
通过
tmux new -s name
新建一个session,我们称之为一个会话。在一个会话中可以有多个window,通过指令进行window之间的跳转和切换。 -
window
在一个会话中,通过
ctrl-b + c
新建一个window,我们称之为一个窗口。强制关闭一个窗口使用ctrl-b + &
,逻辑与的符号。 -
panel
在一个窗口中,有时我们想同时观察或者打开多个文件,这时可以通过
ctrl-b + "
上下分屏,或者ctrl-b + %
左右分屏,每一个分屏我们称之为一个面板。
三者的区别见附录的图示。
1. 原生指令
- 上下分屏:
ctrl + b + "
- 左右分屏:
ctrl + b + %
- 切换屏幕:
ctrl + b + o
- 关闭一个终端:
ctrl + b + x
- 上下分屏与左右分屏切换:
ctrl + b + Space
- 与上一个窗口交换位置
ctrl + b + {
- 与下一个窗口交换位置
ctrl + b + }
2. 常用指令
- 打开一个新会话
tmux new -s name-of-my-session
- 列出当前所有会话
tmux ls
- 切换到指定会话
tmux a -t session-name
- 断开当前会话(并没有终止,仍然可以通过tmux a -t session-name重新进入)
tmux detach
- 关闭会话并终止所有会话中的所有程序
tmux kill-session -t session-name
- 列出所有快捷键
tmux list-keys
- 列出所有 tmux 命令及其参数
tmux list-commands
- 列出当前所有会话的信息
tmux info
- 重新加载 tmux 配置
tmux source-file ~/.tmux.conf
3. 改变pane的大小
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R
在Mac系统上,这里的 bind-key
默认是 control+B
,bind-key -r
指的是通过control+B
触发功能,然后M-Up
指的是control+option+Arrorw up
的组合键。
4. 手动关闭窗口window
prefix + p #切换到前面一个window
prefix + n #切换到后面一个window
prefix + w #列出当前session所有window,并可通过上下箭进行选择
prefix + & #关闭当前window
5. 会话重命名session
首先ctrl-b + :
进入指令模式。
输入下述指令, 指定当前会话名称和新的会话名称。
rename-session -t [current-name] [new-name]
例如我想将原来名为 hello 的session 重命名成 test,只需要 rename-session -t hello test
即可生效。
附录:其他
A.编译安装
事情的起因是命令行安装tmux,显示找不到相应的package,于是参考安装指南https://github.com/tmux/tmux/wiki/Installing#building-dependencies。
如果找不到系统安装版本可以自行下载编译安装
先进入 libevent 编译安装,提示找不到 openssl
missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR
不得已,自己重新安装 openssl 吧:Linux 从源码编译安装 OpenSSL
B. 图示
如下是一个打开的 zsh
界面
通过tmux new -s name
新建一个session,默认进入编号为0
的window。此时在zsh
底部状态栏会发生变化,利用星号*
指示当前在所在的window。一个zsh
窗口只能有一个session,如果想要多个session需要打开多个zsh
窗口。
通过ctrl-b + c
新建一个window并进入该window的界面。一个 session 可以有多个window。
如果想要左右对比看代码或者指令,可以通过ctrl-b + %
来完成,这时会在右侧新建一个panel并转到该界面。一个 window 可以有多个 panel。
同理,可以通过ctrl-b + "
新建上下分屏的panel。这样就可以在不同的panel中完成不同的任务了。
(全文完)
参考资料
[1] libevent https://github.com/libevent/libevent/releases/tag/release-2.1.11-stable
[2] ncurses https://invisible-mirror.net/archives/ncurses/
[3] Linux 从源码编译安装 OpenSSL https://www.linuxidc.com/Linux/2011-10/45738.htm