是什么 ? | : | a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. |
开发语言 | : | C |
官方网站 | : | https://tmux.github.io |
源码仓库 | : | https://github.com/tmux/tmux |
同类软件 | : | GNU Screen |
操作系统 | 包管理器 | 安装命令 |
---|---|---|
macOS | HomeBrew | brew install tmux |
GNU/Linux | HomeBrew | brew install tmux |
apt | sudo apt-get install -y tmux | |
CentOS | yum | sudo yum install -y tmux |
dnf | sudo dnf install -y tmux | |
openSUSE | zypper | sudo zypper install -y tmux |
Alpine Linux | apk | sudo apk add tmux |
pacman | sudo pacman -Syyu --noconfirm | |
Gentoo Linux | Portage | sudo emerge tmux |
查看tmux
命令的详细使用方法,请使用man tmux
命令。
tmux
命令的使用格式:
tmux <option>
tmux <command> [option]
查看Tmux
的版本。
查看创建了哪些Tmux Session
。
下面是还没有创建过任何的Session
:
下面是创建了一个名称为0
的Session
,这个Session
里有一个window
, 并且这个的状态是attached
:
创建一个Tmux Session
。
只要您不重新启动操作系统,也不通过tmux kill-server
命令杀死服务,Tmux Session
一旦被创建好,就能一直保存下去。
你可以把Tmux Session
看作是很多IDE里面的视图(perspect
),其实就是一种布局(layout
), 比如我为Android开发创建一个session
,这个session
里只有一个window
, 这个window
里有3个panel
,左边panel
里打印adb logcat
日志, 右上边的panel
进入adb shell
操作,右下边的panel
执行一些其他的shell
命令。
tmux new -s android
这个名称为android
的session
布局如下:
您完全可以创建很多的session
,在这些session
之间进行切换,切换回来还和原来的现场一样。
您使用tmux new -s android
创建了一个名字为android
的session
之后, 你就进入了android
这个session
,这个session
被标记为attached
状态。 如果你想退出这个session
,而不是想销毁这个session
,那么你可以执行如下命令:
tmux detach -t android
如果你就想要退出当前的session
,可以不指定-t
参数。如下:
tmux detach
设置某个选项(option
)的值value
。
sub-option | 说明 |
---|---|
-w | window 级的配置 |
-s | server 级的配置 |
-g | global 级(session和window)的配置 |
-u | unset ,取消设置,与-g 一起使用表示恢复全局默认设置 |
-o | overrideless ,如果这个选项已经设置过了,就不设置了 |
-q | 生成了异常也不输出错误 |
-t target | 指定目标session 或目标window |
option | 说明 |
---|---|
prefix | leader快捷键的设置 |
示例:
tmux set -g prefix C-a
重新加载Tmux的配置文件。
注意:在修改了Tmux的配置文件之后,一定要重新加载,否则是没有效果的。
tmux source-file ~/.tmux.conf
打印出(某个)选项(option
)的值value
。
sub-option | 说明 |
---|---|
-w | window 级的配置 |
-s | server 级的配置 |
-g | global 级(session和window)的配置 |
-v | 只打印出value ,不打印出option |
-q | 出现了异常也不输出错误 |
-t target | 指定目标session 或目标window |
示例:
tmux show-options -g | grep prefix
Tmux
的配置文件中的内容就是tmux
子命令的集合, 就类似于.sh
文件是Shell命令的集合一样。 因为敲命令都是临时修改,只有写到配置文件中,每次Tmux Server
启动的时候帮我们加载这些配置,就不用再敲一遍了。
Tmux
的系统级
配置文件:/usr/local/etc/tmux.conf
Tmux
的用户级
配置文件:~/.tmux.conf
Tmux Server
第一次启动的时候,按照先系统级
,再用户级
的顺序, 依次查找是否存在对应级的配置文件,如果有的话就会加载它。在使用的过程中修改了配置文件,需要您主动通过tmux source-file ~/.tmux.conf
命令重新加载这个配置文件。一般不建议修改系统级
配置文件,而是修改用户级
配置文件。
有人已经写了一个类似于Oh My Zsh的配置, 可以叫它为Oh My Tmux。 使用方法如下:
step1、备份您原来的配置
mv ~/.tmux.conf ~/.tmux.con.bak
step2、下载新的配置
curl -L -o ~/.tmux.conf https://raw.githubusercontent.com/gpakosz/.tmux/master/.tmux.conf
curl -L -o ~/.tmux.conf.local https://raw.githubusercontent.com/gpakosz/.tmux/master/.tmux.conf.local
我已经编写好了Shell脚本, 使用curl命令下载并执行即可:
curl -sS https://raw.githubusercontent.com/leleliu008/auto/master/oh-my-tmux/setup.sh | bash