tmux是终端软件,我是出于对其终端复用功能而学习的。

tmux介绍

网上搜了下,没发现有官方文档。只能参考网上的二次教程了。所以无法一开始对tmux有个整体的了解。只知道tmux有这么几个特点:

  • 支持终端复用
  • 支持分屏,配合vim使用
  • 支持脚本配置
  • 处于异地的两人可以对同一会话进行操作,一方的操作另一方可以实时看到

tmux入门

直接一句一句命令敲吧。

安装tmux

sudo apt-get install tmux

第一句命令

直接运行下面这个命令

tmux

得到下面这张图,

scr.png

怎么理解呢?网上说是理解为tmux创建了一个新的session。这个session就类似ssh连接时的进程,但是不会直接关闭。它的id从0开始,逐次变为1,2,3,…

下面是一个状态栏,可以显示一些信息。

列处当前tmux进程

tmux ls

创建一个新进程

tmux  new  -s  $sessionname

注意:该命令实际上与tmux本质上是一样的,直接执行tmux会创建一个session id为数字的session。在一个session内再创建一个进程是不合理的,因此最好退出当前进程再用该命令创建一个新进程(需要指定name,否则session名默认为数字)。

退出或进入进程

进入

tmux at -t $sessionname

退出

分两种:

第一种,杀死该session并退出:

ctrl+d

shell下杀死该session,

tmux kill-session -t $sessionname

第二种,挂起该进程并退出:

tmux detach

tmux进阶

上面那些已经足够满足终端复用的需求了。但是tmux的功能显然不仅这么点。

在tmux界面内按 Ctrl+b 即可进入tmux控制台,支持以下快捷键。

系统操作

列出所有快捷键 ?
脱离当前会话 d
选择要脱离的会话;在同时开启了多个会话时使用 D
选择并切换会话;在同时开启了多个会话时使用 s
进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 :

窗口操作

功能 快捷键
创建新窗口 c
关闭当前窗口 &
切换至指定窗口 数字键
切换至上一窗口 p
切换至下一窗口 n
在前后两个窗口间互相切换 l
通过窗口列表切换窗口 w
在所有窗口中查找指定文本 f

面板操作

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

总结

从tmux进阶来看,其实终端复用对tmux来说并不算是主要的功能,相反其窗口面板操作更像是主要功能,所以抱着学习终端复用的想法学习tmux,一开始入门会比较懵逼。

简而言之,熟能生巧。


我很好奇