找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3608

积分

0

好友

472

主题
发表于 3 小时前 | 查看: 5| 回复: 0

原文地址:https://medium.com/@TusharKanjariya/i-used-the-terminal-wrong-for-years-5557b10c0b85
原文作者:Tushar Kanjariya

不用 Google,不用抄 cheat sheet,就那么流畅地在终端里操作,像在聊天一样。

我以为他有什么秘密工具集。其实没有。他只是比我更了解终端。

大多数开发者都有的问题

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

这能用。

但很慢。

时间一长,那些细小的延迟会变成真实的摩擦。

我没有意识到的是:终端不只是一个工具,它是一个环境。一旦你这样看待它,一切都会改变。

以下是我每天实际在用的技巧。不是 50 条命令,只有那些真正留下来的。

Trick #1:停止重复输入你已经运行过的命令

这个让我学到时很受冲击。

你运行了一条很长的命令,结果因为权限错误失败了。现在你想加上 sudo 重试。与其按上方向键再把光标移到行首,不如直接运行:

sudo !!

!! 会展开为你上一条完整命令。就这样。两个字符,而不是重新输入整条命令。

还有这个更好用:

mkdir my-project
cd !$

!$ 代表上一条命令的最后一个参数。在链式操作时极其有用。你刚创建了一个文件夹并跳进去,文件夹名只输入了一次。

我每天大概用 !$ 二十次。看起来很小,但消除的摩擦是真实的。

Trick #2:Ctrl+R 是你终端里的搜索引擎

所有人都知道上方向键可以循环翻历史记录。但那是线性的——你得一直按上键,直到找到你想要的。

Ctrl+R 会在你的完整历史记录中做反向搜索。只需输入命令的任意片段,它就会找到最近一次匹配。

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

再按 Ctrl+R 可以循环到更早的匹配项。按 Enter 直接运行,按 Esc 先编辑再运行。

仅这一个改变,每天就能为你节省好几分钟。如果你频繁使用长 dockergitssh 命令,你会好奇自己以前是怎么撑过来的。

额外技巧:增大历史记录容量,这样搜索才能真正往回翻更多。把下面这段加入你的 .bashrc.zshrc

HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups

这样你的历史记录可以保留 10,000 条命令,并且不会被重复项塞满。搜索才真正有用。

Trick #3:即时修正拼写错误

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

git chekcout main

与其按上键再手动编辑,使用 ^old^new 替换技巧:

^chekcout^checkout

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

这是那种会让团队里的人停下来问“等等,你怎么做到的?”的技巧。然后你解释的时候会很有成就感。

Trick #4:alias 是免费的生产力——好好用

每周输入超过五次的命令都值得设一个 alias

alias 写在 ~/.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 这个 alias 之后直接用它),立即生效。

有一个被低估的 alias

alias -- -='cd -'

它会带你回到上一个文件夹。就像浏览器的后退按钮。我每天都在用。

Trick #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 按单词跳转,在编辑长命令时是游戏规则改变者。不用再一直按方向键了。

Trick #6:tmux — 别让你的工作随着终端窗口一起消失

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

它为什么重要:没有 tmux,SSH 连接一断,进程就死了。有了 tmux,它继续运行。你重新连接,从上次离开的地方继续。

基本 tmux 工作流:

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

# 从 session 中脱离(一切继续运行)
Ctrl + B, then D

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

# 列出所有 session
tmux ls

tmux 内部,你可以把终端分割成多个 pane:

Ctrl + B, then %      # 垂直分割
Ctrl + B, then "      # 水平分割
Ctrl + B, then arrow  # 在 pane 之间切换

有趣的地方来了。你可以在一个 pane 里跑服务,另一个 pane 流式输出日志,第三个 pane 开着编辑器——全在同一个窗口里。

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

Trick #7:让任务在后台运行

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

npm run build &

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

把它带回前台:

fg

查看所有后台 job:

jobs

如果你已经启动了一个长进程但没加 &,可以用 Ctrl+Z 挂起它,再在后台恢复:

Ctrl + Z      # 挂起
bg            # 在后台恢复运行

这类技巧写下来看起来平平无奇,但很快就会成为肌肉记忆——而且比每次都开新终端标签页快得多。

Trick #8:让 cd + ls 合二为一

这是一种你会发现自己频繁重复的模式:cd 进某个目录,紧接着 ls

与其输两条命令,不如合成一个函数。把这段加入你的 .bashrc.zshrc

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

现在 cl my-project 一条命令就能进入文件夹并列出内容。

Shell 函数比 alias 更强大,因为它可以接受参数并执行逻辑。这是一个简单的例子,但它打开了一扇门:你可以构建自己的迷你工具,量身定制你的工作流。

Trick #9:fzf — 让一切都能模糊搜索的工具

如果让我从这整个清单里选一个工具立刻安装,那就是 fzf

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

安装方式:

# macOS
brew install fzf

# Ubuntu / Debian
sudo apt install fzf

安装后,Ctrl+R 会变成一个超强的交互式历史搜索,而不是简单的反向搜索。你能同时看到所有匹配项,实时过滤,并用方向键浏览。

你还可以把任何东西 pipe 进去:

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

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

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

切换分支那个是我每天都在用的。再也不用费力回忆准确的分支名了。

Trick #10:pipe 到 pbcopy / xclip — 停止手动选中文本

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

终端的做法:

# macOS
cat some-file.txt | pbcopy

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

输出立刻进入剪贴板。不需要鼠标。

复制 SSH key、API token、构建输出,或任何需要粘贴到其他地方的长字符串时,这个技巧极其有用。

# 复制你的 SSH public key
cat ~/.ssh/id_rsa.pub | pbcopy

一条命令,key 进剪贴板,搞定。

这些技巧看似琐碎,但正是它们一点点拼出了高效的工作流。说到底,掌握运维 & 测试领域的效率工具,本质上是在减少环境带来的摩擦,让你能更专注于解决问题本身。




上一篇:AI Agent提示注入漏洞修复,Hermes Agent v0.15.0重构核心循环提速4500倍
下一篇:kimi-code弃Python全面转向Node与TS,AI Agent全栈该学哪门语言
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-30 07:10 , Processed in 0.775210 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表