04 - Tmux - 终端机管理工具

在开发时,常常需要多个指令同时运作(例如一个启动前端专案、一个启动後端专案),因此会需要同时开启多个终端执行指令,并观察各个指令的运作情形。而在多个终端机同时开启的情况下,开发者是很难有效地管理各个终端机视窗,在难以控管的状态下,开发的效率就会因此大打折扣。

而终端的当前状态的保存也是一大问题,在关闭终端机的程序,并重新启动终端机後,会发现之前的状态已经不存在了,原本在终端机中执行的指令,也会因为终端机的关闭而停止,使得开发陷入麻烦。

这时,使用终端机的管理工具 Tmux 就可以解决上述的问题。

终端的多工工具 Tmux

https://ithelp.ithome.com.tw/upload/images/20210920/20107789FY6ZSMdV0F.png

Tmux 是个终端机的管理工具,它让使用者可以在单一个终端机应用程序中操作多个终端,并且会纪录每个终端的状态,就算是关闭了终端机应用程序,只要 Tmux 应用依然在运作,就可以随时地重新叫出保存着状态的终端机。

概念说明

在启动 Tmux 时,它会启动一个 Server ,这个 Server 可以包含多个 Session ,每个 Session 可以控管多个 Window ,而一个 Window 内可以有多个 Pane

https://ithelp.ithome.com.tw/upload/images/20210920/20107789cs9svWqhFd.png

  • Server : Server 用来管理 Session ,只要 Server 没有被关闭,所有终端的状态就不会丢失。
  • Session : Session 由 Window 组成,它可以包含多个 Window ,是 Tmux 控管的最大单位。
  • Window : Window 由 Pane 组成,它可以包含多个 Pane ,是视窗中单一可视的最大单位。
  • Pane : 每个 Pane 都是个终端。

安装 Tmux

使用 Homebrew 安装 Tmux :

brew install tmux

输入 tmux 指令,即会进入 Tmux 内。

https://ithelp.ithome.com.tw/upload/images/20210920/201077893RfE2wZDTW.png

如果 Tmux 正常启动,最下面应该会出现一行绿色底的列,这是 Tmux 的状态列。

指令

Tmux 的指令都会由 prefix 开始,预设是 Control-B ,接着会使用指令操作 Tmux 。

Pane 的常用指令

在 Tmux 内部可以使用下列的指令操作 Pane :

指令 动作
Control-B % 将当前 Pane 垂直分割为两个 Pane
Control-B " 将当前 Pane 水平分割为两个 Pane
Control-B z 将当前的 Pane 放到最大,如果已在最大的状态,则会恢复原状
Control-B Option Up/Bottom/Left/Right Arrow 将当前 Pane 依照方向键的方位重新分配大小
Control-B <space> 重新分配 Panes 的配置
输入 exit 指令 关闭 Pane

https://ithelp.ithome.com.tw/upload/images/20210920/20107789jtAMTxj9KJ.png

Window 的常用指令

在 Tmux 内部可以使用下列的指令操作 Window :

指令 动作
Control-B c 建立新的 Window
Control-B & 关闭目前的 Window
Control-B n 转至下一个 Window
Control-B p 转至上一个 Window
Control-B 0-9 转至编号为 0-9 的 Window
Control-B w 开启 window 列表

https://ithelp.ithome.com.tw/upload/images/20210920/20107789kjJMCmZtYR.png

Session 的常用指令

终端机中可以使用下列指令操作 Session :

指令 动作
tmux new-session 建立新的 Session 并进入
tmux list-session 列出目前的 Session
tmux attach -t 0 进入编号为 0 的 Session
tmux kill-session -t 0 删除编号为 0 的 Session

在 Tmux 内部可以使用下列的指令操作 Session :

指令 动作
Control-B d 离开此 Session ,回到终端机
Control-B $ 重新命名 Session
Control-B ( 转至上一个 Session
Control-B ) 转至下一个 Session
Control-B s 开启 Session 列表

Server 的常用指令

在终端机中可以使用下列指令操作 Server :

指令 动作
tmux kill-server 删除 Server ,所有的 Session 都会被删去

本文重点整理

  • 终端机缺乏多终端的管理。
  • Tmux 是个终端机的管理工具。
  • Tmux 会将终端机依照 Session 、 Window 与 Pane 切分。
  • Tmux 的 Server 控制多个 Session ,只要 Server 存在,所有的终端状态都会被记录。
  • Pane 为一个终端,是 Tmux 可以控制的最小单位。

参考资料


<<:  DAY 8- 《区块密码1》DES(2)- 密钥生成及安全性

>>:  Day6 Python基础语法四

全端入门Day02_何谓全端之前端首篇

今天要来介绍全端 全端的意思简单来说就是前端+後端,那什麽是前端什麽又是後端呢? 今天就先为大家介绍...

[Day26] Esp32s + IFTTT + LINE - (程序码讲解)

1.前言 昨天那篇教各位学会使用IFTTT结合Line,当时传输资料时是透过Line Notify的...

超级好用的avast删除方法

你想从 Mac 中删除 Avast 吗? 事实上,卸载 Avast 并不像其他程序那麽容易。 许多用...

在 Lubuntu 18.04 上安装 CodeBlocks IDE 17.12

写程序,弄个 IDE 真的会方便不少,如果您是要在 ubuntu 20.04 上面使用 Code::...

Day 5 - 断点设定

Tailwindcss 使用 normalize.css 来当作初始化样式,和 Bootstrap...