Tmux
1.0、参考
1.1、Tmux简介
是什么 ?: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
1.2、通过包管理器安装Tmux
操作系统包管理器安装命令
macOSHomeBrewbrew install tmux
GNU/LinuxHomeBrewbrew install tmux
aptsudo apt-get install -y tmux
CentOSyumsudo yum install -y tmux
dnfsudo dnf install -y tmux
openSUSEzyppersudo zypper install -y tmux
Alpine Linuxapksudo apk add tmux

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm tmux
Gentoo LinuxPortagesudo emerge tmux
1.3、通过编译源码安装Tmux
1.4、tmux命令

查看tmux命令的详细使用方法,请使用man tmux命令。

tmux命令的使用格式:

tmux <option>
tmux <command> [option]
1.4.1、tmux -V

查看Tmux的版本。

1.4.2、tmux ls

查看创建了哪些Tmux Session

下面是还没有创建过任何的Session

下面是创建了一个名称为0Session,这个Session里有一个window, 并且这个的状态是attached

1.4.3、tmux new -s <sessionName>

创建一个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

这个名称为androidsession布局如下:

您完全可以创建很多的session,在这些session之间进行切换,切换回来还和原来的现场一样。

1.4.4、tmux detach [-t sessionName]

您使用tmux new -s android创建了一个名字为androidsession之后, 你就进入了android这个session,这个session被标记为attached状态。 如果你想退出这个session,而不是想销毁这个session,那么你可以执行如下命令:

tmux detach -t android

如果你就想要退出当前的session,可以不指定-t参数。如下:

tmux detach
1.4.5、tmux set [sub-option]... <option> <value>

设置某个选项(option)的值value

sub-option说明
-wwindow级的配置
-sserver级的配置
-gglobal级(session和window)的配置
-uunset,取消设置,与-g一起使用表示恢复全局默认设置
-ooverrideless,如果这个选项已经设置过了,就不设置了
-q生成了异常也不输出错误
-t target指定目标session或目标window
option说明
prefixleader快捷键的设置

示例:

tmux set -g prefix C-a
1.4.6、tmux source-file <configFile>

重新加载Tmux的配置文件

注意:在修改了Tmux的配置文件之后,一定要重新加载,否则是没有效果的。

tmux source-file ~/.tmux.conf
1.4.7、tmux show-options [sub-option]... <option>

打印出(某个)选项(option)的值value

sub-option说明
-wwindow级的配置
-sserver级的配置
-gglobal级(session和window)的配置
-v只打印出value,不打印出option
-q出现了异常也不输出错误
-t target指定目标session或目标window

示例:

tmux show-options -g | grep prefix
1.5、Tmux的配置文件

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