Tmux 学习摘要1--使用默认配置进行基本操作

tmux 是一个运行于 OS X 和 Unix 上的终端分屏软件 terminal multiplexer

快捷键的表示及按键规则

  • CTRL-b: 同时按下 CTRL 键和 b
  • CTRL-R: 同时按下 CTRLSHIFTr
  • CTRL-b d: 同时按下 CTRL 键和 b 键,再松开,然后再迅速按下 d

安装

在 OS X 上:

$ brew install tmux

在 Debian 和 Ubuntu 上:

$ sudo apt-get install tmux

确定是否安装成功:

$ tmux -V

开启 tmux

开启 tmux 只需输入命令:

$ tmux

执行后会打开一个 tmux 会话,和普通的终端会话一样,可以在里面输入和执行任何命令。

要想从该 tmux 会话中退回到普通的终端,输入命令:

$ exit

以上的使用方式用处不大,应该使用 “命名会话”。

创建命名会话

一台机器上可以有多个会话,要使各会话组织有序,应对其命名。

创建一个命名为 basic 的会话:

$ 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 方向键 进行切换。

窗格布局模板

内置的几种布局模板:

  • even-horizontal: 从左到右水平平均布局
  • even-vertical: 从上到下垂直平均布局
  • main-horizontal: 上侧一个大窗格,其它的在下边
  • main-vertical: 左侧一个大窗格,其它的在右边
  • tiled: 所有窗格在屏幕上平均布局

可以用快捷键 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 | 在各窗格布局前切换

参考资源:

tmux: Productive Mouse-Free Development

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容