把终端收拾干净:我的 prompt、别名与快捷键
终端是每天待得最久的地方之一,值得花一个下午把它收拾成顺手的样子。
我每天在终端里敲几百条命令。它不好看没关系,但必须安静、稳定、不打断思路。前阵子重装系统,顺手整理了一份配置,记在这里。
prompt 只留三样东西
很多主题会在 prompt 里塞上时间、用户、主机名、Python 虚拟环境、Kubernetes 集群……信息越多,视线越乱。我只保留三样:当前目录、Git 分支、上一条命令的退出状态(用颜色暗示)。
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 色里的暖灰和豆绿,低饱和,不刺眼。
别名是肌肉记忆的补丁
我不追求把每个命令都缩短,只给每天用五次以上的操作起别名:
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,不用再敲一遍。
历史记录要够长,也要干净
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。 - 光标用块状。 竖线太细,在深色背景上容易看丢。
工具的最高境界是让人忘记它的存在。
收拾终端的真正目的,不是炫耀配置,而是让每天重复几百次的动作,少一点摩擦。省下来的注意力,可以留给真正要解决的问题。