Tmux

2022-03-28

Tmux 是一个开源的终端复用器 (terminal multiplexer),可以在一个窗口中管理多个会话,每个都会话都运行着独立的进程或程序,即使在关闭窗口后或是断开连接后,仍然会继续运行。

当执行 tmux 命令时会启动一个 Tmux 服务,并创建一个默认的会话,在这个会话中可以创建多个窗口,每个窗口中可以有多个面板。

安装

[[macOS]] 上使用 [[brew]] 安装:

Terminal window
brew install tmux

[[Linux]] 上使用 [[apt]] 安装:

Terminal window
sudo apt install tmux

可以安装 [[ohmytmux]] 改善体验。

命令

终端命令

在终端中所有命令都必须加 tmux 前缀,比如创建新会话完整命令为: tmux new -s test

  • -V:查看版本

at

连接会话

Terminal window
# 不指定会话名,连接上一个会话
tmux at
# 连接指定会话
tmux at -t test
  • -t: 连接到指定会话

new

创建新的会话。

Terminal window
tmux new -s test
  • -s: 创建会话并命名
  • -c: 在指定的目录中启动会话 (new -c ~/Desktop)
  • -d: 后台运行

ls

查看当前存在的会话

Terminal window
# 列出所有打开的会话
tmux ls -a
  • -a: 列出所有打开的会话 ls -a

kill-session

关闭会话

Terminal window
kill-session -t test
  • -t: 指定会话

命令行模式命令

进入命令行模式 prefix + :

set

设置配置

Terminal window
set -g mouse on
  • -g: 全局设置
  • -s: 会话级别,只影响当前会话

另外还有 setw -g 表示设置窗口级别的全局选项。

常用设置:

  • set -g mouse on: 开启鼠标支持
  • set -g base-index 1:设置窗口编号从 1 开始
  • set -g status-interval 10:状态栏刷新时间
  • set -g renumber-windows on:关闭窗口时,重新编号
  • setw -g pane-base-index 1:设置面板编号从 1 开始
  • setw -g automatic-rename on:重命名窗口显示当前应用

new-windows

创建新会话

Terminal window
# 创建新会话
new-windows -n ops
# 在新会话执行指定命令,当命令结束后窗口将一起关闭
new-windows -n ops "top"
  • -n: 创建新会话并命名

show

查看指定配置。

Terminal window
# 查看有没有开启鼠标支持
show -g mouse
  • -g: 全局设置
  • -s: 会话级别

配置

快捷键

  • Ctrl + l: 清屏

Tmux 所有快捷键均需先按下前缀键(默认 Ctrl + B )才有效:

命令默认快捷键ohmytmux 快捷键
列出粘贴缓存b
从缓存区粘贴(第一条)p
从缓存区选择粘贴P
切换鼠标支持(默认关)m
编辑配置e
重载配置r
列出提示信息缓存~
进入命令行模式:
列出所有快捷键?

会话 Sessions

命令默认快捷键ohmytmux 快捷键
创建会话cCtrl + c
脱离会话,返回到 Shell 界面d
选择要脱离的会话D
列出会话(选择并切换)s
查找会话fCtrl + f
强制重绘未脱离的会话r
重命名$
挂起当前会话Ctrl + z

窗口 Windows

命令默认快捷键ohmytmux 快捷键
创建新窗口c
关闭当前窗口&
显示窗口列表w
显示窗口信息i
切换到上一个活动窗口pCtrl + h
切换到最后个活动窗口nTab

面板 Panes

命令默认快捷键ohmytmux 快捷键
水平分割%_
垂直分割-
顺时针切换焦点o
按顺序切换焦点h,j,k,l
调整面板大小H,J,K,L
显示时间t

文件配置

修改后可以进入命令行模式后,使用 source-file ~/.tmux.conf 重载配置。

参考