tmux是一个 terminal multiplexer(终端复用器),它可以启动一系列终端会话。
我们使用命令行时,打开一个终端窗口,,会话开始,执行某些命令如npm run dev,关闭此终端窗口,会话结束,npm run dev服务会话随之被关闭。有时我们希望我们运行的服务如npm run dev 或者一些cd命令等,被保留,而不是关闭窗口再打开后,重新手动执行。tmux的主要用途就在于此。
它解绑了会话和终端窗口。关闭终端窗口再打开,会话并不终止,而是继续运行在执行。将会话与终端窗后彻底分离。
用法
安装
tmux使用c语言实现的,https://github.com/tmux/tmux.git可运行在OpenBSD,FreeBSD,NetBSD,Linux,OS X,Solaris上。
安装方法一
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
安装方法二
# Ubuntu 或 Debian
$ sudo apt-get install tmux
# CentOS 或 Fedora
$ sudo yum install tmux
# Mac
$ brew install tmux
启动与退出
讲解使用之前,我们需要先搞清楚窗口与会话的概念。
所谓窗口,其实就是我们终端打开的一个tab,如终端里面所操作的命令、启动的服务,为会话,如下图所示:
image.png在理解了窗口和会话的观念上,我们介绍下tmux使用。
# 启动tmux
$ tmux
# 退出
$ exit 或 Ctrl+D
在终端窗口上,运行tmux,其实就打开了一个终端与tmux服务的会话。只不过我们可以在tmux会话上层,再次输入’会话‘命令,使tmux上层运行的'会话'与终端窗口进行分离。这里面tmux其实可以称之为伪窗口(它其实是会话)。
启动tmux后,底部[0] 表示第0个tmux伪窗口,再启动一个tmux伪窗口,则为[1],依次递增。
image.png# 启动命名tmux
$ tmux new -s <name>
底部不再是数字,而是命名的名字,如下图
image.png分离会话
在会话窗口上,执行cd demo
操作后,再执行tmux detach
,可见退出了tmux伪窗口
# 分离会话
$ tmux detach
执行tmux ls
可看到当前所有的tmux伪窗口。
重接会话
我们通过tmux detach
关闭tmux伪窗口后,希望能再次进入某一个会话窗口,怎么操做?
# 重接会话 使用伪窗口编号
$ tmux attach -t 0
# 重接会话 使用伪窗口名称
$ tmux attach -t xiaoqi
杀死会话
有时候我们想彻底关闭某个会话,不想让其再执行,怎么操作?
# 使用会话编号
$ tmux kill-session -t 0
# 使用会话名称
$ tmux kill-session -t <name>
切换会话
# 使用会话编号
$ tmux switch -t 0
# 使用会话名称
$ tmux switch -t <session-name>
重命名会话
$ tmux rename-session -t 0 <new-name>
其他命令
# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys
# 列出所有 Tmux 命令及其参数
$ tmux list-commands
# 列出当前所有 Tmux 会话的信息
$ tmux info
# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf
网友评论