终端复用神器:Tmux 与 Screen

在远程操作 Linux 时,你是否遇到过这种尴尬:正在运行一个耗时几小时的任务,结果网络波动导致 SSH 断开,任务随之宣告失败?这就是终端复用器 (Terminal Multiplexer) 派上用场的时候。


1. 终端复用的核心价值

  1. 持久化: 进程在后台运行,SSH 断开后重新连接即可 attach
  2. 分屏管理: 在同一个窗口内同时查看日志、代码和系统监控。
  3. 多端协同: 两个用户可以连接到同一个会话,实现屏幕共享。

2. Tmux:现代终端的首选

Tmux (Terminal Multiplexer) 是目前的主流工具,功能极其强大。

2.1 基本层级

  • Session (会话): 最高层级,可包含多个 Window。
  • Window (窗口): 类似浏览器的标签页,可包含多个 Pane。
  • Pane (面板): 将一个窗口切分成多个小格子。

2.2 核心快捷键 (Prefix: Ctrl + b)

  • 新建: tmux new -s my_session
  • 挂起 (Detach): Ctrl + b 然后 d (进程在后台运行)
  • 恢复 (Attach): tmux a -t my_session
  • 查看所有: tmux ls
  • 新建窗口: Ctrl + b 然后 c
  • 切换窗口: Ctrl + b 然后 0-9 (或 n/p 切换前后)
  • 关闭当前: exit
  • 水平切分: Ctrl + b 然后 %
  • 垂直切分: Ctrl + b 然后 "
  • 切换面板: Ctrl + b 然后 方向键
  • 调整大小: Ctrl + b 然后 按住 Ctrl + 方向键

2.3 深度定制:~/.tmux.conf

想让 Tmux 更好用?你可以通过配置文件修改其行为。

# 启用鼠标支持 (调整面板、点击窗口)
set -g mouse on
 
# 修改 Prefix 为 Ctrl + a (更顺手)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
 
# 设置 256 色支持
set -g default-terminal "screen-256color"

3. GNU Screen:经典永不过时

在一些极简系统或老旧服务器上,你可能只能找到 Screen

Screen 极速上手
  • 新建: screen -S session_name
  • 挂起: Ctrl + a 然后 d
  • 恢复: screen -r session_name
  • 多端同时查看: screen -x session_name (非常适合结对编程)

4. 协作神器:Tmux 共享会话

如果你想让同事看你的终端,只需要让他在同一台机器上以同一用户身份执行: tmux attach -t your_session 现在,你们两个人的输入和输出是实时同步的。


5. 结业练习

Navigation