在日常使用 Linux 过程中,会频繁接触并执行各种命令。然而,由于命令众多且语法各异,难免会有遗忘的情况。为了提高工作效率,避免每次都需要重新查找或记忆,这里特意整理并备份了一些常用的 Linux 命令,方便随时翻阅和查找,以便在需要时快速调用。

使用 tmux 保持远程任务运行

tmux 是一个终端复用工具,可以在一个终端中创建多个窗口和面板。通过 SSH 执行训练、编译、下载等耗时任务时,即使网络中断或关闭本地终端,tmux 会话和其中的任务仍会继续运行,重新连接服务器后可以恢复现场。

tmux 可以应对 SSH 连接中断,但服务器关机或重启后,其中的进程仍会终止。

安装 tmux

Debian、Ubuntu:

sudo apt update && sudo apt install -y tmux

CentOS、RHEL、Rocky Linux:

sudo dnf install -y tmux

会话管理

# 创建名为 work 的会话
tmux new -s work

# 如果 work 已存在则进入,否则创建
tmux new -A -s work

# 查看所有会话
tmux ls

# 重新进入 work 会话
tmux attach -t work

# 关闭指定会话及其中的任务
tmux kill-session -t work

在 tmux 中,快捷键通常需要先按前缀键 Ctrl+b,松开后再按功能键。例如退出当前会话但保持任务运行,应先按 Ctrl+b,再按 d

常用快捷键:

快捷键作用
Ctrl+b,然后按 d暂时离开当前会话
Ctrl+b,然后按 c新建窗口
Ctrl+b,然后按 n / p切换到下一个 / 上一个窗口
Ctrl+b,然后按 09切换到指定编号的窗口
Ctrl+b,然后按 %左右分割面板
Ctrl+b,然后按 "上下分割面板
Ctrl+b,然后按方向键在面板之间切换
Ctrl+b,然后按 z放大或还原当前面板
Ctrl+b,然后按 x关闭当前面板

查看历史输出

Ctrl+b,再按 [ 进入复制模式,之后可以使用方向键、Page UpPage Down 查看历史输出,按 q 退出复制模式。

最常用的远程工作流程如下:

# 第一次连接服务器后创建会话
tmux new -s work

# 在会话中启动耗时任务,然后按 Ctrl+b、d 离开

# 下次登录服务器后恢复会话
tmux attach -t work

统计指定软件的内存占用情况

该命令会遍历所有相关进程(如 Chromium),累计其占用的物理内存(RSS),并最终转换为 MB 单位输出。

ps aux | grep chromium | awk '{sum += $6} END {print sum/1024 " MB"}'

链接无公网 IP 的 GPU 服务器

近年来,随着 AI 计算的爆发,越来越多的 GPU 服务器投入使用。然而,这些服务器通常位于内网环境,缺少公网 IP,导致无法直接访问。为了解决这个问题,可以使用 SSH 隧道技术,将本地端口映射到远程服务器,从而实现安全稳定的访问。这个命令可用于在本地访问 GPU 服务器上的服务

ssh -CNg -L 8003:127.0.0.1:8003 root@云主机地址 -p 32382

参数解析:

  • -C:开启压缩,提高低带宽环境下的传输效率。
  • -N:不执行远程命令,仅建立隧道。
  • -g:允许外部主机访问本地端口(如果仅需本机访问,可去掉)。
  • -L 8003:127.0.0.1:8003:将本地 8003 端口映射到远程服务器的 127.0.0.1:8003,便于访问 GPU 服务器上的服务。
  • root@云主机地址:远程服务器的登录用户和地址。
  • -p 32382:指定 SSH 连接的端口。