人人都会AI编程

30.1 高效终端技巧:历史命令、别名、快捷键、终端复用 tmux

更新时间:2026-07-12

命令行工作的效率往往体现在对“重复性操作”的压缩上。以下几个技巧不求全面,但求立刻让日常工作感到明显提升。

历史命令:别重新敲已经输过的命令
Shell 会把你执行过的命令记录在历史文件中(通常是 ~/.bash_history),并提供了多种快速复用方式:

  • 直接按 方向键,可以上下翻阅历史;
  • Ctrl+R,然后键入几个关键词,可以反向搜索最近的匹配命令,再按一次 Ctrl+R 继续向上翻;
  • 使用历史扩展符号:!! 代表上一条命令,!$ 代表上一条命令的最后一个参数,!* 代表上一条命令的全部参数,!nginx 会执行最近一条以 nginx 开头的命令;
  • history 命令会列出历史记录,结合 grep 可以精确定位:history | grep "docker run"

别名:给常用命令起个短名字
~/.bashrc~/.bash_aliases 中定义别名,可以把复杂的长命令缩写成易记的单词:

alias ll='ls -alF'
alias la='ls -A'
alias gs='git status'
alias gp='git pull --rebase'
alias k='kubectl'

定义好后,执行 source ~/.bashrc 使其生效。别名的优点是不用反复敲参数,也避免了拼写错误。当需要临时取消某个别名时,只需执行 unalias gs 即可。

快捷键:双手不离开主键盘区
bash 默认使用 Emacs 风格的快捷键,熟记下面几个可以显著减少方向键的使用:

  • Ctrl + A:跳到行首;
  • Ctrl + E:跳到行尾;
  • Ctrl + W:删除光标前的一个词;
  • Ctrl + U:删除光标前到行首的所有内容;
  • Ctrl + K:删除光标后到行尾的所有内容;
  • Ctrl + R:如前所述,搜索历史命令;
  • Ctrl + L:清屏,等效于 clear 命令;
  • Ctrl + C:终止正在运行的前台命令;
  • Ctrl + D:退出当前 Shell(或发送 EOF)。

这些快捷键是内建在 readline 库中的,几乎适用于所有基于 readline 的工具(如 Python shell、mysql 命令行等),一次学习,多处受益。

终端复用 tmux:让终端会话永不丢失
当你远程登录服务器时,网络断开通常意味着当前执行的命令和窗口布局全部消失。tmux 能帮你解决这个问题:

  • 会话保持:启动一个 tmux 会话(tmux new -s mysession),即使你断网或关闭终端,里面的程序仍然在后台运行。下次连接时 tmux attach -t mysession 可以恢复整个工作现场。
  • 多窗口/多窗格:在一个 ssh 连接里创建多个窗口(Ctrl+b c 新建,Ctrl+b n/p 切换),或把屏幕切分成多个窗格(Ctrl+b % 竖直分割,Ctrl+b " 水平分割),方便同时监控日志、编辑代码、执行命令。
  • 协作与持久化:多人可以接入同一个 tmux 会话进行协作演示,或者让长时间运行的脚本在 tmux 中执行,无需担心终端关闭导致中断。

最精简的日常用法:

tmux new -s dev          # 新建名为 dev 的会话,立即进入
# 在 tmux 内部正常操作,需要离开时:
Ctrl+b d                 # 分离会话(Detach),所有程序继续运行
# 重新连接:
tmux attach -t dev       # 恢复到之前的窗口和内容

即使不刻意学习高级配置,只要熟练掌握“新建-分离-重连”三部曲,就能立刻把脆弱的一次性终端体验变成可靠的工作环境。