Mac 常用 Homebrew 命令行工具整理
在 Mac 上用 Homebrew 安装命令行工具,可以把很多系统自带命令升级成更高效、更现代的版本。比如文件搜索、目录查看、系统监控、网络调试、媒体处理、Java/Node 环境管理等,都可以通过一套统一的命令完成安装和更新。
安装和维护
常见的 Homebrew 操作如下:
1 | 搜索软件 |
如果想把当前安装的软件保存下来,方便换机器恢复,可以使用 brew bundle:
1 | 导出 Brewfile |
文件和目录工具
eza
eza 是 ls 的现代替代品,输出更清晰,支持图标、Git 状态、树形目录等功能。
好处:
- 比
ls更易读,颜色和文件类型区分更明显。 - 可以直接显示 Git 状态,适合开发目录。
- 树形展示比
tree更适合和文件详情一起使用。
常见操作:
1 | 列出文件详情 |
可以在 ~/.zshrc 中加别名:
1 | alias ls='eza' |
fd
fd 是 find 的替代品,语法更简单,默认忽略 .gitignore 中的文件,搜索速度也更快。
好处:
- 命令更短,不需要写复杂的
find . -name。 - 默认彩色输出,可读性更好。
- 和
xargs、fzf、编辑器结合非常方便。
常见操作:
1 | 查找 markdown 文件 |
ripgrep
ripgrep 的命令是 rg,可以替代 grep,用于全文搜索。它默认尊重 .gitignore,在代码仓库里搜索非常快。
好处:
- 搜索速度快,适合大项目。
- 默认递归搜索当前目录。
- 支持正则、文件类型过滤、上下文显示。
常见操作:
1 | 搜索关键字 |
tree
tree 用于以树形结构展示目录。虽然 eza --tree 也能做类似事情,但 tree 输出稳定,适合写文档、生成目录结构说明。
常见操作:
1 | 显示当前目录树 |
bat
bat 是 cat 的增强版,支持语法高亮、行号、Git 修改标记和分页显示。
好处:
- 查看代码比
cat清楚。 - 自动分页,长文件不会一次刷满终端。
- 支持显示不可见字符、指定语言高亮。
常见操作:
1 | 查看文件 |
可以设置别名:
1 | alias cat='bat' |
磁盘和系统监控
btop
btop 是 top、htop 的现代替代品,用于查看 CPU、内存、磁盘、网络和进程情况。
好处:
- 界面直观,适合快速定位资源占用。
- 支持鼠标操作和进程管理。
- 比系统自带
top更易读。
常见操作:
1 | 启动监控 |
进入界面后常用操作:
q退出。- 方向键选择进程。
f过滤进程。k结束进程。m切换显示模式。
duf
duf 是 df 的替代品,用于查看磁盘分区和挂载点空间使用情况。
好处:
- 表格更清晰,默认带颜色。
- 自动按设备、文件系统分类。
- 比
df -h更适合日常查看。
常见操作:
1 | 查看磁盘空间 |
dust
dust 是 du 的替代品,用于分析目录占用空间。
好处:
- 输出层级清楚,能快速找出大目录。
- 默认结果更适合人阅读。
- 比
du -sh *更直观。
常见操作:
1 | 查看当前目录空间分布 |
ncdu
ncdu 也是磁盘分析工具,和 dust 的区别是它提供交互式界面,适合手动清理大文件。
好处:
- 可以进入目录逐层查看。
- 能在界面里删除文件。
- 适合清理下载目录、缓存目录、构建产物。
常见操作:
1 | 分析当前目录 |
进入界面后常用操作:
- 方向键移动。
- 回车进入目录。
d删除选中的文件或目录。q退出。
fastfetch
fastfetch 类似 neofetch,用于显示系统信息,比如 macOS 版本、CPU、内存、Shell、终端、主题等。
常见操作:
1 | 显示系统信息 |
可以把它放到终端启动脚本中,但不建议每次打开终端都执行太多信息展示,否则会拖慢启动速度。
交互和终端效率
fzf
fzf 是命令行模糊查找工具,可以和历史命令、文件搜索、Git 分支、进程选择结合使用。
好处:
- 输入一部分字符就能快速筛选目标。
- 可以接收任意列表输入,通用性很强。
- 配合
fd、rg、zoxide后效率很高。
常见操作:
1 | 从当前目录文件中选择 |
安装后可以启用 shell 集成,常见快捷键:
Ctrl + R搜索历史命令。Ctrl + T搜索文件并插入命令行。Alt + C搜索目录并进入。
zoxide
zoxide 是 cd 的智能替代工具,会记录你访问过的目录,然后用关键词快速跳转。
好处:
- 不需要输入完整路径。
- 访问越多的目录权重越高。
- 对多项目开发很方便。
初始化配置:
1 | zsh |
常见操作:
1 | 跳转到路径中包含 blog 的常用目录 |
可以设置别名替代 cd:
1 | alias cd='z' |
zellij
zellij 是终端复用工具,功能类似 tmux,可以在一个终端窗口中管理多个 pane、tab 和 session。
好处:
- 适合同时运行编辑器、服务、日志、测试命令。
- session 可以保持,断开后再恢复。
- 默认界面提示比
tmux更友好。
常见操作:
1 | 启动 |
常用快捷键以 Ctrl + p、Ctrl + t、Ctrl + n 等模式键为入口,具体可以在底部状态栏查看提示。
zsh-autosuggestions
zsh-autosuggestions 会根据历史命令给出灰色自动补全建议,类似 Fish Shell 的体验。
好处:
- 常用长命令不用重复输入。
- 对 Git、Docker、npm、brew 等命令很有帮助。
常见配置方式是在 ~/.zshrc 中加载插件:
1 | source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh |
使用时按右方向键或 Ctrl + e 接受建议。
zsh-syntax-highlighting
zsh-syntax-highlighting 会在输入命令时进行语法高亮,正确命令和错误命令会用不同颜色显示。
好处:
- 命令还没执行前就能发现拼写问题。
- 路径、字符串、管道等结构更容易辨认。
常见配置方式:
1 | source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh |
通常建议把它放在 ~/.zshrc 的最后加载。
网络和传输工具
httpie
httpie 的命令通常是 http,可以替代部分 curl 使用场景,用更自然的方式发送 HTTP 请求。
好处:
- 输出自动格式化 JSON。
- 请求参数写法更接近人类阅读习惯。
- 适合调试 API。
常见操作:
1 | GET 请求 |
telnet
telnet 现在较少用于远程登录,更多用于测试 TCP 端口是否连通。
替代工具包括 nc、curl、nmap,但 telnet host port 仍然简单直接。
常见操作:
1 | 测试端口连通性 |
lrzsz
lrzsz 提供 rz 和 sz 命令,用于通过 ZMODEM 协议上传和下载文件。它常见于 SSH 终端工具配合远程服务器传文件的场景。
常见操作:
1 | 从本地上传文件到远程服务器 |
注意:并不是所有终端都支持 ZMODEM。iTerm2 等终端通常需要额外配置触发脚本,或者改用 scp、rsync、sftp。
媒体和文件信息
ffmpeg
ffmpeg 是音视频处理工具,可以转码、压缩、裁剪、抽取音频、截取封面、合并文件等。
好处:
- 功能非常全面,是很多视频软件背后的基础工具。
- 适合批量处理媒体文件。
- 命令行可复现,方便写脚本。
常见操作:
1 | 查看媒体信息 |
exiftool
exiftool 用于查看和修改图片、音频、视频、PDF 等文件的元数据,比如拍摄时间、相机型号、GPS、作者信息等。
好处:
- 支持的格式多。
- 适合照片整理、隐私清理、批量改元数据。
常见操作:
1 | 查看文件元数据 |
exiftool 默认会生成 _original 备份文件,如果确认不需要备份,可以使用 -overwrite_original。
帮助文档
tldr
tldr 是 man 的简化替代品,提供更短、更实用的命令示例。
好处:
- 比
man更适合快速查用法。 - 示例优先,容易复制修改。
- 对不常用命令很有帮助。
常见操作:
1 | 查看命令示例 |
推荐组合
这些工具单独使用已经很方便,组合起来效果更明显。
搜索文件并查看内容
1 | bat "$(fd 'README.md' | fzf)" |
搜索文本并打开文件
1 | rg -l "TODO" | fzf |
找出大目录并清理
1 | dust -d 2 ~/Downloads |
查看项目概况
1 | eza -la --git |
API 调试
1 | http -v POST http://localhost:3000/api/login username=admin password=123456 |
总结
这批工具大致可以分成几类:
bat、eza、fd、ripgrep、tree提升文件查看和搜索效率。btop、duf、dust、ncdu、fastfetch帮助查看系统和磁盘状态。fzf、zoxide、zellij、zsh-autosuggestions、zsh-syntax-highlighting提升终端交互体验。httpie、telnet、lrzsz面向网络调试和文件传输。ffmpeg、exiftool面向媒体处理和文件元数据。tldr用来快速查命令示例。
如果只想优先熟悉一部分,建议先从 eza、fd、rg、bat、fzf、zoxide 开始。这几项对日常开发和终端使用的提升最明显。