做开发经常需要在各种环境中切来切去,回来的时候环境已经变了。Tmux 可以创建多个会话在不同环境中切换,回来的时候还是那个她,熟悉的味道。

什么是 Tmux

Tmux 的自述

tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

说人话 Tmux 是终端复用器,它使多个终端被创建,访问,并从单一屏幕控制。Tmux 可以从屏幕分离并继续在后台运行,然后重新连接。

Tmux 有什么用

举个例子: 你连上服务器后做了一会事情要回到本地做一些操作,通常做法是先断开服务器的连接,做完本地操作后再连上服务器继续操作。这样做太费事了。Tmux 就是解决这件事的,它可以让你不需要断开连接就可以在本地做你想做的,就算意外断开连接也能恢复。(当然关机就不行了,但是你可以通过写脚本来恢复)

怎么用

名字解释

  • Session:用来管理窗口的,一个 Session 可以包含多个 Window。
  • Window:当前正在操作的窗口,一个 Window 可以包含多个 Pane。
  • Pane:Window 被分割后的小窗口。
  • Prefix:前缀键 CTRL+b ,表示同时按下 CTRLb 。下文使用 Prefix 代替 CTRL+b

安装

Mac

1
brew install tmux

Linux(Ubuntu)

1
sudo apt install tmux

基本使用

安装好 Tmux 后在终端中输入 tmux 就可以开始使用,默认会创建一个 Session。

可以使用 tmux new -s name 在创建 Session 的时候并命名, name 就是该 Session 的名字

Session 相关

  • 新建 Session

Prefix :new -s name 其中 name 是 Session 的名字,这条指令是在 Tmux 的环境中使用,和基本使用中的不一样。这条指令表示先按下 Prefix(CTRL+b) ,松开之后再输入 :new -s name 。后面以此类推。

  • 列出当前 Session Prefix s,在终端环境中使用 tmux ls 查看
  • 暂时离开 Session Prefix d
  • 接入之前的 Session tmux a -t name,只有一个 Session 的时候可以省略 name (终端环境中)
  • 重命名 Session Prefix $
  • 关闭 Session Prefix :kill-session -t name

Window 相关

  • 新建 Window Prefix c
  • 列出当前 Window Prefix w
  • 重命名当前 Window Prefix ,
  • 关闭 Window Prefix &
  • 上一个 Window Prefix p
  • 下一个 Window Prefix n

Pane 相关

  • 水平分割 Window Prefix "
  • 垂直分割 Window Prefix %
  • 关闭 Pane Prefix x
  • 把 Pane 最大化 / 最小化 Prefix z
  • 把 Pane 移动到左边 Prefix {
  • 把 Pane 移动到右边 Prefix }
  • 切换到下一个 Pane Prefix o

Tips

  • 显示时间 Prefix t

参考