终端复用神器tmux——简介及基本使用

Posted by Rpl on December 11, 2019

前言

tmux系列文章:

  1. 终端复用神器tmux——简介及基本使用
  2. 终端复用神器tmux——tmux的自定义配置
  3. 终端复用神器tmux——脚本使用及tmuxinator

一 tmux简介

tmux(terminal multiplexer)复用终端,可以在一个屏幕上复用管理多个终端窗口。使用tmux,用户随时连接或断开tmux会话,都不会影响tmux终端里的程序。

二 tmux的基本结构

tmux包括会话(session),窗口(window), 窗格(pane). 一个会话就是一个tmux服务,会话包括多个窗口,窗口就是我们所能看到的一个屏幕,不同的窗口可以通过切换显示,而一个窗口又包括了多个窗格,每个窗格都是一个伪终端。

会话 –> 窗口 –> 窗格, 如图所示: 1.2

三 tmux的基本用法

tmux的基本用法就是对会话、窗口、窗格的创建、关闭、连接、切换、分离等操作

tmux的操作都是配合快捷键使用的, tmux的默认快捷键前缀是ctr+b(下文中通用prefix指代)。tmux按下prefix键松开后,再按下其他命令键进行快捷操作。例如: prefix c 创建一个新的窗口(prefix c 是先按下prefix,松开后在按d键, 不同于prefix + d: 表示按下prefix的同时按下d)

快捷键操作 prefix d 要先同时按下Ctr+b 再按下d键,比较麻烦。可以自定义前缀键prefix: 按如下所示修改 ~/.tmux.conf 文件。如果没有创建.tmux.conf。它是tmux的配置文件,可以实现对tmux配置的自定义修改。

# 重新设置前缀键为 ` -g表示全局global
set -g prefix `

# 取消绑定之前的前缀键C-b
unbind C-b

# 绑定 prefix r 快速重新加载配置文件
# display是加载后展示的信息
# \; 可以绑定执行多条命令
bind r source-file ~/.tmux.conf \; display "Reloaded OK!"

现在将prefix由默认的Ctr+b 改为了 ` 键(左上角的第一个键)。

最后一行的作用是使用prefix r重新加载配置文件,并输出提示,否则需要关闭会话后配置文件才能生效,也可手动加载配置文件,在tmux终端输入”prefix :”进入命令模式,用source-file命令加载配置文件。

更多的tmux配置,详细点击终端复用神器tumx——tmux的自定义配置 查看。

四 tmux详细操作

1. session 会话管理

常用命令
tmux new  创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令)

tmux new -s mysession  创建名为mysession的会话

tmux ls  显示会话列表

tmux a  连接上一个会话

tmux a -t mysession  连接指定会话

tmux rename -t s1 s2  重命名会话s1为s2

tmux kill-session  关闭上次打开的会话

tmux kill-session -t s1  关闭会话s1

tmux kill-session -a -t s1  关闭除s1外的所有会话

tmux kill-server  关闭所有会话
常用快捷键
prefix s  列出会话,可进行切换

prefix $  重命名会话

prefix d  分离当前会话

prefix D  分离指定会话

2. window 窗口快捷键操作


prefix c  创建一个新窗口

prefix ,  重命名当前窗口

prefix w  列出所有窗口,可进行切换

prefix n  进入下一个窗口

prefix p  进入上一个窗口

prefix l  进入之前操作的窗口

prefix 0~9  选择编号0~9对应的窗口

prefix .  修改当前窗口索引编号

prefix '  切换至指定编号(可大于9)的窗口

prefix f  根据显示的内容搜索窗格

prefix &  关闭当前窗口

3. pane 窗格快捷键操作

prefix %  水平方向创建窗格

prefix "  垂直方向创建窗格

prefix Up|Down|Left|Right  根据箭头方向切换窗格

prefix q  显示窗格编号

prefix o  顺时针切换窗格

prefix }  与下一个窗格交换位置

prefix {  与上一个窗格交换位置

prefix x  关闭当前窗格

prefix space(空格键)  重新排列当前窗口下的所有窗格

prefix !  将当前窗格置于新窗口

prefix Ctrl+o  逆时针旋转当前窗口的窗格

prefix t  在当前窗格显示时间

prefix z  放大当前窗格(再次按下将还原)

prefix i  显示当前窗格信息

4. 其他命令

tmux list-key  列出所有绑定的键,等同于prefix ?

tmux list-command  列出所有命令

以上为tmux的常见操作,基本可以满足大部分的工作需求。


参考:

[1] https://www.cnblogs.com/liuguanglin/p/9290345.html

[2] tmux: Productive Mouse-Free Development》中文翻译

[3] tmux使用手册