你是否曾经开过一大堆的 Terminal?有没有把它们都保存下来的冲动?Tmux 的Session就是做这件事情的! 你可以随时退出或者进入任何一个 Session。每个 Session 有若干个 Window,每个 Window 又可以分成多个窗格(Pane)。 极大地满足 Terminal 用户的需求。
此外即使 iTerm/Terminal/Konsole 意外关闭也没关系,因为 Session 完全保存在 Tmux Server 中。 再次打开 Terminal 时只需 tmux attach
便可回到你的工作区,就像从未退出过一样。
1.安装
安装的话这里就不过说明了,不同的Linux
发行版相应的包管理机制不同,安装tmux
包即可。
2.使用技巧
tmux
主要包括以下几个模块:
- session 会话:一个服务器可以包含多个会话
- window 窗口:一个会话可以包含多个窗口
- pane 面板:一个窗口可以包含多个面板[强悍的分屏]
tmux
默认Ctrl+b
为前缀按键,敲击前缀按键之后,使用快捷键就可以执行一些相应的指令了。当然如果你不习惯使用Ctrl+b
,也可以在~/.tmux.conf
文件中加入以下内容把快捷键变为Ctrl+a
,(找不到.tmux.conf
文件的话,新建一个即可):
# Set prefix key to Ctrl-a
unbind-key C-b
set-option -g prefix C-a
以下所有的操作都是激活控制台之后,即键入
Ctrl+b
前提下才可以使用的命令(这里假设快捷键没改,可以在配置文件中修改)。
3.基本操作:
-
? :列出所有快捷键;按
q
返回 -
d : 脱离当前会话,可暂时返回
Shell
界面,输入tmux attach
能够重新进入之前会话 -
s : 选择并切换
Session
;在同时开启了多个会话时使用 -
D : 选择要脱离的
Session
;在同时开启了多个会话时使用 -
: :进入命令行模式;此时可输入支持的命令,例如
kill-server
所有tmux Session
-
[ :复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,
q/Esc
退出 -
] : 进入粘贴模式,粘贴之前复制的内容,按
q/Esc
退出 -
~ : 列出提示信息缓存;其中包含了之前
tmux
返回的各种提示信息 - t :显示当前的时间
- Ctrl+z : 挂起当前会话
4.窗口操作:
- c :创建新窗口
- & :关闭当前窗口
- 数字键 : 切换到指定窗口
- p :切换至上一窗口
- n :切换至下一窗口
- l :前后窗口间互相切换
- w :通过窗口列表切换窗口
- , :重命名当前窗口,便于识别
- . :修改当前窗口编号,相当于重新排序
- f :在所有窗口中查找关键词,便于窗口多了切换
5.面板操作:
- “ :将当前面板上下分屏
- % :将当前面板左右分屏
- x :关闭当前分屏
- ! :将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
- Ctrl+方向键 :以1个单元格为单位移动边缘以调整当前面板大小
- Alt+方向键 :以5个单元格为单位移动边缘以调整当前面板大小
- 空格键 :可以在默认面板布局中切换,试试就知道了
- q :显示面板编号
- o :选择当前窗口中下一个面板
- 方向键 :移动光标选择对应面板
- { :向前置换当前面板
- } :向后置换当前面板
- Alt+o :逆时针旋转当前窗口的面板
- Ctrl+o :顺时针旋转当前窗口的面板
- z :tmux 1.8新特性,最大化当前所在面板
6.线程操作:
线程操作是在未启动
Tmux
线程之前在终端上的操作,这样可以保证主机断线后,线程不中断
-
tmux new -s session_name :创建一个名字是
session_name
的线程 -
tmux attach -t session_name :连接到名字是
session_name
的线程之上
7.分屏效果
附一张分屏效果图:
分屏效果
希望这篇文章能给使用tmux的程序员一些帮助。
网友评论