一文了解终端神器tmux

本文总结一下tmux常用技巧,方便自己查阅。

1 简介

tmux 是一个终端复用器,非常有用,有如下两个最明显的优点:

  1. 分屏
  2. 允许断开Terminal连接后,继续运行进程。(这样网络断开重连后,可以重新登录之前的工作界面)

这段引用阮一峰《Tmux 使用教程》,链接见参考。

Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。

(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。

2 tmux的安装及使用

2.1 tmux的安装

Ubuntu上:

sudo apt-get install tmux

2.2 tmux的几个组件

tmux使用C/S模型构建,主要包含这几个模块:

模块 含义
server 服务器,输入tmux命令时就开启了一个服务器。
session 会话,一个服务器可以包含多个会话,可理解为任务。
window 窗口,一个会话可以包含多个窗口。
panel 面板,一个窗口可以包含多个面板。

这几个组件形成了树状关系,如下图所示:

         server
        /       \
    session
    /
  window
/
panel

这样就实现了复杂的终端复用器,其各个组件的操作如下:
(基本是一条命令与一个快捷键对应,掌握常用的几个命令即可)

server操作:

删掉server:

tmux kill-server # 相当于删掉所有session

session操作:

作用 命令 快捷键
启动 tmux # 会自动生成一个id为0的session
或:
tmux new -s your-session-name # 建立时显式地说明session的名字
注意:不能嵌套创建session
删除session tmux kill-session -t your-session-name ctrl+d
解绑 tmux detach ctrl+b d
接入会话 tmux attach -t your-session-name
切换session tmux switch -t your-session-name
重命名session tmux rename-session -t old-session new-session Ctrl+b $
列出session tmux ls
或: tmux list-session
ctrl+b s

window操作:

作用 命令 快捷键
新建window tmux new-window
或:
tmux new-window -n your-window-name
ctrl+b c
刪除window tmux kill-window -t window-number ctrl+b &
切换窗口 tmux select-window -t ctrl+b p # 切换到上一个窗口
ctrl+b n # 切换到下一个窗口
ctrl+b w # 从列表中选择窗口
重命名窗口 tmux rename-window -t old_name new_name ctrl+b ,

panel操作:

作用 命令 快捷键
划分为左右两个窗格 tmux split-window ctrl+b %
划分为上下两个窗格 tmux split-window -h ctrl+b “
关闭panel tmux kill-pane Ctrl+b x
移动光标 tmux select-pane -U 光标切换到上方窗格
tmux select-pane -D 光标切换到下方窗格
tmux select-pane -L 光标切换到左边窗格
tmux select-pane -R 光标切换到右边窗格
Ctrl+b 上下左右键,鼠标见第3节
上下翻屏 ctrl+b [ 上下键 pageUp pageDown

2.3 tmux的一般操作流程

一般的使用流程:

  1. 新建会话tmux new -s my_session
  2. 在 Tmux 窗口运行所需的程序
  3. 按下快捷键Ctrl+b d将会话分离
  4. 下次使用时,重新连接到会话tmux attach-session -t my_session。

3 tmux的快捷键

Tmux 窗口有大量的快捷键,所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。

列出所有快捷键,及其对应的 tmux 命令:

tmux list-keys

3.1 怎么修改前缀键?

使用Ctrl+b并不是很顺手,可以自定义前缀键,如将ctrl+b修改为ctrl+x可进行如下操作:

方法1: 在命令行下输入如下命令

$ tmux set -g prefix C-x

方法2:修改配置文件

$ vi ~/.tmux.conf
set -g prefix C-x
unbind C-b
bind C-x send-prefix
$ tmux source  ~/.tmux.conf

3.2 启用鼠标控制

tmux2.1 之后版本可以这么设置,这样就可以用鼠标选择panel了

$ vi ~/.tmux.conf
set-option -g mouse on
$ tmux source  ~/.tmux.conf

开启了鼠标控制后,会发现---无法直接通过鼠标来选择复制文字了
可以用Shift+鼠标选择,多panel情况下,Shift+Alt+鼠标选择

4 一些问题的解决办法

问题1:有时候 tmux 突然中断之后,再次进入时,会发现屏幕被限制在了一个很小的范围内,其他的地方全部变成了点 “.”, 或者“烫”
解决办法:进入时使用 -d 参数

问题2:Ubuntu的tmux环境,复制东西到tmux上,鼠标右键粘贴不了
解决办法: 按住shift键,然后鼠标右键粘贴

参考:

1 Tmux详细 使用教程

2 Tmux教程 (一文就够)

3 Tmux 使用教程

posted @ 2022-10-05 00:35  sureZ_ok  阅读(832)  评论(0编辑  收藏  举报