tmux的使用说明

tmux 是一个终端复用器,允许用户在一个单独的终端窗口中访问多个独立的终端会话。它是一种在没有图形界面的环境下管理多个终端会话的有效工具,非常适合远程工作和多任务处理。

tmux的作用:

  • 会话管理:允许用户在同一个窗口创建、访问和控制多个会话。
  • 窗口管理:每个会话可以包含多个窗口,便于组织和多任务操作。
  • 面板管理:在单个窗口中分割多个面板,每个面板都可以运行不同的命令。
  • 会话保持:即使远程连接断开,用户的会话也可以保持活跃,之后可以重新连接。
  • 脚本化和自动化:支持通过脚本控制窗口和面板,使自动化任务变得简单。

tmux的安装

sudo apt update
sudo apt install tmux

启动新会话:

tmux

或者命名会话:

tmux new -s session_name

离开会话:

按下 Ctrl+b 然后按 d(这会将当前会话放到后台运行)。
列出所有会话:

tmux ls

连接到现有会话:

tmux attach -t session_name

杀死会话:

tmux kill-session -t session_name

方法 1:使用快捷键

步骤一:激活 tmux 命令模式:

首先,确保你处于 tmux 会话中。然后,按下 Ctrl+b (这是 tmux 的默认前缀键)。

发送杀死会话的命令:

  1. 方式一:紧接着按下 & 键。这会触发一个提示,询问你是否真的想要杀死当前会话。通常,它会显示类似于 “kill-window bash? (y/n)”
    的消息。
  2. 方式二:如果会话中没有其它分屏,那用杀死pane(面板)的方式杀死会话,紧接着按下’y’。这会触发一个提示,询问你是否真的想要杀死当前面板。通常,它会显示类似于 “kill-pane 0? (y/n)”

确认操作:

按下 y 键以确认并关闭会话。如果你决定不关闭,可以按 nEscape 退出此提示。

方法 2:使用命令行

如果你知道当前会话的名称,或者你可以从另一个 tmux 窗口或会话中执行此操作,你可以使用以下命令:

tmux kill-session -t session_name

其中 session_name 是你想要结束的会话的名称。

除了创建,在其它指令中“session_name”只写与其它会话名不同的前面一个或多个字符也可以

创建新窗口:
按下 Ctrl+b 然后按 c(在当前会话中创建新窗口)。
选择窗口:
按下 Ctrl+b 然后按窗口编号(例如 0, 1, 2, …)。
关闭当前窗口:
按下 Ctrl+b 然后按 &
在窗口间切换:
按下 Ctrl+b 然后按 n (下一个窗口) 或 p (上一个窗口)。

使用 tmux attach 连接指定会话窗口

连接到会话:

tmux attach -t session_name

选择窗口:
一旦你连接到会话,你可以使用 Ctrl+b 然后按窗口编号来选择特定窗口。窗口编号通常在状态栏中显示,或者你可以使用 Ctrl+b w 来列出所有窗口并从列表中选择。
这样,即使在有多个窗口的情况下,你也可以方便地使用 tmux attach 来连接并选择你需要的窗口。

获取当前会话名称

如果你不确定当前会话的名称,或者名称太长在左下角显示不全,你可以在 tmux 中运行以下命令来显示全部:

tmux display-message -p '#S'

这将显示当前会话的名称

更改你的 tmux 会话名

进入命令模式:
tmux 中,首先按下 Ctrl+b 来激活命令模式。
输入命令:
然后按下冒号 : 进入命令行模式。
输入重命名命令:
在命令行中输入 rename-session 或简写为 rename,后跟新的会话名称。例如,如果你想将会话名称更改为 “my_new_session”,你应该输入:

rename-session my_new_session

或者

rename my_new_session

执行命令:
Enter 执行命令,你的会话名称将立即更改。
这是在 tmux 中更改当前会话名称的标准方法。这种更改对于组织多个会话或当你需要根据任务或项目更改会话名称以保持环境整洁时非常有用。

在tmux中分屏

tmux 中分屏是一项非常实用的功能,允许你在同一终端窗口内并行运行和监控多个会话。以下是如何在 tmux 中进行分屏的基本指南:

水平分屏(左右分割)

激活命令模式:
tmux 中,首先按 Ctrl+b(这是 tmux 的默认前缀键)。
分屏命令:
紧接着按 % 键。这将当前窗格水平分割成左右两个窗格。

垂直分屏(上下分割)

激活命令模式:
同样,首先按 Ctrl+b
分屏命令:
接着按 " 键(英文状态下的双引号键)。这将当前窗格垂直分割成上下两个窗格。

切换窗格

