---
title: CLI 工具箱
url: https://doc.liz6.com/tools/cli-toolbox
locale: zh
area: tools
tags:
- tools
date: null
modified: 2026-06-30
description: 那几样现代命令行替代品,以及真正值得配一次的 git + delta。
---

# CLI 工具箱

这类工具现在基本是常识了,但每样真正改变日常的点其实很具体,不只是"更快的 X"。逐个说说我天天用到的特性。

**`rg`(ripgrep)替 grep** — 最大的差别不是快,是**默认就对**:它自动遵守 `.gitignore`/`.ignore`、跳过隐藏文件和二进制,所以在仓库里搜永远只命中你关心的源码,不会被 `node_modules`、`target/` 淹没。要连被忽略的也搜才加 `-uu`(再加一个 `u` 连二进制都搜)。常用 `-t rust` 按文件类型过滤、`-g '*.toml'` 按 glob、`-A/-B/-C` 给上下文、`rg foo -r bar` 预览替换。它快是因为 Rust 的正则走有限自动机 + 多线程 + 跳过该跳的,不是靠蛮力。

**`fd` 替 find** — `fd 模式` 直接对文件名做 smart-case 正则,不用再背 `find . -name '*.x' -type f` 那套;同样默认守 gitignore(`-H` 带隐藏、`-I` 不守 ignore)。真正顺手的是 `-x`/`-X` 批量执行:`fd -e jpg -x convert {} {.}.png` 对每个结果并行跑、`-X` 则把所有结果一次性喂给一条命令。

**`bat` 替 cat** — 语法高亮只是表面,它还在行号旁显示 git 增删 gutter、自动分页(套 less)。关键是**管道安全**:一旦检测到输出不是终端,它自动退化成纯 cat,不会把转义码灌进下游。所以拿它当 `cat` 别名零负担,还能当 `MANPAGER`(`bat -l man`)和 fzf 预览的渲染后端。

**`eza` 替 ls** — `eza -l --git --icons` 把每个文件的 git 状态直接标在列表里,`--tree --level=2` 当 tree 用还守 gitignore。我 `ls` 全家(`ls`/`ll`/`tree`)都换成了它,具体别名在 [Zsh](shell.md) 那篇。

**`zoxide` 让 `z` 跳目录** — 它维护一张按 **frecency**(访问频率 × 最近程度)排序的目录表,`z dow` 就跳到你最常去的那个 `Downloads`,`z foo bar` 多关键词缩小匹配,`zi` 调出 fzf 交互选。完全从你的 `cd` 历史自学,不用手配任何路径。

**`just` 当项目里的 make** — 它**不是构建系统**:没有文件依赖图、不看时间戳,就是个"项目命令别名表"。把那些记不住的长命令写成 recipe,`just deploy`、`just test --release` 一句跑;支持变量、`.env`、给单条 recipe 指定 shebang 用别的语言写。比 Makefile 省心在没有 tab 地狱、没有 `.PHONY` 和隐式规则的坑。

**`fastfetch` / `tldr`** — 前者是更快的 neofetch,截图报家底用;后者给命令的**实用示例**(`tldr tar` 直接出最常用的几条),比啃 man 的完整 flag 列表快得多,离线缓存。

这堆里 bat/eza/fzf 还兼任 [Zsh 补全预览](shell.md) 的后端。

真正值得花几分钟配的是 git 的 diff,我用 delta:

```ini
[core]        pager = delta
[interactive] diffFilter = delta --color-only
[delta]       navigate = true        # n / N 在文件间跳
              line-numbers = true
[merge]       conflictStyle = zdiff3
[diff]        colorMoved = default
```

两个设置改善很明显。`zdiff3` 把合并冲突的标记从"两边对照"换成"三方"——多显示一段共同祖先,到底是谁动了什么一眼能判,解冲突少绕很多弯。`colorMoved` 给整块挪了位置的代码单独配色,review 时不会把"搬家"误读成"重写"。delta 配 lazygit 用,终端里看 diff 比网页舒服。
