Skip to content
shell
# 查看本机上安装的软件
brew list

终端工具

starship

跨 Shell 的极速命令行提示符,用 Rust 编写,支持 bash/zsh/fish 等主流 Shell。可在提示符中实时展示 Git 分支状态、当前语言版本(Node、Python、Go 等)、命令执行耗时等信息,高度可配置。

shell
brew install starship

# 在 ~/.zshrc 末尾添加初始化语句
echo 'eval "$(starship init zsh)"' >> ~/.zshrc

配置文件位于 ~/.config/starship.toml,可自定义每个模块的显示内容与样式。

zellij

终端多路复用器,功能上对标 tmux,但内置布局系统、插件机制,且上手门槛更低。支持分屏(水平/垂直)、多会话管理、持久化会话(断开连接后进程仍在后台运行)。

shell
brew install zellij

# 启动
zellij

# 常用快捷键
# Ctrl + p → 进入 Pane 模式(新建/关闭分屏)
# Ctrl + t → 进入 Tab 模式(新建/切换标签页)
# Ctrl + n → 进入 Resize 模式(调整分屏大小)

yazi

基于终端的文件管理器,用 Rust 编写,支持图片预览(Kitty/iTerm2 协议)、文件操作、异步 IO,速度极快。可与 fzf、fd、bat 等工具深度集成。

shell
brew install yazi

# 启动,进入当前目录
yazi

# 常用快捷键
# h/j/k/l → 左/下/上/右导航
# Enter    → 进入目录 / 打开文件
# y        → 复制,p → 粘贴,d → 剪切,D → 删除
# q        → 退出

eza

ls 命令的现代替代品,用 Rust 编写。支持颜色输出、文件图标、Git 状态标注、树形视图,可读性远优于原生 ls

shell
brew install eza

# 常用命令
eza                  # 基础列表
eza -l               # 长格式(详细信息)
eza -la              # 包含隐藏文件
eza --tree           # 树形展示目录结构
eza --git            # 显示 Git 状态
eza -l --sort=modified  # 按修改时间排序

可在 ~/.zshrc 中设置别名替换 ls

shell
alias ls="eza"
alias ll="eza -l"
alias la="eza -la"

bat

cat 命令的现代替代品,用 Rust 编写。支持语法高亮(100+ 种语言)、显示行号、Git 差异标注,并自动分页。

shell
brew install bat

# 常用命令
bat file.ts          # 带高亮查看文件
bat -n file.ts       # 显示行号
bat --plain file.ts  # 纯净输出(无装饰)
bat -A file.ts       # 显示不可见字符

# 配置语言
bat --language=json file  # 强制指定语言高亮

可将 bat 作为 man 的分页器使用:

shell
export MANPAGER="sh -c 'col -bx | bat -l man -p'"

fd

find 命令的现代替代品,用 Rust 编写。默认忽略 .gitignore 中的文件、隐藏文件,语法更直观,速度更快。

shell
brew install fd

# 常用命令
fd                   # 列出当前目录所有文件
fd pattern           # 按名称模糊匹配
fd -e ts             # 按扩展名过滤(.ts 文件)
fd -t d pattern      # 只查找目录
fd -H pattern        # 包含隐藏文件
fd pattern src/      # 在指定目录内搜索

fzf

命令行模糊查找工具,用 Go 编写。可对任意文本列表进行交互式过滤,常与 Shell 历史、文件搜索、Git 等命令深度集成。

shell
brew install fzf

# 安装 Shell 集成(历史搜索、路径补全等)
$(brew --prefix)/opt/fzf/install

常用场景:

shell
# 交互式模糊搜索文件并打开
vim $(fzf)

# Ctrl + r → 交互式搜索命令历史
# Ctrl + t → 交互式选择文件路径插入命令行
# Alt  + c → 交互式进入子目录

# 结合 fd 使用(忽略 node_modules 等)
export FZF_DEFAULT_COMMAND='fd --type f --hidden --exclude .git'

tree

以树形结构展示目录层级,便于快速了解项目结构。

shell
brew install tree

# 常用命令
tree                 # 展示当前目录
tree -L 2            # 限制显示深度为 2 层
tree -a              # 包含隐藏文件
tree -I "node_modules|dist"  # 排除指定目录
tree -d              # 只显示目录

chezmoi