分屏后,你可能需要在不同窗格之间切换:
切换窗格:
Ctrl+b 然后按方向键(↑, ↓, ←, →)来切换到相应的窗格。

关闭窗格

如果你想关闭当前窗格:
关闭窗格:
Ctrl+b 然后按 x,然后系统会询问你是否真的想要关闭窗格,确认后窗格将被关闭。

调整窗格大小

有时候,你可能需要调整窗格的大小:
调整窗格大小:
Ctrl+b 然后使用 Ctrl+方向键(保持 Ctrl 键不放,按一次方向键)来调整窗格的大小。
这些是 tmux 中进行分屏和管理窗格的基本操作。通过这些操作,你可以有效地管理你的工作区,使多任务处理变得更加高效和有序。

解决打印的信息过多,前面的消息可能会因为滚动缓冲区的大小限制而消失的问题

在tmux的会话中,如果打印的信息过多,前面的消息可能会因为滚动缓冲区的大小限制而消失。为了解决这个问题,你可以考虑以下方法:

一、增加滚动缓冲区的大小

如果你发现默认的滚动缓冲区不足以容纳你需要的历史输出,你可以调整它的大小。在 tmux 配置文件(通常是 ~/.tmux.conf)中。

先看看配置文件内容

cat ~/.tmux.conf

如果打印 ~/.tmux.conf 文件不存在,这意味着你的用户目录下没有 tmux 配置文件。这是正常的,因为 tmux 并不会默认创建一个配置文件。你可以手动创建这个文件并自定义 tmux 的行为。

创建和配置 .tmux.conf 文件

打开终端:
确保你已经在一个终端窗口中。
使用文本编辑器创建文件:
你可以使用任何文本编辑器来创建 .tmux.conf 文件。例如,使用 nano

nano ~/.tmux.conf

这将打开 nano 文本编辑器,允许你开始输入配置。
添加配置:
在打开的编辑器中,你可以添加任何你想要的 tmux 配置。例如,如果你想设置滚动缓冲区的大小,可以添加以下行:

set -g history-limit 5000

这将设置滚动历史缓冲区为 5000 行。
保存并退出编辑器:
nano 中,按下 Ctrl+O 保存更改,然后按下 Ctrl+X 退出编辑器。

查看滚动缓冲区大小

1. 通过配置文件查看:

tmux的配置通常保存在用户的家目录下的.tmux.conf文件中。你可以打开这个文件查看是否已经有设置滚动缓冲区大小的配置。例如,配置文件中可能会有类似set -g history-limit 20000的行,这表示滚动缓冲区的大小被设置为20000行。

2. 通过tmux命令查看:

在tmux会话中,你也可以通过执行tmux show-options -g | grep history-limit命令来查看当前全局的滚动缓冲区大小设置。

设置滚动缓冲区大小

请注意,增加滚动缓冲区的大小会消耗更多的内存资源,因此应根据你的系统资源和需求进行合理设置。同时,定期清理和整理日志文件也是一个好习惯,以避免占用过多的磁盘空间。

1. 通过配置文件设置:

你可以编辑.tmux.conf文件,在其中添加或修改history-limit的设置。例如,如果你想将滚动缓冲区的大小设置为5000行,你可以在配置文件中添加或修改为set -g history-limit 5000

2. 通过tmux命令设置:

在tmux会话中,你也可以直接通过命令来设置滚动缓冲区的大小。执行tmux set-option -g history-limit 5000命令即可将全局的滚动缓冲区大小设置为5000行。

注意:tmux set-option命令修改的是当前tmux会话或全局的运行时配置,而不会更改配置文件本身,在其它会话中并不起作用。如果永久地更改history-limit设置,您需要手动编辑配置文件。

3. 重新加载配置或重启tmux:

在修改了配置文件后,为了让新的设置生效,你需要在tmux会话中执行tmux source ~/.tmux.conf命令来重新加载配置文件,或者简单地退出并重新启动一个新的tmux会话。
请注意,以上步骤中的数字(如5000)仅为示例,你可以根据自己的需求设置为其他值。另外,这些设置是全局的(由-g标志指定),意味着它们将应用于所有的tmux会话。如果你只想针对特定的会话或窗口进行设置,可以去掉-g标志并相应地调整命令。

二、使用 tmux 的滚动模式来查看历史输出

当你在 tmux 的会话中产生大量输出时,确实可能会发现旧的信息因为超出了滚动缓冲区的限制而消失。为了查看这些超出屏幕的信息,你可以使用 tmux 的滚动模式来查看历史输出。

启用滚动模式

