tmux 是一个运行于 OS X 和 Unix 上的终端分屏软件 terminal multiplexer。shell
CTRL-b
: 同时按下 CTRL
键和 b
键CTRL-R
: 同时按下 CTRL
、SHIFT
和 r
键CTRL-b d
: 同时按下 CTRL
键和 b
键,再松开,而后再迅速按下 d
键在 OS X 上:windows
$ brew install tmux
在 Debian 和 Ubuntu 上:服务器
$ sudo apt-get install tmux
肯定是否安装成功:session
$ tmux -V
开启 tmux 只需输入命令:布局
$ tmux
执行后会打开一个 tmux 会话,和普通的终端会话同样,能够在里面输入和执行任何命令。命令行
要想从该 tmux 会话中退回到普通的终端,输入命令:code
$ exit
以上的使用方式用处不大,应该使用 “命名会话”。htm
一台机器上能够有多个会话,要使各会话组织有序,应对其命名。进程
建立一个命名为 basic 的会话:ip
$ tmux new-session -s basic
也能够用简写的命令:
$ tmux new -s basic
tmux 是一个 CS 模式的程序,当开启一个 tmux 会话时,会话就是一个服务器。全部在该会话环境中开启的程序和进程都由这个会话服务器管理。当你与该会话 “脱离” 时,因为会话尚未结束,这些开启的程序和进程都会在后台继续运行。以后,咱们能够从新 “关联” 该会话,继续以前的工做。
示例:
先建立一个命名会话:
$ tmux new -s basic
在该会话中,开启一个 top 命令:
$ top
而后使用快捷键 CTRL-b d
从当前会话中脱离出来,脱离后,会回到普通的终端中。
CTRL-b d
快捷键的正确按法是:先同时按下 CTRL
键和 b
键做为 tmux 命令的前缀,再所有松开按键,而后迅速按下表明 tmux 命令的 d
键,将 d 命令发送给 tmux。
tmux 的默认命令前缀是 CTRL-b
,记为 PREFIX
,能够对该设置进行再绑定。
列出当前机器上的所有会话:
$ tmux list-sessions
也能够用简写命令:
$ tmux ls
该命令会显示当前只有一个会话:
basic: 1 windows (created Sat Jul 30 09:48:32 2016) [80x23]
要想关联现有的会话,若是只有一个会话的话,直接:
$ tmux attach
先用 PREFIX d
从当前会话脱离,再建立一个新的会话但不自动关联:
tmux new -s second_session -d
此时罗列会话命令会出来有两个会话:
tmux ls
basic: 1 windows (created Sat Jul 30 09:48:32 2016) [80x23] second_session: 1 windows (created Sat Jul 30 09:52:31 2016) [80x23]
能够用 -t
(target?) 选项来指定关联的会话:
$ tmux attach -t second_session
在 tmux 会话内部,能够用 exit
命令直接销毁和退出当前会话。在普通终端下也能够用 kill-session
进行:
$ tmux kill-session -t basic $ tmux kill-session -t second_session
若是某个会话中有僵死的程序,能够用这个方法来关闭整个会话。
在一个 tmux 会话中能够同时运行多个程序,tmux 在会话中可使用多窗口对多个程序进行有序组织和管理。
当开启一个会话时,会自动建立一个初始窗口,以后,在会话中能够再建立更多的窗口。
建立一个命名为 windows 的会话,并将第一个(默认)窗口命名为 shell:
$ tmux new -s windows -n shell
在会话中,使用快捷键 PREFIX c
建立一个新的窗口。并在该窗口中运行 top
命令。注意到,该窗口的名称是基于运行的程序而动态变化的。为方便管理,应对其显式命名,方法是在使用快捷键 PREFIX ,
后,在状态栏中输入名称,如 Processes。
当前焦点窗口的窗口名上会有一个 *
号。窗口切换能够用如下快捷键:
PREFIX n
: 移到下一个(可往复循环)PREFIX p
: 移到上一个(可往复循环)PREFIX 编号
: 直接移到某编号的窗口,如 PREFIX 0
PREFIX f
: 根据窗口名来定位PREFIX w
: 显示出一个含有全部窗口名称的列表窗口,供选择切换要关闭当前窗口,在窗口中直接运行 exit
命令。也能够用快捷键 PREFIX &
,它会在状态栏进行确认操做。当全部窗口都关闭后,会话也随之关闭。
一个窗口能够分割成多个窗格。并在每一个窗格中运行不一样程序。
建立一个新的会话,练习多窗格操做:
$ tmux new -s panes
窗格分割快捷键:
PREFIX %
: 水平平均分割PREFIX "
: 垂直平均分割在各窗格间切换焦点,用快捷键 PREFIX o
,也能够用 PREFIX 方向键
进行切换。
内置的几种布局模板:
能够用快捷键 PREFIX SPACEBAR
依次在各布局模板间切换。
用快捷键 PREFIX x
。
当前使用的快捷键都是 tmux 命令的快捷键。tmux 命令便可以在终端命令行中运行,也能够和 VI 相似,在命令模式下的状态行中运行。
在会话中,进入命令模式用快捷键 PREFIX :
, 此时,能够在状态栏中运行相应的 tmux 命令,如建立一个命名为 console 的新窗口: new-window -n console
。
建立一个命名窗口,同时执行 "top" 命令: new-window -n processes "top"
,这样建立的窗口当窗口中的命令执行完毕后,窗口会自动关闭。
快捷键 PREFIX ?
列出全部的快捷键。
建立会话的命令:
命令 | 描述 |
---|---|
tmux new-session | 建立一个匿名会话,能够简写为 tmux new 或直接 tmux |
tmux new -s devel | 建立一个命名为 "devel" 的会话 |
tmux new -s devel -n editor | 建立一个名称为 "devel" 的会话,且将第一个窗口命名为 "editor" |
tmux attach -t devel | 关联到名为 "devel" 的会话 |
关于会话、窗口、窗格的默认命令
命令 | 描述 |
---|---|
PREFIX d | 脱离会话,会话会在后台继续运行 |
PREFIX : | 进入命令模式 |
PREFIX c | 在会话中建立一个新窗口,对应 tmux 命令 new-window |
PREFIX 0...9 | 根据窗口编号在窗口中切换 |
PREFIX w | 显示出当前会话中全部的窗口,供选择切换 |
PREFIX , | 命名当前窗口 |
PREFIX & | 关闭当前窗口 |
PREFIX % | 水平平均分割窗口 |
PREFIX " | 垂直平均分割窗口 |
PREFIX o | 在多个窗格间循环切换 |
PREFIX q | 显示窗格的编号 |
PREFIX x | 关闭当前窗格 |
PREFIX SPACE | 在各窗格布局前切换 |
参考资源: