Update avaliable. Click RELOAD to update.
📱 安装应用到主屏幕,获得更好体验
目录

我用了多年的终端,姿势居然是错的

我看到一位资深开发者在 90 秒内解决了一个部署问题。没有谷歌搜索,没有从速查表复制粘贴——只是在终端里行云流水,就像在对话一样。

我以为他有某种秘密工具集。他没有。他只是比我更懂终端。

大多数开发者的问题

大多数开发者使用终端的方式和他们第一次在教程中学到的一模一样:输入命令,按回车,重复。

这当然能用。但很慢。随着时间的推移,这些小延迟会累积成真正的摩擦。

我没有意识到的是:终端不仅是一个工具,它是一个环境。

一旦你这样看待它,一切都会改变。

以下是那些我每天真正使用的技巧——不是 50 个命令,只是那些真正管用的。

技巧 1:别再重新输入你运行过的命令

这个让我心痛了很久。你刚跑了一个长命令,它因为权限错误失败了。现在你想加 sudo 重试。与其按上箭头然后把光标移到行首,只需运行:

sudo !!

!! 展开为你的上一条完整命令。就两个字符,代替重新输入整个命令。

还有这个更好用的:

mkdir my-project
cd !$

!$ 是上一条命令的最后一个参数。当你链式操作时非常有用——新建文件夹后直接跳进去,不用输两遍文件夹名。我每天大概用 !$ 二十次。很小,但消除的摩擦是真实的。

技巧 2:Ctrl+R 是你的终端搜索引擎

大家都知道上箭头可以循环浏览历史。但那是线性的——你得一直按直到找到你要的。

Ctrl+R 对你的完整历史进行反向搜索。输入任何一个命令片段,它会找到最近的匹配:

