• Linux tmux使用总结


    1 tmux介绍

    tmux是在终端中运行的程序,并且允许多个其它终端程序在其内部运行。tmux内部的每个程序都有自己的终端,由tmux管理,可以从运行tmux的单个终端访问-这称为多路复用,tmux是终端多路复用器(terminal multiplexer)。

    下面是一个在Windows Terimal中运行WSL,tmux的运行截图:

    image-20231021202111673

    2 tmux概念

    会话Sessions、窗口Windows、面板Panes

    • 程序在面板中的终端中运行,每个面板属于一个窗口。
    • 每个窗口都有一个名称和一个活动面板。
    • 窗口链接到一个或多个会话。
    • 每个会话都有一个窗口列表,每个窗口都有一个索引。
    • 会话中的一个窗口是当前窗口。
    • 一个会话可以有多个客户端连接
    • 每个客户端连接到一个会话。

    status line中字段含义

    3 Sessions会话管理

    新建会话

    tmux # 新建一个默认会话
    tmux new -s newsession # 指定会话名称为newsession
    
    • 1
    • 2

    断开当前会话

    tmux detach # 断开当前会话,会话在后台运行
    
    • 1

    进入之前的会话

    tmux a # 默认进入第一个会话
    tmux a -t demo # 进入到名称为demo的会话
    
    • 1
    • 2

    关闭会话

    tmux kill-session -t demo # 关闭demo会话
    tmux kill-server # 关闭服务器,所有的会话都将关闭
    
    • 1
    • 2

    查看所有的会话

    tmux list-session # 查看所有会话
    tmux ls # 查看所有会话,提倡使用简写形式
    
    • 1
    • 2

    4 tmux快捷指令

    系统指令

    前缀指令描述
    Ctrl+b?显示快捷键帮助文档
    Ctrl+bd断开当前会话
    Ctrl+bD选择要断开的会话
    Ctrl+bCtrl+z挂起当前会话
    Ctrl+br强制重载当前会话
    Ctrl+bs显示会话列表用于选择并切换
    Ctrl+b:进入命令行模式,此时可直接输入ls等命令
    Ctrl+b[进入复制模式,按q退出
    Ctrl+b]粘贴复制模式中复制的文本
    Ctrl+b~列出提示信息缓存

    窗口(Windows)指令

    前缀指令描述
    Ctrl+bc新建窗口
    Ctrl+b&关闭当前窗口(关闭前需输入y or n确认)
    Ctrl+b0~9切换到指定窗口
    Ctrl+bp切换到上一窗口
    Ctrl+bn切换到下一窗口
    Ctrl+bw打开窗口列表,用于且切换窗口
    Ctrl+b,重命名当前窗口
    Ctrl+b.修改当前窗口编号(适用于窗口重新排序)
    Ctrl+bf快速定位到窗口(输入关键字匹配窗口名称)

    面板(Panes)指令

    前缀指令描述
    Ctrl+b"当前面板上下一分为二,下侧新建面板
    Ctrl+b%当前面板左右一分为二,右侧新建面板
    Ctrl+bx关闭当前面板(关闭前需输入y or n确认)
    Ctrl+bz最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增)
    Ctrl+b!将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)
    Ctrl+b;切换到最后一次使用的面板
    Ctrl+bq显示面板编号,在编号消失前输入对应的数字可切换到相应的面板
    Ctrl+b{向前置换当前面板
    Ctrl+b}向后置换当前面板
    Ctrl+bCtrl+o顺时针旋转当前窗口中的所有面板
    Ctrl+b方向键移动光标切换面板
    Ctrl+bo选择下一面板
    Ctrl+b空格键在自带的面板布局中循环切换
    Ctrl+bAlt+方向键以5个单元格为单位调整当前面板边缘
    Ctrl+bCtrl+方向键以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖)
    Ctrl+bt显示时钟

    下面是一个例子,有3个窗口,其中一个窗口里面有两个面板。

    image-20231021214938657

    5 配置文件

    如果要在tmux中实现鼠标选择面板、滚屏等操作,可以新建~/.tmux.conf文件,

    vim ~/.tmux.conf
    
    • 1

    文件中写入以下内容:

    set -g mouse on # 开启鼠标支持
    set -g mode-keys vi # 开启vi风格后,支持vi的C-d、C-u、hjkl等快捷键
    
    • 1
    • 2

    参考

  • 相关阅读:
    TCP协议之《对端MSS值估算》
    艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口
    Bun v1.0.3 发布,Zig 编写的 JavaScript 运行时
    ::before 和 :after中双冒号和单冒号 有什么区别?解释一下这2个伪元素的作用
    React ajax
    android NDK交叉编译ffmpeg方法
    健康报告-设计与实现
    Apollo 应用与源码分析:CyberRT-protobuf
    【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(4)
    AcWing 836. 合并集合 —— 递推递归一起食用效果更佳哦~
  • 原文地址:https://blog.csdn.net/gengduc/article/details/133970116