Sign in

hahaxo @hahaxo

2026-09-20

90% 程序员都不会用 Terminal:这 11 个技巧,让你的效率直接翻倍

我用了很多年 Terminal,直到最近才发现自己一直用错了

没有 Google。

没有照着速查表复制命令。

只是像聊天一样,在 Terminal 里自然地敲下每一条命令。

我一直以为,那些真正厉害的开发者都有一套神秘的工具链。

后来才发现,并没有。

他们只是,比我更懂 Terminal。


大多数开发者都有同一个问题

很多人使用 Terminal 的方式,和第一次接触 Linux 时学到的一模一样:

输入命令。

回车。

等待结果。

继续输入下一条命令。

当然,这样也能完成工作。

但是——

真的很慢。

更准确地说,它不是某一次操作慢,而是每天几十次、几百次微不足道的等待,慢慢积累成了一种「摩擦力」。

后来我终于意识到一件事:

Terminal 从来都不是一个执行命令的工具,它本身就是你的工作环境。

一旦接受这个认知,很多事情都会发生变化。

下面这些,就是我每天都会用到的技巧。

不是五十条冷门命令。

只是那些真正能留下来的东西。


技巧一:别再重复输入已经执行过的命令

第一次知道这个技巧的时候,我是真有点破防。

例如:

你刚执行了一条很长很长的命令。

结果提示:

Permission denied

于是你开始:

其实完全不用。

直接:

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

先编辑,再执行。

对于:

这种又长又复杂的命令来说,这个快捷键几乎每天都能帮你省下不少时间。


另外,我建议顺手把历史记录调大一点。

在:

~/.bashrc

或者:

~/.zshrc

加入:

HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups

这样:

很多人 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。

它是一款模糊搜索工具。

几乎所有「列表」都可以搜索:

安装:

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

一条命令。

直接进入剪贴板。

尤其是在复制:

的时候,非常舒服。


技巧十一:自动帮你修正命令

最后,再介绍一个很有意思的小工具:

thefuck

它的名字确实就叫这个。

安装:

sudo apt install thefuck

然后按照官方说明把初始化配置加入你的 Shell(如 ~/.bashrc 或 ~/.zshrc),重启或重新加载配置后即可使用。

以后如果上一条命令输错了,只需要输入:

fuck

它就会分析上一条失败的命令,并给出最可能的修正方案,确认后自动重新执行。

名字有点离谱。

但功能确实很好用。


真正重要的,并不是这些命令

后来我越来越觉得:

很多开发者把 Terminal 当成自动售货机。

输入。

回车。

拿结果。

结束。

而真正用得很顺手的人,则把它当成自己的工作空间。

他们会:

这些技巧,没有哪个特别难。

可能花十分钟就能全部配置好。

但接下来几年,它们都会持续帮你节省时间。

如果只能先学一个,我建议从 Ctrl + R 开始;如果愿意再迈一步,就装上 fzf;如果经常远程开发,再把 tmux 加入工具箱。

真正的效率,从来不是一次巨大的飞跃,而是无数细小优化叠加后的复利。