Tmux

1、Tmux简介

Tmux 就是会话与窗口的”解绑/绑定”工具。会话是用户与计算机之间的临时交互,与进程对应。窗口是接收/反馈输入输出的界面,例如一个terminal窗口,可以输入指令和显示指令执行结果。如果会话和窗口绑定了,那么关闭窗口,会话及其对应的进程都将被关闭。反之解绑后,即使窗口被误关闭,会话及其进程依然继续存在运行。

安装

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

# Mac
$ brew install tmux

启动和退出

# 自动新建一个会话和窗口并进入
$ tmux

# 退出当前窗口并删除窗口和会话,或Ctrl+d
$ exit

前缀键(prefix)

默认前缀键为Ctrl+b,可以修改

Tmux 的一些特点:

2、会话(session)

# 新建会话
$ tmux new -s <session-name> # tmux外使用
$ tmux # tmux外使用,默认名称0、1、2,依次递推

# 分离会话,退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行
$ tmux detach # tmux内使用
  Ctrl+b d # tmux内使用

# 显示所有会话
$ tmux ls #或者 tmux list-session,tmux外使用
  Ctrl+b s  # tmux内使用,可以快速切换会话

# 接入会话
$ tmux attach -t <session-name> # tmux外使用
$ tmux a -t <session-name> # tmux外使用

# 杀死会话
$ tmux kill-session -t <session-name> # tmux外使用

# 切换会话
$ tmux switch -t <session-name> # tmux内使用

# 重命名会话
$ tmux rename-session -t 0 <new-name>   # 将0号会话重命名。tmux外使用
  Ctrl+b $  # tmux内使用

3、窗口(window)

# 新建窗口
$ tmux new-window -n <window-name> # tmux内使用

# 切换窗口
$ tmux select-window -t <window-name> # tmux 内使用

# 重命名窗口
$ tmux rename-window <new-name> # tmux 内使用

# 窗口快捷键,tmux内使用
  Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
  Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
  Ctrl+b n:切换到下一个窗口。
  Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
  Ctrl+b w:显示所有窗口的列表,可从中选择进入某个窗口。
  Ctrl+b ,:重命名当前窗口。

4、窗格(pane)

# 划分窗格
--- 划分上下两个窗格
$ tmux split-window [-v] # 快捷键 Ctrl+b " 

--- 划分左右两个窗格
$ tmux split-window -h # 快捷键 Ctrl+b %

# 移动光标
$ tmux select-pane -U # 光标切换到上方窗格
$ tmux select-pane -D # 光标切换到下方窗格
$ tmux select-pane -L # 光标切换到左边窗格
$ tmux select-pane -R # 光标切换到右边窗格

  Ctrl+b <arrow key> # 快捷键

# 交换窗格位置
--- 当前窗格上移(和上一个窗格交换)
$ tmux swap-pane -U # 快捷键 Ctrl+b {

--- 当前窗格下移(和下一个窗格交换)
$ tmux swap-pane -D # 快捷键 Ctrl+b }

# 窗格快捷键
  Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
  Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
  Ctrl+b x:关闭当前窗格。
  Ctrl+b !:将当前窗格拆分为一个独立窗口。
  Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
  Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
  Ctrl+b q:显示窗格编号。

5、其他命令

# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys

# 列出所有 Tmux 命令及其参数
$ tmux list-commands

# 列出当前所有 Tmux 会话的信息,tmux内使用
$ tmux info

# 查看Tmux版本
$ tmux -V

# 重新加载当前的 Tmux 配置,tmux外使用
$ tmux source-file ~/.tmux.conf

# 鼠标翻页
  --- 方式一
  Ctrl+b [: 进入翻页状态,滚动鼠标翻页,q 退出翻页状态。xshell中 shift+鼠标滚轮 即可直接翻页

  --- 方式二,更改后右键粘贴有问题,复制粘贴需使用 ctrl+shift+c/v
  $ echo "set-option -g mouse on" >> ~/.tmux.conf # >>为追加,>为覆盖
  $ tmux source-file ~/.tmux.conf

5、保存和加载会话

参考