hahaxo @hahaxo
2026-09-20
90% 程序员都不会用 Terminal:这 11 个技巧,让你的效率直接翻倍
我用了很多年 Terminal,直到最近才发现自己一直用错了
没有 Google。
没有照着速查表复制命令。
只是像聊天一样,在 Terminal 里自然地敲下每一条命令。
我一直以为,那些真正厉害的开发者都有一套神秘的工具链。
后来才发现,并没有。
他们只是,比我更懂 Terminal。
大多数开发者都有同一个问题
很多人使用 Terminal 的方式,和第一次接触 Linux 时学到的一模一样:
输入命令。
回车。
等待结果。
继续输入下一条命令。
当然,这样也能完成工作。
但是——
真的很慢。
更准确地说,它不是某一次操作慢,而是每天几十次、几百次微不足道的等待,慢慢积累成了一种「摩擦力」。
后来我终于意识到一件事:
Terminal 从来都不是一个执行命令的工具,它本身就是你的工作环境。
一旦接受这个认知,很多事情都会发生变化。
下面这些,就是我每天都会用到的技巧。
不是五十条冷门命令。
只是那些真正能留下来的东西。
技巧一:别再重复输入已经执行过的命令
第一次知道这个技巧的时候,我是真有点破防。
例如:
你刚执行了一条很长很长的命令。
结果提示:
Permission denied
于是你开始:
- • ↑
- • 光标移到最前面
- • 输入 sudo
其实完全不用。
直接:
sudo !!
这里的:
!!
会自动展开成上一条完整命令。
例如:
apt install nginx
失败之后:
sudo !!
等价于:
sudo apt install nginx
两个字符,解决所有问题。
这就是 Shell History Expansion 的魅力。
还有一个我更喜欢:
mkdir my-project
cd !$
其中:
!$
表示:
上一条命令的最后一个参数。
也就是说:
mkdir my-project
最后一个参数就是:
my-project
于是第二条命令自动变成:
cd my-project
不用重复输入目录名。
看起来只是少敲几个字。
实际上,一天下来可能会用几十次。
我几乎每天都会用到。
技巧二:Ctrl + R,就是 Terminal 的搜索引擎
很多人知道:
↑
可以翻历史命令。
但是:
它只能一条一条翻。
如果一周前执行过:
docker compose up -d --build
你可能要按几十次 ↑。
真正好用的是:
Ctrl + R
然后输入关键字:
docker
Terminal 会立刻开始反向搜索:
(reverse-i-search)`docker':
docker compose up -d --build
继续:
Ctrl + R
还能继续往前找更早的记录。
按:
Enter
直接执行。
按:
Esc
先编辑,再执行。
对于:
- • Docker
- • Git
- • SSH
- • kubectl
这种又长又复杂的命令来说,这个快捷键几乎每天都能帮你省下不少时间。
另外,我建议顺手把历史记录调大一点。
在:
~/.bashrc
或者:
~/.zshrc
加入:
HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups
这样:
- • 保存 10000 条历史记录
- • 自动去重
- • 搜索真正变得有价值
很多人 Terminal 用了几年,历史记录却只有几百条,实在有点可惜。
技巧三:输错命令?一秒修正
例如:
git chekcout main
注意:
chekcout
拼错了。
多数人的操作:
↑
移动光标。
修改。
重新执行。
其实还有一种古老但优雅的方法:
^chekcout^checkout
Shell 会自动:
- • 找到上一条命令
- • 把错误字符串替换掉
- • 立即重新执行
非常酷。
也是很多老 Unix 用户仍然坚持使用的小技巧。
技巧四:Alias 是免费的效率提升
我的原则很简单:
一周输入超过五次的命令,都值得拥有一个 Alias。
例如:
# 导航
alias ..='cd ..'
alias ...='cd ../..'
alias ~='cd ~'
alias -- -='cd -'
# 文件
alias ll='ls -alF'
alias lt='ls -ltr'
# 防止误删
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Git
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph --decorate'
alias gco='git checkout'
# Docker
alias dps='docker ps'
alias dc='docker compose'
alias dcu='docker compose up -d'
alias dcd='docker compose down'
# Node
alias ni='npm install'
alias nrd='npm run dev'
alias nrb='npm run build'
# 重新加载配置
alias reload='source ~/.bashrc'
小建议: 如果你使用的是 Docker Compose V2,推荐使用
docker compose(带空格),而不是已经逐步淡出的docker-compose,这样兼容未来版本会更好。
配置完成后:
source ~/.bashrc
或者:
reload
立即生效。
我最喜欢的是:
alias -- -='cd -'
以后只需要:
cd -
或者:
-
就能返回上一个目录。
像浏览器的:
Back
按钮一样。
每天都会用。
技巧五:那些没人教你的快捷键
Terminal 最容易被忽略的,其实不是命令。
而是键盘操作。
下面这些,我几乎形成了肌肉记忆:
快捷键
功能
Ctrl + A
跳到行首
Ctrl + E
跳到行尾
Ctrl + W
删除前一个单词
Ctrl + U
删除光标前所有内容
Ctrl + K
删除光标后所有内容
Ctrl + L
清屏(等同于 clear)
Ctrl + C
中断当前命令
Ctrl + Z
挂起当前进程(使用 fg 恢复)
Alt + F
前进一个单词
Alt + B
后退一个单词
我最常用的组合是:
Ctrl + A
Ctrl + K
一瞬间清空整行。
比一直按 Backspace 快太多。
而:
Alt + F
Alt + B
修改长命令时也特别舒服。
以后几乎不会再长按方向键。
技巧六:tmux——别让 SSH 断开毁掉你的工作
如果你经常登录远程服务器,
那么:
tmux 基本属于必装工具。
原因很简单。
没有 tmux:
SSH 掉线。
程序也跟着挂。
用了 tmux:
SSH 掉了。
程序继续运行。
重新连接之后:
继续刚才的工作。
基本流程:
# 创建会话
tmux new -s myproject
# 分离会话
Ctrl + B
D
# 恢复
tmux attach -t myproject
# 查看所有会话
tmux ls
窗口还能拆分:
Ctrl + B %
左右分屏。
Ctrl + B "
上下分屏。
Ctrl + B + 方向键
切换 Pane。
一个窗口里:
- • 左边跑服务
- • 右边看日志
- • 下方打开编辑器
整个开发环境就完整了。
很多人第一次真正用上 tmux 后,就再也不愿意开五六个 SSH 标签页了。
技巧七:让任务在后台运行
例如:
npm run build &
最后加:
&
程序就会直接进入后台。
Terminal 马上可以继续使用。
查看后台任务:
jobs
恢复到前台:
fg
如果忘记加:
&
也没关系。
先:
Ctrl + Z
挂起。
然后:
bg
继续后台运行。
这种操作,看起来不起眼。
但真的比不断新开 Terminal 标签页舒服得多。
技巧八:把 cd 和 ls 合二为一
你有没有发现:
几乎每次:
cd xxx
之后都会:
ls
那为什么不把它们合起来?
例如:
cl() {
cd "$1" && ls -la
}
以后:
cl project
就会:
进入目录。
立即列出内容。
相比 Alias,Shell Function 更强大。
它不仅能接收参数,还可以写逻辑、判断和循环。
很多优秀的命令行工具,其实就是从这种小函数慢慢演变出来的。
技巧九:fzf——真正改变 Terminal 体验的神器
如果只能推荐安装一个工具。
我的答案一定是:
fzf。
它是一款模糊搜索工具。
几乎所有「列表」都可以搜索:
- • 文件
- • Git Branch
- • 历史命令
- • 进程
- • Tag
- • Commit
安装:
macOS:
brew install fzf
Ubuntu:
sudo apt install fzf
安装后:
Ctrl + R
会直接升级成可交互搜索。
还能这样:
# 搜索文件并打开
vim "$(fzf)"
# 选择 Git 分支
git checkout "$(git branch | fzf)"
# 选择进程并结束
kill "$(ps aux | fzf | awk '{print $2}')"
提示: 为了避免因文件名包含空格导致的问题,上面的命令使用了双引号包裹命令替换,这是一个更稳妥的写法。
我每天都会用它切换 Git Branch。
从此以后,再也不用去记那些又长又绕的分支名字。
技巧十:直接复制到剪贴板
很多时候:
执行命令。
鼠标框选。
右键复制。
其实都可以省掉。
macOS:
cat some-file.txt | pbcopy
Linux:
cat some-file.txt | xclip -selection clipboard
例如:
复制 SSH 公钥:
cat ~/.ssh/id_rsa.pub | pbcopy
一条命令。
直接进入剪贴板。
尤其是在复制:
- • API Token
- • SSH Key
- • Build 输出
- • JWT
的时候,非常舒服。
技巧十一:自动帮你修正命令
最后,再介绍一个很有意思的小工具:
thefuck
它的名字确实就叫这个。
安装:
sudo apt install thefuck
然后按照官方说明把初始化配置加入你的 Shell(如 ~/.bashrc 或 ~/.zshrc),重启或重新加载配置后即可使用。
以后如果上一条命令输错了,只需要输入:
fuck
它就会分析上一条失败的命令,并给出最可能的修正方案,确认后自动重新执行。
名字有点离谱。
但功能确实很好用。
真正重要的,并不是这些命令
后来我越来越觉得:
很多开发者把 Terminal 当成自动售货机。
输入。
回车。
拿结果。
结束。
而真正用得很顺手的人,则把它当成自己的工作空间。
他们会:
- • 定制自己的环境;
- • 投资那些每天都能节省几秒钟的小工具;
- • 学会快捷键,而不是依赖鼠标;
- • 把重复劳动交给 Shell,而不是交给自己。
这些技巧,没有哪个特别难。
可能花十分钟就能全部配置好。
但接下来几年,它们都会持续帮你节省时间。
如果只能先学一个,我建议从 Ctrl + R 开始;如果愿意再迈一步,就装上 fzf;如果经常远程开发,再把 tmux 加入工具箱。
真正的效率,从来不是一次巨大的飞跃,而是无数细小优化叠加后的复利。