Back

5 个让前端工作更快的终端命令

5 个让前端工作更快的终端命令

你正在深入开发一个包含数百个组件的 React 项目。你需要找到每个导入特定 hook 的文件,定位上周写的那个工具函数,并回忆起昨天运行的确切构建命令。在文件夹中点击和滚动浏览器历史记录会浪费分钟,累积起来就是数小时。

这五个命令可以解决这些问题。它们不是构建工具或框架脚手架——只是快速的 CLI 工作流,帮助你在大型代码库中搜索、导航和更高效地工作。

核心要点

  • Ripgrep (rg) 可以在数千个文件中搜索文件内容,比标准的 grep 更快,自动忽略 node_modules 并遵循 .gitignore 规则。
  • fzf 提供交互式模糊查找功能,让你通过输入部分名称来定位文件,无需记住确切路径。
  • Ctrl+R 可以搜索你的 shell 历史记录中之前运行的命令,与 fzf 配合使用可升级为可视化模糊搜索。
  • fd 提供比传统 find 命令更简单的语法来按名称模式定位文件。
  • tree 和 eza 以层次结构显示目录结构,帮助你一目了然地理解项目布局。

1. Ripgrep:快速的项目内文本搜索

解决的问题: 在数千个文件中查找引用某个 prop、函数或导入的每个文件。

标准的 grep -R 可以工作,但 ripgrep (rg) 速度快得多。它自动忽略 node_modules,遵循 .gitignore 规则,并默认递归搜索。

rg "useState" --type js

这会找到项目中每个包含 useState 的 JavaScript 文件。需要找到组件接收特定 prop 的位置?像这样的搜索和导航命令只需几秒钟而不是几分钟。

专业提示: 添加 -l 仅列出文件名,或添加 -C 2 在每个匹配项周围显示两行上下文。

2. fzf:万能的模糊查找

解决的问题: 当你只记得部分文件名时打开文件。

fzf 是一个交互式模糊查找器,可以改变你导航项目的方式。输入几个字符,它就会立即过滤数千个文件并显示匹配项。

fzf

开始输入 btncomp,它就会找到 src/components/ButtonComponent.tsx。模糊匹配消除了记住确切路径的心理负担。

编辑器集成: 将结果直接传递给你的编辑器:

code $(fzf)

3. Ctrl+R 增强历史搜索

解决的问题: 回忆几天前运行的长命令。

每个 shell 都会存储命令历史记录。按 Ctrl+R 并开始输入以向后搜索。这对于运行复杂构建、测试或部署命令的前端开发者至关重要。

# 按 Ctrl+R,然后输入 "build"
# 找到: npm run build:prod --env=staging

高级技巧: 安装 fzf,它会自动将 Ctrl+R 升级为对整个历史记录的可视化模糊搜索。你可以在几秒钟内找到上个月那个晦涩的 webpack 命令。

Shell 兼容性: 适用于 Bash 和 Zsh。Fish 使用 Ctrl+R 的方式不同,但提供类似的功能。

4. fd:现代化的文件查找

解决的问题: 按名称模式定位文件,无需记住晦涩的 find 语法。

传统的 find 命令可以工作,但需要冗长的标志。fd 是一个更简单、更快的替代方案,默认忽略隐藏文件和 node_modules

fd "\.test\.js$"

这会找到项目中的所有测试文件。需要找到最近创建的配置文件?

fd config --type f --changed-within 1week

这些命令帮助你快速浏览陌生的代码库。

5. tree 或 eza:清晰的目录结构

解决的问题: 无需点击文件夹即可理解项目布局。

当你加入新项目或探索陌生的包时,一目了然地查看结构很有帮助。tree 命令以层次结构显示目录。

tree -L 2 -I node_modules

这会显示两层深度,排除 node_modules。对于更现代的替代方案,eza(exa 的维护版本)提供带有 git 状态的彩色输出:

eza --tree --level=2 --git-ignore

快速参考

任务命令
搜索文件内容rg "pattern"
按名称查找文件fd "pattern"
模糊打开文件fzf
搜索命令历史Ctrl+R
查看目录结构tree -L 2eza --tree

总结

选择一个命令并使用一周。rgCtrl+R 提供最快的回报——你会立即停止手动搜索文件或重新输入长命令。

这些工具适用于任何前端项目,无论使用什么框架。它们构成了快速 CLI 工作流的基础,随着时间推移会产生复合效应。一旦你内化了它们,你会惊讶于没有它们之前是如何工作的。

常见问题

可以,所有五个工具都可以在 Windows 上使用。Ripgrep、fd、fzf 和 eza 可以通过 Scoop 或 Chocolatey 等包管理器安装。tree 命令内置于 Windows 命令提示符中。为了获得最佳体验,建议使用带有 WSL 或 Git Bash 的 Windows Terminal,它们提供更类似 Unix 的环境,这些工具在其中使用起来更自然。

大多数包管理器都支持这些工具。在 macOS 上,使用 Homebrew,命令如 brew install ripgrep fzf fd eza。在 Ubuntu 或 Debian 上,某些工具可以使用 apt,但你可能需要从它们的 GitHub releases 下载其他工具。Windows 用户可以使用 Scoop 或 Chocolatey。每个工具的 GitHub 页面都提供针对你的操作系统的详细安装说明。

不会,这些工具是为大型代码库的速度而设计的。Ripgrep 和 fd 用 Rust 编写并针对性能进行了优化。它们自动跳过 node_modules 并遵循 gitignore 文件,这防止它们扫描不必要的目录。即使在包含数千个文件的项目中,大多数搜索也能在一秒内完成。

可以,许多 IDE 都集成了这些工具。VS Code 有 fzf 和 ripgrep 集成的扩展。JetBrains IDE 内部使用类似的搜索算法。但是,学习终端版本可以让你在任何编辑器或远程服务器上获得一致的工作流。你还可以使用命令替换将这些工具的结果直接传递给你的编辑器。

Gain control over your UX

See how users are using your site as if you were sitting next to them, learn and iterate faster with OpenReplay. — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay