使用 tmux 打造更强大的终端
创始人
2024-03-01 19:32:36
0

一些 Fedora 用户把大部分甚至是所有时间花费在了命令行终端上。 终端可让您访问整个系统,以及数以千计的强大的实用程序。 但是,它默认情况下一次只显示一个命令行会话。 即使有一个大的终端窗口,整个窗口也只会显示一个会话。 这浪费了空间,特别是在大型显示器和高分辨率的笔记本电脑屏幕上。 但是,如果你可以将终端分成多个会话呢? 这正是 tmux 最方便的地方,或者说不可或缺的。

安装并启动 tmux

tmux 应用程序的名称来源于 终端 ( terminal ) 复用器 ( muxer ) 或 多路复用器 ( multiplexer ) 。 换句话说,它可以将您的单终端会话分成多个会话。 它管理窗口和窗格:

  • 窗口 ( window ) 是一个单一的视图 - 也就是终端中显示的各种东西。
  • 窗格 ( pane ) 是该视图的一部分,通常是一个终端会话。

开始前,请在系统上安装 tmux 应用程序。 你需要为您的用户帐户设置 sudo 权限(如果需要,请查看本文获取相关说明)。

sudo dnf -y install tmux

运行 tmux程序:

tmux

状态栏

首先,似乎什么也没有发生,除了出现在终端的底部的状态栏:

底部栏显示:

  • [0] – 这是 tmux 服务器创建的第一个会话。编号从 0 开始。tmux 服务器会跟踪所有的会话确认其是否存活。
  • 0:testuser@scarlett:~ – 有关该会话的第一个窗口的信息。编号从 0 开始。这表示窗口的活动窗格中的终端归主机名 scarletttestuser 用户所有。当前目录是 ~ (家目录)。
  • * – 显示你目前在此窗口中。
  • “scarlett.internal.fri” – 你正在使用的 tmux 服务器的主机名。
  • 此外,还会显示该特定主机上的日期和时间。

当你向会话中添加更多窗口和窗格时,信息栏将随之改变。

tmux 基础知识

把你的终端窗口拉伸到最大。现在让我们尝试一些简单的命令来创建更多的窗格。默认情况下,所有的命令都以 Ctrl+b 开头。

  • Ctrl+b, " 水平分割当前单个窗格。 现在窗口中有两个命令行窗格,一个在顶部,一个在底部。请注意,底部的新窗格是活动窗格。
  • Ctrl+b, % 垂直分割当前单个窗格。 现在你的窗口中有三个命令行窗格,右下角的窗格是活动窗格。

tmux window with three panes

注意当前窗格周围高亮显示的边框。要浏览所有的窗格,请做以下操作:

  • Ctrl+b,然后点箭头键
  • Ctrl+b, q,数字会短暂的出现在窗格上。在这期间,你可以你想要浏览的窗格上对应的数字。

现在,尝试使用不同的窗格运行不同的命令。例如以下这样的:

  • 在顶部窗格中使用 ls 命令显示目录内容。
  • 在左下角的窗格中使用 vi 命令,编辑一个文本文件。
  • 在右下角的窗格中运行 top 命令监控系统进程。

屏幕将会如下显示:

tmux session with three panes running different commands

到目前为止,这个示例中只是用了一个带多个窗格的窗口。你也可以在会话中运行多个窗口。

  • 为了创建一个新的窗口,请敲Ctrl+b, c 。请注意,状态栏显示当前有两个窗口正在运行。(敏锐的读者会看到上面的截图。)
  • 要移动到上一个窗口,请敲 Ctrl+b, p
  • 要移动到下一个窗口,请敲 Ctrl+b, n
  • 要立即移动到特定的窗口,请敲 Ctrl+b 然后跟上窗口编号。

如果你想知道如何关闭窗格,只需要使用 exitlogout,或者 Ctrl+d 来退出特定的命令行 shell。一旦你关闭了窗口中的所有窗格,那么该窗口也会消失。

脱离和附加

tmux 最强大的功能之一是能够脱离和重新附加到会话。 当你脱离的时候,你可以离开你的窗口和窗格独立运行。 此外,您甚至可以完全注销系统。 然后,您可以登录到同一个系统,重新附加到 tmux 会话,查看您离开时的所有窗口和窗格。 脱离的时候你运行的命令一直保持运行状态。

为了脱离一个会话,请敲 Ctrl+b, d。然后会话消失,你重新返回到一个标准的单一 shell。如果要重新附加到会话中,使用一下命令:

tmux attach-session

当你连接到主机的网络不稳定时,这个功能就像救生员一样有用。如果连接失败,会话中的所有的进程都会继续运行。只要连接恢复了,你就可以恢复正常,就好像什么事情也没有发生一样。

如果这些功能还不够,在每个会话的顶层窗口和窗格中,你可以运行多个会话。你可以列举出这些窗口和窗格,然后通过编号或者名称把他们附加到正确的会话中:

tmux list-sessions

延伸阅读

本文只触及的 tmux 的表面功能。你可以通过其他方式操作会话:

  • 将一个窗格和另一个窗格交换
  • 将窗格移动到另一个窗口中(可以在同一个会话中也可以在不同的会话中)
  • 设定快捷键自动执行你喜欢的命令
  • ~/.tmux.conf 文件中配置你最喜欢的配置项,这样每一个会话都会按照你喜欢的方式呈现

有关所有命令的完整说明,请查看以下参考:


作者简介:

Paul W. Frields 自 1997 年以来一直是 Linux 用户和爱好者,并于 2003 年加入 Fedora 项目,这个项目刚推出不久。他是 Fedora 项目委员会的创始成员,在文档,网站发布,宣传,工具链开发和维护软件方面都有贡献。他于2008 年 2 月至 2010 年 7 月加入 Red Hat,担任 Fedora 项目负责人,并担任 Red Hat 的工程经理。目前他和妻子以及两个孩子居住在弗吉尼亚。


via: https://fedoramagazine.org/use-tmux-more-powerful-terminal/

作者:Paul W. Frields 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

CentOS Bash S...
CentOS Bash Shell:从入门到高效操作的全面指南 B...
2025-05-09 06:17:17
史上最强“AI全家桶”!联...
2025-05-06 10:57:39 作者:狼叫兽 5月8日,...
2025-05-06 14:17:23
荣耀加速转型AI终端生态公...
近日,荣耀正式发布MagicBook Pro 16 2025,HU...
2025-05-05 20:16:32
荣耀发布轻薄静音游戏本,向...
4月30日,荣耀MagicBook Pro 16 2025发布,H...
2025-05-01 09:18:21
联想张豪:Think AI...
【环球网科技综合报道】“30余年间,Think始终陪伴着每一位善于...
2025-04-29 15:45:14
在CentOS系统执行纯文...
对于需要在服务器或低配置设备上部署操作系统的用户来说,选择文本模式...
2025-04-21 06:17:42

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...