Linux 终端复用与编辑器命令速查
更新时间:2026-08-28。本文是 Linux 命令速查主题第⑰族:终端复用与编辑器,约 21 个命令。这一族解决的是远程工作最痛的两个场景——SSH 一断,跑了三小时的任务跟着没了;以及在只有命令行的服务器上怎么高效地改文件。文本处理的非交互命令见 文本处理,作业控制见 进程与系统。
一、tmux:终端复用器
tmux(terminal multiplexer,终端复用器)在单个终端连接里开多个独立会话,并且会话在服务端持续运行——网络断开了,会话里跑的程序照跑不误,重连后 tmux attach 就能回到断开前的画面。这是远程工作的基础设施,不用它,一次网络抖动就可能毁掉几小时的工作。
它的三层结构是:会话(session,一个独立的工作环境)> 窗口(window,类似浏览器标签页)> 面板(pane,窗口内的分屏)。所有操作都以前缀键开头,默认是 Ctrl-b(按一下松开,再按功能键)。
| 命令 | 作用 | 常用示例 |
|---|---|---|
tmux | 终端复用器,会话持久、窗口分屏,断线不丢工作现场 | tmux(新建会话);tmux new -s work(命名会话);tmux ls(列出会话);tmux attach -t work(重连);tmux kill-session -t work(关闭会话) |
tmux 键位 | 前缀键后的常用操作:分屏、切窗口、分离、复制模式 | Ctrl-b d(分离会话,程序继续跑);Ctrl-b %(左右分屏);Ctrl-b " (上下分屏);Ctrl-b 方向键(切面板);Ctrl-b c(新窗口);Ctrl-b 0~9(切窗口);Ctrl-b [(进入复制模式,可滚动翻页) |
screen | 老牌终端复用器,功能类似 tmux 但配置更繁琐,老系统上的默认选择 | screen -S work(命名会话);screen -ls(列出);screen -r work(恢复);Ctrl-a d(分离) |
byobu | tmux/screen 的增强封装,底部带状态栏和快捷键提示,开箱即用 | byobu(启动);F2(新窗口);F3/F4(切换);F6(分离) |
新人最容易卡住的一点:tmux 里鼠标滚屏默认不生效,要用
Ctrl-b [进入复制模式后才能用方向键或 PageUp 翻页,按q退出。想直接启用鼠标支持,在~/.tmuxrc里加一行set -g mouse on,之后就能点选面板、滚轮翻页了。
二、Vim 编辑器
Vim 是模态编辑器(modal editor,同一个按键在不同模式下含义不同)——这一点劝退了不少人,但也是它效率的根基:普通模式下单键就是命令,不用像其他编辑器那样频繁按 Ctrl 组合。服务器上它几乎总是存在,是"必须会一点点"的编辑器。
| 命令 | 作用 | 常用示例 |
|---|---|---|
vim / vi | 模态文本编辑器,服务器标配;vi 通常是 vim 的链接或精简版 | vim file.txt;vim +100 file(打开并跳到第 100 行);vim +/pattern file(跳到首个匹配) |
vim 模式 | 三大模式:普通模式(默认,按键即命令)、插入模式(i 进入,正常打字)、命令模式(: 进入,执行保存退出等) | i(光标前插入);a(光标后插入);o(下方新行);Esc(回普通模式);:w(保存);:q(退出);:wq 或 ZZ(保存退出);:q!(强制不保存退出) |
vim 移动 | 普通模式下的光标移动,比方向键快得多 | h j k l(左下上右);0/^(行首);$(行尾);gg(文件首);G(文件尾);100G(第 100 行);w/b(按词前后移) |
vim 编辑 | 删除、复制、粘贴,操作符配合移动键组合出无数可能 | dd(删整行);5dd(删 5 行);yy(复制行);p(粘贴到下一行);u(撤销);Ctrl-r(重做);x(删当前字符);dw(删一个词);d$(删到行尾) |
vim 搜索 | 查找与替换 | /pattern(向下搜);?pattern(向上搜);n/N(下/上一个匹配);:%s/old/new/g(全局替换);:%s/old/new/gc(逐项确认);:set nu(显示行号) |
vimdiff | 并排对比多个文件的差异并编辑,合并冲突的好工具 | vimdiff f1 f2;]c/[c(跳到下/上一处差异);dp(把当前差异推给对方);do(从对方拉过来) |
view | 以只读模式打开 vim,避免手滑改坏文件 | view /etc/nginx/nginx.conf |
卡在 vim 里出不来是经典新手体验。记住:先按几次
Esc确保回到普通模式,然后:q!回车——不保存强制退出。如果只是想保存离开,:wq。另外:set paste在粘贴代码前很有用,否则自动缩进会把粘贴的内容搞成一堆乱缩进的阶梯。
三、其他编辑器
| 命令 | 作用 | 常用示例 |
|---|---|---|
nano | 简单易用的终端编辑器,底部直接显示快捷键,改配置文件最快的选择 | nano file;Ctrl-O(保存);Ctrl-X(退出);Ctrl-W(搜索);Ctrl-K(剪切整行);nano -w(关闭自动换行,改配置文件建议加) |
emacs | 扩展性极强的编辑器(本质是 Lisp 运行环境),也有无窗口的终端模式 | emacs -nw file(终端模式);Ctrl-x Ctrl-s(保存);Ctrl-x Ctrl-c(退出) |
ed | 行编辑器,Unix 最古老的编辑器,无交互界面,只适合脚本里用 | ed file(进入);脚本化:printf '%s\n' '1,$s/old/new/g' 'w' 'q' | ed -s file |
临时改个配置,
nano的门槛最低——底部常驻显示^O 保存、^X 退出,不用记任何模式。要批量、高效地改代码才值得投入学 vim。
四、会话录制与进程接管
这几个命令处理的是"进程和终端的关系"这类边缘但救命的场景:把已经在前台跑起来的进程挪到后台、把命令行的操作录成可回放的记录、让交互式程序自动化。
| 命令 | 作用 | 常用示例 |
|---|---|---|
script | 录制整个终端会话(输入+输出)到文件,做操作留痕或生成教程 | script -a session.log(开始录制);exit(结束录制);script -q -c "make test" build.log(录单条命令);scriptreplay(配合 timing 文件回放) |
expect | 自动化交互式程序,按预期输出发送应答,用来自动填密码、自动应答安装向导 | expect -c 'spawn ssh user@host; expect "password:"; send "xxx\r"; interact';expect script.exp(跑脚本) |
reptyr | 把已在运行的进程接管到当前终端,拯救"忘了开 tmux 就跑了长任务" | reptyr PID(接管到当前终端);Ctrl-Z 后 bg 再 reptyr PID |
dtach | 极简的会话分离工具,只做 detach/attach 一件事,比 tmux 轻 | dtach -A /tmp/sess bash(创建/接管会话) |
disown | 从当前 shell 的作业表中移除任务,使其不受 shell 退出时的 SIGHUP 影响 | longtask & 然后 disown -h %1;disown -a(移除全部) |
reptyr是真正的救命工具:半夜跑一个长任务,忘了开 tmux,这个终端一关任务就死。装上reptyr后可以再开一个终端把进程接管过去。它需要内核允许ptrace,容器里可能要加权限。更稳妥的做法还是一开始就tmux new -s work。
五、分页与终端控制
| 命令 | 作用 | 常用示例 |
|---|---|---|
more | 最简单的分页器,空格翻页、回车下一行,老系统兼容性最好 | more file;cmd | more(分页看长输出) |
most | 增强分页器,支持左右滚动和多个文件切换 | most file;most -w(开启换行) |
tput | 查询与设置终端能力(颜色、列数、光标位置),写终端 UI 脚本用 | tput cols(终端宽度);tput setaf 2(设前景色);tput bold;tput reset(重置终端) |
stty | 查看和修改终端行设置,处理"终端显示乱了"或密码不回显 | stty -a(查看全部设置);stty -echo(关闭回显,输密码场景);stty sane(恢复正常设置,终端乱码时救急) |
误
cat了二进制文件导致终端显示乱码,是每个人都遇到过的惊魂时刻:屏幕上一堆乱码,输入也看不见。这时不要慌,盲打stty sane回车,通常就恢复了。真不行就reset。
六、终端浏览器
| 命令 | 作用 | 常用示例 |
|---|---|---|
w3m | 支持表格与色彩的终端浏览器,也能直接把网页渲染成纯文本 | w3m https://example.com;w3m -dump URL(只输出文本,常用于脚本抓取) |
lynx | 老牌纯文本浏览器,可访问性浏览与快速查看网页内容 | lynx https://example.com;lynx -dump URL > page.txt;lynx -accept_all_cookies URL |
这两位在没有图形界面的服务器上意外地实用:排查内网服务是否正常、查看本地起的服务返回了什么,
curl看的是原始 HTML,而w3m -dump能直接给出渲染后的文字,可读性完全不在一个层级。
一句话总结
终端与编辑器速查:远程工作先开 tmux(断线不丢现场),改文件用 nano(快)或 vim(强),比差异用 vimdiff,长任务忘了开 tmux 就用 reptyr 补救,操作留痕用 script,终端乱了 stty sane 救急——21 个命令让纯命令行环境既高效又不容易翻车。