把终端收拾干净:我的 prompt、别名与快捷键

终端是每天待得最久的地方之一,值得花一个下午把它收拾成顺手的样子。

我每天在终端里敲几百条命令。它不好看没关系,但必须安静、稳定、不打断思路。前阵子重装系统,顺手整理了一份配置,记在这里。

prompt 只留三样东西

很多主题会在 prompt 里塞上时间、用户、主机名、Python 虚拟环境、Kubernetes 集群……信息越多,视线越乱。我只保留三样:当前目录、Git 分支、上一条命令的退出状态(用颜色暗示)。

Bash
parse_git_branch() {
  git branch --show-current 2>/dev/null
}

# \W 只显示当前目录名,\w 显示完整路径
export PS1='\[\e[38;5;180m\]\W\[\e[0m\]\[\e[38;5;108m\]$(parse_git_branch)\[\e[0m\]\n\$ '

效果大概是:

文本
blog  main
$

两行,第一行给位置和分支,第二行留给输入。颜色用的是 256 色里的暖灰和豆绿,低饱和,不刺眼。

别名是肌肉记忆的补丁

我不追求把每个命令都缩短,只给每天用五次以上的操作起别名:

Bash
alias ll='ls -alF'
alias gs='git status -sb'
alias gd='git diff --stat'
alias gl='git log --oneline --graph --decorate -20'
alias serve='python3 -m http.server 8000'
alias ports='lsof -iTCP -sTCP:LISTEN -P -n'

几个常用的:

快捷键 / 别名作用
Ctrl + R反向搜索历史命令
Ctrl + A / Ctrl + E跳到行首 / 行尾
Alt + .粘贴上一条命令的最后一个参数
!!重复上一条命令
!$上一条命令的最后一个参数
gs / gd看状态 / 看改动统计

Alt + . 是被低估的一个:mkdir projects 之后按 Alt + . 就能直接得到 projects,不用再敲一遍。

历史记录要够长,也要干净

Bash
export HISTSIZE=50000
export HISTFILESIZE=50000
export HISTCONTROL=ignoreboth:erasedups
export HISTIGNORE='ls:cd:clear:exit:history'

ignoreboth 会忽略以空格开头的命令和重复命令,erasedups 则保证同一条命令不会在历史里出现十次。再配合 Ctrl + R,基本不需要记命令。

如果想要更顺手的模糊搜索,可以装 fzf,Ctrl + R 会变成全屏选择器。它是少数几个我会推荐“无脑装”的工具。

一个安静的终端

最后是几个审美上的坚持:

  • 不要欢迎语。 打开终端就该是一个干净的光标,而不是 ASCII 艺术字。
  • 少用颜色。 红色只留给错误,绿色只留给成功,其余交给字重和留白。
  • 等宽字体要能分清 0O、1lI。 我用 JetBrains Mono,退而求其次是 Cascadia Code。
  • 光标用块状。 竖线太细,在深色背景上容易看丢。

工具的最高境界是让人忘记它的存在。

收拾终端的真正目的,不是炫耀配置,而是让每天重复几百次的动作,少一点摩擦。省下来的注意力,可以留给真正要解决的问题。

搜索文章