(reverse-i-search)`docker': docker-compose up -d --build

再按 Ctrl+R 循环更早的匹配。按 Enter 运行。按 Esc 先编辑。

光是这一个改变,每天就能省下几分钟。如果你经常使用长串的 docker、git 或 ssh 命令,你会奇怪没有它你是怎么活下来的。

额外技巧: 增大你的历史记录大小,这样能搜索更远。在 .bashrc.zshrc 中加入:

HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups

这样你的历史记录能回溯 10000 条命令,而且不会塞满重复项。搜索变得真正有用。

技巧 3:立刻修正拼写错误

你刚运行了一个有拼写错误的命令。经典例子:

git chekcout main

不用按上箭头手动编辑,用 ^旧^新 替换技巧:

^chekcout^checkout

这条命令会用 checkout 替换上一条命令中的 chekcout 并立即运行。

这是那些会让同事停下来问”等等,你是怎么做到的?”的技巧之一——而你会很爽地解释它。

技巧 4:别名是免费的效率工具

任何你每周输入超过五次的命令都值得一个别名。

别名存在于你的 ~/.bashrc(Linux)或 ~/.zshrc(macOS)中。以下是我实际使用的入门包:

# 导航
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'

# 开发快捷
alias ni='npm install'
alias nrd='npm run dev'
alias nrb='npm run build'

# 重载 shell 配置
alias reload='source ~/.bashrc'

添加后运行 source ~/.bashrc(或者一旦你添加了 reload 别名后直接 reload)即可立即生效。

一个容易被低估的:alias -- -='cd -' —— 回到上一个目录。就像浏览器的后退按钮。我每天用。

技巧 5:你可能忽略的键盘快捷键

终端里充满了大多数开发者从未学过的键盘快捷键。下面是我经常用的:

快捷键作用
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+FAlt+B 逐词跳转在编辑长命令时是改变游戏规则的操作——再也不用按住方向键了。

技巧 6:tmux — 别让工作随着终端窗口消失

如果你在远程服务器上工作,或者只是想要多个终端面板而不切换窗口——tmux 是改变一切的工具。

它的重要性在于:没有 tmux,如果 SSH 连接断开,你的进程就死了。有了 tmux,它继续运行。你重新连接,从之前停下的地方继续。

基本 tmux 工作流:

# 启动一个命名会话
tmux new -s myproject

# 分离会话(一切继续运行)
Ctrl + B, 然后 D

# 稍后重新连接
tmux attach -t myproject

# 列出所有会话
tmux ls

在 tmux 内部,你可以将终端分割成多个面板:

Ctrl + B, 然后 %       # 垂直分割
Ctrl + B, 然后 "       # 水平分割
Ctrl + B, 然后 方向键   # 切换面板

这就是有趣的地方了。你可以在一个面板运行服务器,另一个面板查看日志流,第三个面板打开编辑器——全部在同一个窗口内。

我见过开发者开五个浏览器标签页的 SSH 会话。一旦他们看到 tmux,就再也不回头了。

技巧 7:在后台运行任务

你在运行一个长进程——构建、测试套件、服务器。你不想打开新标签页。只需在命令后加一个 &

npm run build &

进程在后台运行,你的终端立即释放。你会看到一个作业 ID,类似 [1] 23456

把它带回前台:

fg

查看所有后台作业:

jobs

如果你已经启动了一个长进程而没有用 &,可以用 Ctrl+Z 挂起它,然后在后台继续:

Ctrl + Z   # 挂起
bg         # 在后台继续

这个技巧看起来平平无奇,但很快就会成为你的第二天性——而且比每次打开新终端标签页快得多。

技巧 8:让 cd + ls 变成一个命令

这是一个你会发现你经常先输入 cd 到一个目录,然后马上跟着 ls 的模式。

与其用两个命令,不如做一个函数。把这个加到 .bashrc.zshrc

function cl() {
  cd "$1" && ls -la
}

现在 cl my-project 会切换进文件夹并在一次敲击中列出其内容。

Shell 函数比别名更强大,因为它们可以接受参数并运行逻辑。这只是一个简单的例子,但它为你构建自己的工作流小工具打开了大门。

技巧 9:fzf — 让一切都变成模糊搜索

如果让我从整篇文章中只选一个工具现在安装,那就是 fzf

fzf 是一个命令行模糊查找器。它可以搜索文件、命令历史、git 分支、运行中的进程——任何列表。

安装:

# macOS
brew install fzf

# Ubuntu / Debian
sudo apt install fzf

安装后,Ctrl+R 变成一个超级交互式历史搜索,而不是简单的反向搜索。你会同时看到所有匹配项,可以实时筛选,用箭头选择。

你也可以把任何内容管道给它:

# 模糊搜索并打开文件
vim $(fzf)

# 交互式切换 git 分支
git checkout $(git branch | fzf)

# 交互式杀死进程
kill $(ps aux | fzf | awk '{print $2}')

分支切换那个我每天用——再也不用试图记确切的 branch 名字了。

技巧 10:用 pbcopy / xclip 管道输出到剪贴板

你想把命令输出复制到剪贴板。常规方式:运行命令,手动选中输出,右键,复制。

终端方式:

# macOS
cat some-file.txt | pbcopy

# Linux
cat some-file.txt | xclip -selection clipboard

输出立即进入你的剪贴板。不需要鼠标。

这对复制 SSH 密钥、API token、构建输出或任何需要粘贴到别处的长字符串极其有用:

# 复制你的 SSH 公钥
cat ~/.ssh/id_rsa.pub | pbcopy

一条命令。密钥在剪贴板。搞定。

技巧 11:自动修正命令

有时候你打错了命令。试试 thefuck——一个自动修正上一条命令的工具:

sudo apt install thefuck

然后运行:

fuck

它会建议并修复你的上一条命令。

是的,它就叫这个名字。是的,它确实有用。

真正的转变

这是我逐渐意识到的事情:大多数开发者把终端当成自动售货机。 输入命令,得到输出,重复。

但那些在终端里看起来行云流水的开发者,已经和它建立了一种关系。他们花了时间定制它、学习它的快捷键、投资于那些会随着时间复利的小工具。

这些技巧没有一个很难。它们大概需要 10 分钟来设置。回报是数月甚至数年的更顺畅工作。

从其中一个开始。如果你还没用 Ctrl+R,就从它开始。如果你还没设别名,就设上。如果你想要最大的单次升级——安装 fzf。

终端是一个工具。但工具听从于熟悉它的双手。

版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2026/05/i-used-the-terminal-wrong-for-years/