【生信入门笔记】| 轻松掌握 tmux,提升重测序数据分析后台任务执行效率

文摘   科技   2024-10-12 23:36   甘肃  

本文为个人学习整理,仅供参考。原内容在文末附有链接。版权归原作者所有,如有侵权,请联系删除。

在进行重测序分析或其他计算密集型任务时,脚本的执行时间通常较长。在多用户的服务器环境中,保持任务的持续运行而不受 SSH 会话断开的影响至关重要。tmux 是一个强大的终端复用器,它允许用户在一个终端窗口中管理多个会话。使用 tmux,用户可以轻松地启动、分离和重新连接会话,非常适合长时间运行的脚本。本文将详细介绍 tmux 的安装、基本用法以及一些高级技巧。

本文主要内容

  • 什么是 tmux?

  • 安装 tmux

  • tmux 的基本用法

    • 1. 启动 tmux 会话

    • 2. 运行脚本

    • 3. 分离会话

    • 4. 查看正在运行的会话

    • 5. 重新连接会话

    • 6. 关闭会话

  • 高级用法与技巧

    • 1. 分屏功能

    • 2. 保存会话布局

    • 3. 使用 tmux 配置文件

    • 4. 会话共享

什么是 tmux?

tmux(Terminal Multiplexer)是一款流行的终端复用工具。它的主要功能是让用户在一个终端会话中同时运行多个虚拟终端。与传统的终端会话不同,tmux 允许用户在断开连接后继续运行程序,并在需要时重新连接会话,这对于长时间运行的任务尤为重要。

安装 tmux

大多数 Linux 发行版都支持 tmux,可以通过以下命令轻松安装:

# 对于 Debian/Ubuntu 系统
sudo apt install tmux

# 对于 CentOS/RHEL 系统
sudo yum install tmux

# 对于 macOS 用户,可以使用 Homebrew 安装
brew install tmux

安装完成后,可以通过运行 tmux -V 验证安装成功。

tmux 的基本用法

1. 启动 tmux 会话

要启动一个新的 tmux 会话,可以使用以下命令:

tmux new -s mysession

mysession 是会话的名称,可以根据个人需要自定义。

2. 运行脚本

tmux 会话中,您可以像在普通终端中一样执行任何命令或脚本。例如:

bash my_script.sh

3. 分离会话

如果您需要离开 tmux 会话而不终止脚本,可以按下:

Ctrl + b,然后按 d

这将使会话在后台继续运行,可以安全地关闭 SSH 连接。

4. 查看正在运行的会话

要查看当前所有正在运行的 tmux 会话,可以使用:

tmux ls

5. 重新连接会话

要重新连接到之前的 tmux 会话,可以使用:

tmux attach -t mysession

如果有多个会话,可以通过会话名重新连接,或者使用 tmux attach 来连接到最后一个会话。

6. 关闭会话

当脚本运行完成后,您可以在 tmux 窗口中输入 exit,或者使用以下命令结束会话:

tmux kill-session -t mysession

高级用法与技巧

1. 分屏功能

tmux 允许用户在一个会话中创建多个窗格,方便监控多个任务。在 tmux 中,您可以使用以下命令实现分屏:

  • 垂直分屏:Ctrl + b 然后按 %
  • 水平分屏:Ctrl + b 然后按 `

您可以使用 Ctrl + b 然后按方向键在窗格之间切换。

2. 保存会话布局

tmux 允许您保存和恢复会话布局。可以使用以下命令保存当前会话的布局:

tmux list-sessions

然后使用 tmux attach-session -t session-name 恢复。

3. 使用 tmux 配置文件

您可以通过创建一个 .tmux.conf 文件来自定义 tmux 的行为。例如,可以设置快捷键或调整窗口和窗格的样式。以下是一个简单的配置示例:

# 更改前缀键为 Ctrl + a
set -g prefix C-a
unbind C-b
bind a send-prefix

# 开启鼠标支持
set -g mouse on

4. 会话共享

如果需要与他人共享会话,可以使用 tmux 的会话共享功能。启动会话后,使用以下命令设置权限:

chmod 777 /tmp/tmux-$(id -u)/default

其他用户可以使用 tmux attach-session -t mysession 连接到您的会话。


主要参考:

[1.] https://github.com/tmux/tmux/wiki

免责声明:本文为个人学习笔记,整理过程难免有误。如有错误,欢迎指正。仅供个人学习使用,如有侵权,请联系删除

可凡的学习笔记本
在读硕士生,R、Python爱好者
 最新文章