tmux 使用指南:一款实用的终端复用器


阿拉平平

读完需要

8

分钟

速读仅需 3 分钟


tmux[1] 是一个开源的终端复用器。通过该工具,我们可以在单个窗口中创建多个会话。由于每个会话都是独立的,这在运行多个任务时会非常方便。本文将介绍 tmux 的安装和使用方法。


1. 源码安装


   

tmux 可以通过二进制包安装。以 CentOS 7 为例,运行以下命令进行安装:
yum install -y tmux
虽然用这种方式安装很方便,但最终安装的包很可能不是最新的。如果想体验最新版本的 tmux,就需要通过源码来安装。接下来,我将使用源码编译安装 3.2a 版本的 tmux。

在安装前,需要安装依赖包:

# 删除老包
yum remove libevent libevent-devel libevent-headers

# 安装 ncurses
yum install ncurses-devel

# 下载并安装 libevent
cd /opt
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -zxf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure
make && make install
ln -s /usr/local/lib/libevent-2.1.so.7 /usr/lib64/libevent-2.1.so.7
ln -s /usr/local/lib/libevent_core-2.1.so.7 /usr/lib64/libevent_core-2.1.so.7

依赖包安装好后,再安装 tmux:

cd /opt
wget https://github.com/tmux/tmux/releases/download/3.2a/tmux-3.2a.tar.gz
tar -zxf tmux-3.2a.tar.gz
cd tmux-3.2a
./configure
make && make install

安装好后,检查下 tmux 的版本:

tmux -V
tmux 3.2a


2. 使用说明


   

tmux 有三个概念比较重要:会话、窗口和窗格。理解了这些概念后,使用起来会更加得心应手。接下来。让我们看看要如何使用 tmux。


2.1 会话


   

什么是会话呢?要回答这个问题,先想想我们平时是怎样使用命令行的。我们打开一个终端窗口,然后输入命令和计算机交互。交互完成后,关闭窗口。

这种临时的交互就是一次会话。通常来说,我们打开一个窗口,会话开始;关闭窗口,会话结束。看上去,窗口和会话是绑定的(一对一)。tmux 可以将窗口和会话解绑,从而形成多对多的对应关系。

不太理解?没关系,我们从新建一个会话开始:

tmux new -s <session-name>

这里我创建了一个名为 test 的会话,底部的信息提示我们已在该会话窗口中:

tmux 使用指南:一款实用的终端复用器

在这个会话窗口中,我们可以执行耗时的任务,然后输入以下命令分离当前的窗口和会话:

tmux detach

命令执行后,会话窗口被关闭,我们回到了最初的窗口:

tmux 使用指南:一款实用的终端复用器

可以使用 tmux ls 命令查看所有会话:

tmux 使用指南:一款实用的终端复用器

可以看到,虽然窗口被关闭了,但会话还在。如果需要重新进入之前的会话,可以使用 tmux attch 命令,具体用法如下:

tmux attach -t <session-name>

当然,如果会话中的任务执行完成,我们也可以关闭该会话。在会话窗口外,输入命令 tmux kill-session -t <session-name> 即可。


2.2 前缀键


   

除了执行耗时的任务,我们也可以在会话中运行服务。如果以前台方式运行服务,会话窗口的输入会被占用,此时无法通过命令来分离窗口和会话。

tmux 的会话窗口有大量的快捷键,所有的快捷键都需要通过前缀键 Ctrl+b 唤起。

举个例子,分离的快捷键是 Ctrl+b d。具体的用法是,在会话窗口中先按下 Ctrl+b,松开后再按 d

tmux 使用指南:一款实用的终端复用器

更多的快捷键可以通过 Ctrl+b ? 来查询。


2.3 窗口


   

默认情况下,tmux 新建的会话只会创建一个窗口,然而我们总会遇到一个窗口不够用的情况。tmux 允许在同一个会话中创建多个窗口。

新的窗口可以通过 tmux new-window 或者 Ctrl+b c 来创建:

tmux 使用指南:一款实用的终端复用器
创建窗口后,我们可以通过 tmux select-window -t <window-number> 切换窗口。但相较于命令,我更喜欢用快捷键,一些窗口操作的快捷键如下:
  • Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。

  • Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。

  • Ctrl+b n:切换到下一个窗口。

  • Ctrl+b:切换到指定编号的窗口,其中的是状态栏上的窗口编号。

  • Ctrl+b w:从列表中选择窗口。

  • Ctrl+b ,:窗口重命名。


2.4 窗格


   

除了窗口,tmux 还有窗格的概念。一个窗口可以拆分成多个窗格,不同的命令可以在不同的窗格中执行。

在一个窗口中,可以通过 tmux split-window 或者快捷键进行拆分:

tmux 使用指南:一款实用的终端复用器
关于窗格的快捷键如下:
  • Ctrl+b %:划分左右两个窗格。

  • Ctrl+b “:划分上下两个窗格。

  • Ctrl+b:光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键 ↓。

  • Ctrl+b ;:光标切换到上一个窗格。

  • Ctrl+b o:光标切换到下一个窗格。

  • Ctrl+b {:当前窗格与上一个窗格交换位置。

  • Ctrl+b }:当前窗格与下一个窗格交换位置。

  • Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。

  • Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。

  • Ctrl+b x:关闭当前窗格。

  • Ctrl+b !:将当前窗格拆分为一个独立窗口。

  • Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。

  • Ctrl+b Ctrl+:按箭头方向调整窗格大小。

  • Ctrl+b q:显示窗格编号。


2.5 配置


   

以上就是 tmux 的基本用法了。不过在使用的过程中,我忍不住要吐槽一下。

  1. 会话窗口的底部信息是很重要的提示,但是显示起来既不美观也不直观。

  2. 快捷键是高频使用的功能,前缀键绑定 Ctrl+b 导致操作非常不便。

对于上述问题,我们可以修改 tmux 的配置文件来解决。这里我推荐一个开源的 置文件[2],使用方法可以参考官方的说明文档。

这个配置美化了底部信息的显示效果,并新增了前缀键 Ctrl+a

tmux 使用指南:一款实用的终端复用器


3. 写在最后


   

在理解了核心概念后,tmux 上手其实并不困难,不过一些常用的命令和快捷键确实需要花点时间熟悉下。此外,tmux 虽然很强大,但我发现有些命令在会话窗口中是无法使用的,比如:lrzsz。

文中部分内容参考参考了网上的一些文档,有兴趣的同学可以看下阮一峰老师的 Tmux 使用教程[3],写得清晰易懂。

References

[1] Tmuxhttps://github.com/tmux/tmux
[2] 配置文件: https://github.com/gpakosz/.tmux
[3] Tmux使用教程http://www.ruanyifeng.com/blog/2019/10/tmux.html

原文始发于微信公众号(阿拉平平):tmux 使用指南:一款实用的终端复用器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/287524.html

(0)
码上实战的头像码上实战

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!