linux命令之-tmux终端复用器

linux命令之-tmux终端复用器

1、tmux工具介绍

tmux是一个 terminal multiplexer(终端复用器),它可以启动一系列终端会话。我们使用命令行时,打开一个终端窗口,,会话开始,执行某些命令如npm run dev,关闭此终端窗口,会话结束,npm run dev服务会话随之被关闭。有时我们希望我们运行的服务如npm run dev 或者一些cd命令等,被保留,而不是关闭窗口再打开后,重新手动执行。tmux的主要用途就在于此。它解绑了会话和终端窗口。关闭终端窗口再打开,会话并不终止,而是继续运行在执行。将会话与终端窗后彻底分离。

2、tmux工具安装

2.1、epel安装

  • yum安装前需要安装epel源
    1
    2
    rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    yum install tmux -y

2.2、github编译安装

  • 编译安装前需要安装如下工具:autoconf, automake and pkg-config
    1
    2
    3
    4
    git clone https://github.com/tmux/tmux.git
    cd tmux
    sh autogen.sh
    ./configure && make

3、tmux会话管理

3.1、新建会话

1
2
#新建一个会话名称为lisir-workbench的终端窗口
[root@docker ~]# tmux new -s lisir-workbench的终端窗口

3.2、分离会话

1
2
#在Tmux窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离
[root@docker ~]# tmux detach
1
2
3
4
5
#查看当前所有tmux会话
[root@docker ~]# tmux ls
lisir-workbench: 1 windows (created Sun Aug 16 00:36:03 2020) [270x55]
[root@docker ~]# tmux list-session
lisir-workbench: 1 windows (created Sun Aug 16 00:36:03 2020) [270x55]

3.3、接入会话

1
2
3
4
#通过终端编号接入会话
[root@docker ~]# tmux attach -t 0
#通过session-name接入会话
[root@docker ~]# tmux attach -t lisir-workbench

3.4、杀死会话

1
2
3
4
#通过session-name杀死会话
[root@docker ~]# tmux kill-session -t lisir-workbench
[root@docker ~]# tmux ls
failed to connect to server

3.5、切换会话

1
2
3
4
5
6
7
8
[root@docker ~]# tmux ls
lisir01: 1 windows (created Sun Aug 16 00:39:56 2020) [270x55]
lisir02: 1 windows (created Sun Aug 16 00:40:03 2020) [270x55]
lisir03: 1 windows (created Sun Aug 16 00:40:06 2020) [270x55]
#接入lisir01会话
[root@docker ~]# tmux attach -t lisir01
#在lisir01中执行如下命令切换至lisir02会话
[root@docker ~]# tmux swich -t lisir02

3.6、重命名会话

1
2
3
4
5
6
#如下命令将lisir01会话名称改为lisir666
[root@docker ~]# tmux rename-session -t lisir01 lisir666
[root@docker ~]# tmux ls
lisir02: 1 windows (created Sun Aug 16 00:40:03 2020) [270x55]
lisir03: 1 windows (created Sun Aug 16 00:40:06 2020) [270x55]
lisir666: 1 windows (created Sun Aug 16 00:39:56 2020) [270x55]

3.7、会话快捷键

  • 注意:回话快捷键可能与xshell有冲突,请测试;
    1
    2
    3
    Ctrl+b d:分离当前会话。
    Ctrl+b s:列出所有会话。
    Ctrl+b $:重命名当前会话。

4、tmux工具实践

  • 新建会话tmux new -s my_session
  • 在 Tmux 窗口运行所需的程序。
  • 在 Tmux 窗口下输入tmux detach将会话分离。
  • 下次使用时,重新连接到会话tmux attach -t my_session

5、tmux窗格操作

  • 提示:tmux具有拆分窗格的功能,但使用后发现不实用,不如直接xshell分屏来的直接,本笔记不在记录

6、其他命令

1
2
3
4
5
6
7
8
#列出所有快捷键,及其对应的 Tmux 命令
tmux list-keys
#列出所有 Tmux 命令及其参数
tmux list-commands
#列出当前所有 Tmux 会话的信息
tmux info
#重新加载当前的 Tmux 配置
tmux source-file ~/.tmux.conf
-------------本文结束感谢您的阅读-------------
LiGuanCheng wechat
如有问题,请与我微信交流或通过右下角“daovoice”与我联系~。
请我喝一杯咖啡~