banner
NEWS LETTER

命令行效率工作流:从目录跳转、搜索到可复用脚本

Scroll down

一、命令行效率的核心不是记命令

命令行用得快,不是因为记住了很多冷门参数,而是把高频操作变成稳定的工作流。

日常开发里最常见的操作其实很固定:

  • 找文件。
  • 搜索代码。
  • 查看日志。
  • 执行构建。
  • 连接服务器。
  • 清理临时文件。
  • 重复执行一组检查。

如果每次都从头输入路径、拼参数、复制命令,时间会被这些小摩擦持续消耗。更好的方式是把常用工具组合起来,让命令行成为一个可重复、可沉淀的操作界面。

二、先把目录跳转变快

很多低效来自目录切换。项目路径一深,反复 cd ../../.. 很容易出错。

可以先准备几个常用别名:

1
2
3
alias croot='cd ~/work'
alias cblog='cd ~/work/blog'
alias ctmp='cd /tmp'

如果项目很多,可以使用 zoxide 这类基于访问频率的跳转工具:

1
2
3
z blog
z android
z backend

它的好处是不用记完整路径,只要这个目录曾经访问过,就可以按关键字跳转。目录跳转越轻,越容易保持专注。

三、搜索优先用专门工具

查找代码时,建议优先使用 rg,也就是 ripgrep。它默认会跳过 .git、二进制文件和常见忽略目录,速度比普通递归搜索更适合代码仓库。

常用方式:

1
2
3
rg "UserRepository"
rg -n "TODO|FIXME"
rg --files | rg "Service"

如果只想看某类文件:

1
2
rg "CoroutineScope" -g "*.kt"
rg "useEffect" -g "*.tsx"

搜索时不要只记一个命令。更重要的是形成顺序:

  1. 先用 rg --files 缩小文件范围。
  2. 再按关键字定位入口。
  3. 最后打开相关文件阅读上下文。

这个顺序比直接在 IDE 里全局乱点更稳定,也更容易复盘。

四、让日志查看有固定套路

日志排查通常不是看一眼就结束,而是不断过滤、跟踪和定位时间点。

常用组合:

1
2
3
4
tail -f app.log
tail -n 200 app.log
rg "ERROR|Exception" app.log
rg "requestId=abc123" app.log

如果日志来自 systemd 服务:

1
2
3
journalctl -u my-app -n 200 --no-pager
journalctl -u my-app -f
journalctl -u my-app --since "2026-06-23 10:00:00"

建议给服务排查准备一个小脚本:

1
2
3
4
5
#!/usr/bin/env bash
set -euo pipefail

service_name="${1:-my-app}"
journalctl -u "$service_name" -n 200 --no-pager

保存为 logs,以后查看服务日志只需要:

1
2
logs nginx
logs my-app

脚本不需要复杂,关键是稳定、可记、可复制。

五、把重复命令放进项目脚本

每个项目都应该有一组标准命令,例如:

1
2
3
npm run lint
npm run test
npm run build

或者:

1
2
3
make test
make build
make deploy

不要让团队成员从文档里复制长命令。长命令适合写进脚本,人的入口应该尽量短。

例如把本地检查收敛成:

1
2
3
4
5
6
#!/usr/bin/env bash
set -euo pipefail

npm run lint
npm run test
npm run build

这样提交前只需要执行:

1
./check.sh

如果检查失败,脚本会在第一处错误停止,定位成本也更低。

六、用历史记录复用经验

命令行历史记录不是临时缓存,而是个人工作经验的一部分。

可以用这些方式找回命令:

1
2
3
history | rg "docker"
history | rg "ssh"
history | rg "journalctl"

也可以使用 Ctrl + r 做反向搜索。对于很长、很容易输错的命令,应该在验证可用之后马上沉淀成脚本或别名,而不是指望下次还能从历史里翻出来。

典型例子:

1
2
3
alias gs='git status --short'
alias gl='git log --oneline --decorate --graph -20'
alias gp='git pull --rebase'

别名应该只放真正高频的命令。太多别名会增加记忆负担,最后反而没人用。

七、脚本要有边界

写脚本时最容易犯的错误,是把一次性的操作写成看起来通用的工具。

更稳妥的规则是:

  • 高频重复操作,写脚本。
  • 有破坏性的操作,要求显式参数。
  • 会改生产环境的操作,打印目标环境。
  • 涉及删除、覆盖、发布的操作,先做检查。

例如部署脚本至少应该打印当前分支和目标环境:

1
2
3
4
5
6
7
8
#!/usr/bin/env bash
set -euo pipefail

echo "branch: $(git branch --show-current)"
echo "target: production"

npm run build
npm run deploy

脚本不是为了炫技,而是为了减少手工操作的偶然性。

八、保持工作流可迁移

个人机器上的配置可以很顺手,但项目里的关键命令不能只依赖个人环境。

建议区分两类内容:

  • 个人效率配置:别名、主题、跳转工具、补全工具。
  • 项目标准入口:package.jsonMakefilescripts/、README。

个人配置可以提高速度,项目入口负责让其他人也能跑起来。一个好的命令行工作流,应该既让自己快,也不让项目变得难以接手。

九、小结

命令行效率的提升,通常来自几个朴素动作:

  • 让目录跳转更短。
  • rg 快速缩小搜索范围。
  • 给日志查看准备固定入口。
  • 把重复检查写进脚本。
  • 把长命令沉淀成项目命令。
  • 对危险操作保持显式和可见。

工具本身并不神秘。真正重要的是把每天都会重复的动作变成稳定流程,让注意力回到代码、问题和交付本身。

其他文章
目录导航 置顶
  1. 1. 一、命令行效率的核心不是记命令
  2. 2. 二、先把目录跳转变快
  3. 3. 三、搜索优先用专门工具
  4. 4. 四、让日志查看有固定套路
  5. 5. 五、把重复命令放进项目脚本
  6. 6. 六、用历史记录复用经验
  7. 7. 七、脚本要有边界
  8. 8. 八、保持工作流可迁移
  9. 9. 九、小结
请输入关键词进行搜索