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

原文地址:https://www.cnblogs.com/haiiiiiyun/p/12565404.html

时间: 2024-10-09 17:32:26

Tmux 学习摘要1--使用默认配置进行基本操作的相关文章

Tmux 学习摘要6--工作流

高效使用窗口和窗格 将窗格转变成窗口 将当前窗格升级为一个独立的窗口,使用快捷键 PREFIX !,此后,当前会话中会多出一个窗口. 将窗口转变成一个窗格 在命令模式下使用 join-pane 命令,该命令的格式为: join-pane -s [souce-window-no] -t [target-window-no] -s 和 -t 两个参数都可以忽略,表示为当前的窗口或窗格. 最大化窗格与还原 将当前窗格放大,放在一个独立的窗口中显示,查看完之后再还原. 实现此功能,先将当前的窗格通过 b

Tmux 学习摘要5--结对编程

使用 tmux 进行结对编程的两种方式: 创建一个新帐户.在该新用户下创建 tmux 开发环境,其他组员和你共享这个新帐户,并在其下工作. 使用 tmux 的 sockets,使得其他人能连接到你的 tmux 会话. 这两种方式本质上都有安全隐患:别人会看到你屏幕上的内容.因此,较好的方法是在 VPS 或虚拟机(VirtualBox + Vagrant)上搭建开发环境用于结对编程共享. 共享帐户下的结对编程 这是一种最简单的方法.先在一台主机上开启 SSH 访问,然后在上面安装和配置 tmux,

Tmux 学习摘要2--配置

配置文件 系统范围的配置文件是 /etc/tmux.conf,而针对个人的配置文件在 ~/.tmux.conf. 通过配置文件,可以定义新的快捷键,定义窗口.窗格布局等. 绑定 CAPS LOCK 键到 CTRL 键 在 OS X 上:打开 Keyboard preference panel->System Preference,按下 Modifier 键,然后将 CAPS LOCK 的动作改为 Control. 在 Linux,需对键盘配置文件进行修改: sudo vi /etc/defaul

Tmux 学习摘要7--补遗

PREFIX ?: 列出所有的快捷键,它对应的命令行命令为 :list-keys. :list-commands 列出所有的 tmux 命令. :info 命令显示有关当前会话的信息:w. 将命令前缀改为 CTRL-SPACE 更加容易使用,但是输入法切换可能也会用这两个键,因此要进行修改设置. unbind C-b set -g prefix C-Space 方便切换到上一个窗口. bind-key L last-window :resize-pane -Z 命令将当前窗格进行最大化,当再次运

thinkphp学习笔记4—眼花缭乱的配置

1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展配置>动态配置,所以后面的配置权限要大于前面的,因为后面的配置会覆盖前面同名配置,同事会生辰配置缓存文件无需重复解析,减小开销. 惯例配置:在惯例配置内对大多数常用参数进行默认配置,因为惯例配置最先加载,优先级别最低,如果不需要做特殊配置的话,完全可以保持默认值,惯例配置位于ThinkPHP/Conf/convention.php,内容摘抄如下: &l

学习笔记——Maven settings.xml 配置详解

文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${user.home} 和和所有其他系统属性只能在3.0+版本上使用.请注意windows和Linux使用变量的区别. settings.xml详解 声明规范 <?xml version="1.0" encoding="UTF-8"?> <settings x

struts2学习笔记(6)------配置struts2中的异常处理

我们平常的异常处理是直接在方法中手动捕捉异常,当捕捉到特定异常后,返回特定逻辑视图名.这样的缺点是代码与异常处理耦合太多,一旦要改变异常处理方式,需要修改代码! struts2提供给了一种更好的方式来处理异常------声明式的方式管理异常处理,我们可以通过再方法里将出现的异常throw出去,抛给struts2框架处理,然后再struts2中默认开启着异常映射功能,该功能在struts-default.xml中配置的一个拦截器,如下: <interceptor name="exceptio

为什么默认配置下嵌套的VMware vSphere/ESXi上安装的虚拟机网络连接失败?

VMware vSphere/ESXi允许嵌套安装.所谓嵌套安装如下图所示,即将vSphere/ESXi虚拟化软件安装在vSphere/ESXi的虚拟机中.而在这样嵌套的vSphere/ESXi虚拟机上还可以部署虚拟机,然而在默认的配置中,这些虚拟机网络连接是失败的.本文将介绍其中的机理以及解决方法. 那么在默认配置下这些嵌套vSphere/ESXi上的虚拟机为什么网络不通呢?这要从vSphere/ESXi的虚拟网络交换机的工作原理说起.该虚拟交换机虽然被称作交换机但是与物理交换机的工作原理还是

struts2学习笔记(5)----------配置result

Action只负责处理请求,负责生成响应的视图组件,一般是JSP页面,而Action为JSP页面提供显示的数据.Action处理请求结束后,控制器根据<result>元素配置的逻辑视图跟物理视图之间的关系来响应. 浏览器,控制器和视图资源的顺序图如下: 如图所示,Action处理完一个请求后,并未直接把请求转发给任何具体的视图资源,而是返回给一个逻辑视图,struts2框架收到这个逻辑视图后,把请求转发到对应的物理视图资源,试图资源将结果呈现给用户. 1)result基本配置 struts2提