dotfiles 管理工具,用 Go 编写。将 ~/.zshrc~/.gitconfig 等配置文件统一纳入版本控制,并支持跨机器同步,同一份配置可以一键部署到新机器上。支持模板语法,可针对不同机器生成差异化配置。

shell
brew install chezmoi

# 初始化(关联 GitHub 上的 dotfiles 仓库)
chezmoi init https://github.com/<username>/dotfiles

# 在新机器上一键应用所有配置
chezmoi apply

# 将已有配置文件纳入 chezmoi 管理
chezmoi add ~/.zshrc
chezmoi add ~/.gitconfig

# 编辑被管理的配置文件
chezmoi edit ~/.zshrc

# 预览本次变更(不实际应用)
chezmoi diff

# 应用变更
chezmoi apply

# 推送到远程仓库
chezmoi cd && git add . && git commit -m "update" && git push

chezmoi 管理的源文件存放在 ~/.local/share/chezmoi/,本质是一个 Git 仓库。


开发工具

git-delta

Git diff 的语法高亮增强工具,用 Rust 编写。输出更清晰的代码差异视图,支持并排对比、行号显示、语法高亮。

shell
brew install git-delta

~/.gitconfig 中启用:

ini
[core]
    pager = delta

[delta]
    navigate = true      # 用 n/N 在文件间跳转
    side-by-side = true  # 并排对比模式
    line-numbers = true

[interactive]
    diffFilter = delta --color-only

lazygit

Git 的终端 UI 客户端,用 Go 编写。将 git statusgit log、暂存区管理、分支操作等功能整合在一个交互式界面中,极大提升 Git 操作效率。

shell
brew install lazygit

# 在 Git 仓库目录下启动
lazygit
# 或简写
lg

界面分为五个面板:Files(文件)、Branches(分支)、Commits(提交历史)、Stash(暂存)、主视图(diff)。常用快捷键:

space → 暂存/取消暂存文件
c     → 提交
p     → 推送
P     → 拉取
b     → 切换/新建分支
?     → 查看帮助

nvm

Node.js 版本管理工具,可在同一机器上安装并自由切换多个 Node.js 版本,适合需要兼容多项目不同 Node 版本的场景。

shell
brew install nvm