激活命令模式:
首先,在 tmux 会话中按下 Ctrl+b(这是 tmux 的默认前缀键)。
进入复制模式(滚动模式):
然后按 [ 键。这将使 tmux 进入复制模式,也被称为滚动模式,你可以在这个模式中使用键盘方向键(↑, ↓, ←, →)来滚动查看过去的输出。

滚动和查看历史输出

使用方向键:
在复制模式中,你可以使用方向键来上下左右滚动查看历史信息。
使用页面键:
你也可以使用 Page UpPage Down 键来快速滚动查看更多的历史输出。

退出复制模式

退出复制模式:
按下 q 键可以退出复制模式,返回到正常的 tmux 会话视图。

三、保存输出到文件:

保存tmux会话中的输出到文件可以通过几种不同的方法来实现,下面将详细说明这些步骤:

方法一:使用Shell重定向

启动tmux会话:
首先,你需要启动一个tmux会话或在已有的会话中工作。
运行命令并重定向输出:
在tmux的窗格(pane)中,运行你想要执行的命令,并使用shell的重定向功能将输出保存到文件。例如:

command > output.log 2>&1

这里,command是你想要运行的命令,output.log是你想要保存输出的文件名。2>&1表示将标准错误(stderr)也重定向到标准输出(stdout)所指向的文件。
查看输出文件:
命令执行完毕后,你可以使用文本编辑器或cat、less等命令查看output.log文件中的内容。

方法二:使用tmux的捕获和保存功能

进入tmux会话:
同样,首先确保你已经在tmux会话中。
捕获窗格内容:
使用tmux的capture-pane命令来捕获当前窗格的内容。例如:

tmux capture-pane -S -32768

这个命令会将当前窗格中的内容捕获到一个tmux缓冲区中。-S -32768表示从窗格的历史记录开始处捕获。
保存缓冲区内容到文件:
接下来,使用save-buffer命令将缓冲区的内容保存到文件中。例如:

tmux save-buffer output.log

这会将缓冲区的内容保存到名为output.log的文件中。
查看输出文件:
与方法一相同,你可以使用文本编辑器或相关命令查看保存的输出文件。

注意事项 确保你有足够的权限在当前目录下创建和写入文件。 如果文件已存在,使用>会覆盖原有内容,而>>则会追加内容到文件末尾。
在使用tmux的捕获功能时,请注意缓冲区的大小可能有限制,可能无法保存过多的历史记录。
这些方法适用于保存文本输出。如果命令产生的是二进制输出或特殊字符,可能需要额外的处理步骤来正确保存和查看文件内容。
通过以上方法,你可以有效地将tmux会话中的输出保存到文件中,以便后续查看和分析。

四、使用tmux的日志功能:

使用tmux的日志功能,可以帮助你记录tmux会话中的活动,这对于后续的审计、调试或记录非常有用。以下是详细步骤和说明:

1. 开启日志功能

要在tmux中开启日志功能,你可以使用pipe-pane命令。这个命令允许你将窗格的输出通过管道传输到一个指定的命令或文件中。为了记录日志,你通常会想要将输出追加到一个文件中,可以使用如下命令:

tmux pipe-pane -o "cat >> ~/tmux_logs/my_session.log"

这条命令会将当前窗格的输出追加到~/tmux_logs/my_session.log文件中。如果文件或目录不存在,你需要先创建它们,否则命令可能会失败。

2. 确认日志记录

开启日志功能后,你可以通过在窗格中执行一些命令来测试日志是否正在记录。例如,输入ls或date等命令,并检查日志文件是否包含了这些命令的输出。

3. 停止日志记录

当你想要停止日志记录时,可以使用unpipe-pane命令:

tmux unpipe-pane

这将停止将窗格的输出追加到日志文件。

4. 查看日志文件

你可以使用任何文本编辑器或cat、less、tail -f等命令来查看日志文件的内容。例如:

cat ~/tmux_logs/my_session.log

或者使用tail命令实时查看日志的更新:

tail -f ~/tmux_logs/my_session.log

5. 注意事项和高级用法

日志文件管理:长时间记录日志可能会导致日志文件变得非常大,因此需要定期管理和清理日志文件,以避免占用过多的磁盘空间。
日志轮转:你可以考虑使用日志轮转工具(如logrotate)来自动管理日志文件的大小和数量。
自定义日志格式:如果你需要对日志进行更复杂的处理,比如添加时间戳或过滤特定信息,你可以在pipe-pane命令中使用更复杂的管道命令或脚本来处理输出。
安全性:记录日志时需要注意敏感信息的保护,确保不要记录包含密码、密钥等敏感数据的输出。
总的来说,tmux的日志功能是一个强大的工具,可以帮助你记录和审计tmux会话中的所有活动。通过合理地使用和管理这个功能,你可以提高工作效率并确保重要信息不被遗漏。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值