# 在 ~/.zshrc 中添加初始化
export NVM_DIR="$HOME/.nvm"
[ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && source "$(brew --prefix)/opt/nvm/nvm.sh"

常用命令:

shell
nvm install 20        # 安装 Node.js 20
nvm install --lts     # 安装最新 LTS 版本
nvm use 18            # 切换到 Node.js 18
nvm alias default 20  # 设置默认版本
nvm ls                # 列出已安装版本
nvm ls-remote         # 列出可安装的远程版本

pyenv

Python 版本管理工具,可在同一机器上安装并切换多个 Python 版本,支持项目级别的版本锁定(.python-version 文件)。

shell
brew install pyenv

# 在 ~/.zshrc 中添加初始化
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

常用命令:

shell
pyenv install 3.12.0   # 安装指定版本
pyenv global 3.12.0    # 设置全局默认版本
pyenv local 3.10.0     # 为当前目录设置版本(生成 .python-version)
pyenv versions         # 列出已安装版本
pyenv which python     # 查看当前使用的 python 路径

yarn

Node.js 包管理器,是 npm 的替代品。提供更快的依赖安装速度、确定性的依赖锁定(yarn.lock),以及 Workspaces 多包管理能力。

shell
brew install yarn

# 常用命令
yarn install           # 安装依赖
yarn add <package>     # 添加依赖
yarn add -D <package>  # 添加开发依赖
yarn remove <package>  # 移除依赖
yarn run <script>      # 执行 package.json 中的脚本
yarn upgrade           # 升级依赖

autoconf

自动化配置脚本生成工具,是 GNU 构建系统的核心组件。通过读取 configure.ac 文件生成 configure 脚本,使源码包可在不同平台上自动检测编译环境。通常作为编译安装 C/C++ 项目时的依赖。

shell
brew install autoconf

m4

通用宏处理器,是 autoconf 的底层依赖。负责文本替换和宏展开,在构建系统中被自动调用,一般不需要直接使用。

shell
brew install m4

pkgconf

pkg-config 的现代替代实现,用于在编译时查询已安装库的头文件路径、链接参数等信息,使构建系统能正确找到依赖库。

shell
brew install pkgconf

# 查询某个库的编译参数
pkgconf --cflags --libs openssl

数据库

MySQL

最流行的开源关系型数据库,适合 Web 应用、后端服务等场景。支持 SQL 标准,提供事务、索引、存储过程等完整特性。

shell
brew install mysql

# 启动服务
brew services start mysql

# 连接数据库
mysql -u root -p

# 常用操作
mysql> SHOW DATABASES;
mysql> CREATE DATABASE mydb;
mysql> USE mydb;
mysql> SHOW TABLES;

Redis

基于内存的键值存储数据库,支持字符串、哈希、列表、集合、有序集合等数据结构。常用于缓存、会话存储、消息队列、排行榜等场景,读写性能极高。

shell
brew install redis

# 启动服务
brew services start redis

# 连接客户端
redis-cli

# 常用命令
redis-cli> SET key "value"
redis-cli> GET key
redis-cli> EXPIRE key 3600  # 设置 TTL(秒)
redis-cli> KEYS *            # 列出所有 key(生产环境慎用)
redis-cli> FLUSHDB           # 清空当前数据库

压缩 / 数据处理

zstd

Facebook 开源的高性能无损压缩算法(Zstandard),在压缩率和速度之间取得优秀平衡,是 Docker 镜像、Linux 内核等项目的首选压缩格式。

shell
brew install zstd

zstd file.txt           # 压缩为 file.txt.zst
zstd -d file.txt.zst    # 解压
zstd -19 file.txt       # 最高压缩级别(1-22)

lz4

极速无损压缩算法库,以牺牲部分压缩率换取最快的压缩/解压速度,常用于对延迟敏感的实时场景(日志压缩、网络传输等)。

shell
brew install lz4

lz4 file.txt            # 压缩
lz4 -d file.txt.lz4     # 解压

xz

高压缩比压缩工具,使用 LZMA2 算法,压缩率通常优于 gzip/bzip2,但速度较慢。常见于 Linux 发行版源码包(.tar.xz)的分发。

shell
brew install xz

xz file.txt             # 压缩(原文件被替换)
xz -d file.txt.xz       # 解压
xz -k file.txt          # 压缩并保留原文件
tar -xJf archive.tar.xz # 解压 tar.xz 包

zlib

通用数据压缩库,实现了 DEFLATE 压缩算法,是 gzip、PNG、HTTP 压缩传输的底层基础。几乎所有需要压缩功能的软件都依赖它。

shell
brew install zlib

基础依赖库

以下为底层依赖库,通常由其他软件自动引入,不需要直接调用。

libgit2

Git 协议的 C 语言库实现,为上层工具提供 Git 仓库读写能力。lazygit、各语言的 Git 绑定库(如 Node 的 nodegit、Ruby 的 rugged)均依赖它。

libssh2

SSH2 协议的 C 语言客户端库,为 Git(SSH 传输)、curl 等工具提供 SSH 连接能力,是 libgit2 的依赖之一。

openssl@3

加密通信基础库,提供 SSL/TLS 协议、对称/非对称加密、证书管理等能力。几乎所有涉及网络安全的工具都依赖它。

ca-certificates

系统受信任的 CA 根证书集合,供 curl、openssl 等工具在建立 HTTPS 连接时验证服务器证书的合法性。

mole

SSH 隧道管理工具,简化多跳 SSH 端口转发的配置,可将远程服务(如数据库)安全地映射到本地端口。

shell
brew install mole

# 将远程 MySQL(3306)映射到本地 3307
mole start --remote 3306 --local 3307 user@ssh-host

readline

为命令行程序提供行编辑、历史记录、Tab 补全功能的库。Python REPL、MySQL CLI 等交互式命令行工具均依赖它。

oniguruma

多语言正则表达式库(支持多种正则语法标准),被 Ruby、PHP、jq 等语言/工具采用。

abseil

Google 开源的 C++ 基础库集合(Abseil),提供字符串处理、时间、哈希、同步原语等通用组件,是 gRPC、Protobuf 等 Google 系项目的核心依赖。

protobuf@29

Google 的 Protocol Buffers 序列化框架,通过 .proto 文件定义数据结构,自动生成多语言代码,常用于微服务间的高效通信(gRPC)。

icu4c@77

Unicode 与国际化支持库(ICU),提供字符编码转换、字符串排序、日期/数字格式化等多语言处理能力,是 Node.js、MySQL 等软件的依赖。