主题模式
Are you an LLM? You can read better optimized documentation at /vps/tools/cli-productivity-tools.md for this page in Markdown format
命令行效率工具集:让终端操作快 10 倍的利器
Linux 传统命令(cat、find、grep、cd)用了几十年,虽然经典但效率有限。近年涌现了一批用 Rust/Go 重写的现代 CLI 工具,在保留原有用法的同时大幅提升了速度和体验。本文汇总最实用的命令行效率工具,每个都是即装即用、立竿见影。
📋 工具总览
| 传统命令 | 现代替代 | 优势 | 语言 |
|---|---|---|---|
cat | bat | 语法高亮、Git 集成、行号 | Rust |
find | fd | 速度快 10x、语法更简洁 | Rust |
grep | ripgrep | 速度快 5-10x、默认递归 | Rust |
cd | zoxide | 智能跳转、记住常用目录 | Rust |
ls | eza | 彩色输出、Git 状态、图标 | Rust |
top | htop/btop | 交互式、可视化、鼠标支持 | C++ |
git | lazygit | TUI 界面、可视化操作 | Go |
man | tldr | 简洁示例、快速查阅 | Rust |
ctrl+r | fzf | 模糊搜索、全交互式 | Go |
🦇 bat — 替代 cat
bat 是 cat 的增强版,提供语法高亮、行号显示、Git 集成。
安装
bash
# macOS
brew install bat
# Ubuntu/Debian
apt install bat
# Arch
pacman -S bat
# Cargo
cargo install batUbuntu 命令名
Ubuntu 上 bat 的命令是 batcat(避免与另一个包冲突)。可以创建别名:alias bat=batcat
常用用法
bash
# 查看文件(自动语法高亮)
bat file.py
# 不显示行号和装饰
bat -p file.py
# 显示指定行范围
bat --line-range 10:20 file.py
# 查看多个文件
bat src/*.js
# 作为管道(语法高亮其他命令输出)
ls -la | bat
# 查看 JSON
echo '{"key":"value"}' | bat -l json
# 不分页显示
bat --paging=never file.py配置
bash
# 设置主题
bat --config-file
# 在配置文件中添加:
--theme="Dracula"
--paging=never
--style="numbers,changes,header" # 行号+Git变更+文件头🔍 fd — 替代 find
fd 是 find 的现代替代,速度更快、语法更简洁。
安装
bash
# macOS
brew install fd
# Ubuntu/Debian
apt install fd-find # 命令名为 fdfind
# Cargo
cargo install fd-find常用用法
bash
# 按名称查找(默认模糊匹配)
fd config # 匹配 *config*
fd '^test.*\.py$' # 正则匹配
# 按扩展名查找
fd -e py # 所有 .py 文件
fd -e md -e mdx # .md 或 .mdx
# 按类型查找
fd -t f # 只找文件
fd -t d # 只找目录
fd -t l # 只找软链接
# 排除目录
fd -E node_modules -E .git config
# 限制搜索深度
fd -d 2 config # 只搜索 2 层深度
# 执行命令(类似 find -exec)
fd -e jpg -x convert {} {.}.png # 批量转换图片
# 显示隐藏文件
fd -H config
# 大小写敏感
fd -s CONFIG对比 find
bash
# find 写法
find . -name "*.py" -type f -not -path "*/node_modules/*"
# fd 写法(简洁得多)
fd -e py -E node_modules⚡ ripgrep (rg) — 替代 grep
ripgrep 是目前最快的文本搜索工具,比 grep 快 5-10 倍。
安装
bash
# macOS
brew install ripgrep
# Ubuntu/Debian
apt install ripgrep
# Cargo
cargo install ripgrep常用用法
bash
# 基础搜索(默认递归)
rg "function" # 搜索当前目录
rg "function" src/ # 搜索指定目录
# 只看文件名(不显示内容)
rg -l "function" # 列出包含匹配的文件
# 显示行号和上下文
rg -n "function" # 显示行号
rg -C 3 "function" # 上下文各 3 行
rg -B 2 "function" # 前 2 行
rg -A 5 "function" # 后 5 行
# 正则搜索
rg "import.*from" # 正则匹配
rg -r 'new_$0' "old_" # 预览替换结果
| 只搜特定文件类型
rg -t py "function" # 只搜 Python 文件
rg -t js -t ts "import" # JS + TS
rg -T py "function" # 排除 Python
# 大小写不敏感
rg -i "Function"
# 全词匹配
rg -w "function" # 不匹配 functions
# 统计匹配数量
rg -c "function" # 每个文件的匹配数
rg --count-matches "function" # 总匹配数
# 搜索隐藏文件
rg --hidden "config"
| 多行搜索
rg -U "start.*end" # 跨行匹配对比 grep
bash
# grep 递归搜索(需要 -r)
grep -r "function" --include="*.py" .
# ripgrep(默认递归,默认智能过滤)
rg -t py "function"🧭 zoxide — 替代 cd
zoxide 会记住你访问过的目录,用关键词就能跳转。
安装
bash
# macOS
brew install zoxide
# Ubuntu/Debian
apt install zoxide
# Cargo
cargo install zoxide初始化
bash
# 添加到 ~/.zshrc 或 ~/.bashrc
eval "$(zoxide init zsh)" # zsh
eval "$(zoxide init bash)" # bash常用用法
bash
# 替代 cd(用 z 代替)
z projects # 跳转到最常访问的含 "projects" 的目录
z proj src # 多关键词缩小范围
# 交互式选择
zi projects # 用 fzf 选择匹配的目录
# 查看排名
zoxide query --list # 列出所有记录的目录
# 跳转到上一级目录
z .. # 仍然支持传统 cd 语法🎨 eza — 替代 ls
eza 是 exa 的延续维护版本,提供彩色输出和 Git 集成。
安装
bash
# macOS
brew install eza
# Ubuntu/Debian
apt install eza
# Cargo
cargo install eza常用用法
bash
# 基础列表
eza # 简洁列表
eza -l # 长格式
eza -la # 包含隐藏文件
# 树状视图
eza --tree # 树状结构
eza --tree --level=2 # 限制深度
| Git 集成
eza -l --git # 显示 Git 状态
eza -l --git-ignore # 忽略 .gitignore 中的文件
| 按时间排序
eza -l --sort=modified # 按修改时间
eza -l --sort=modified --reverse # 最旧在前
# 按大小排序
eza -l --sort=size
# 显示图标(需要 Nerd Font)
eza -l --icons推荐别名
bash
# ~/.zshrc 或 ~/.bashrc
alias ls='eza --icons'
alias ll='eza -l --icons --git'
alias la='eza -la --icons --git'
alias lt='eza --tree --level=2 --icons'🔮 fzf — 模糊搜索神器
fzf 是一个通用的命令行模糊搜索工具,可以大幅提升交互效率。
安装
bash
# macOS
brew install fzf
$(brew --prefix)/opt/fzf/install # 配置快捷键
# Ubuntu/Debian
apt install fzf
# Git
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install常用用法
bash
# 搜索文件
fzf # 模糊搜索当前目录文件
# 搜索文件内容
rg --line-number --no-heading --color=always '' | fzf
# 搜索并打开文件
vim $(fzf)
# 命令历史搜索(Ctrl+R,安装后自动绑定)
# 进程搜索
kill -9 $(ps aux | fzf | awk '{print $2}')
# 目录跳转(配合 zoxide)
cd $(find . -type d | fzf)
# Git 分支切换
git checkout $(git branch | fzf | tr -d ' *')自定义预览
bash
# 文件预览
fzf --preview 'bat --color=always {}'
# 目录预览
fzf --preview 'eza -l --color=always {}'🖥️ btop — 替代 top
btop 是最漂亮的系统监控工具,提供实时可视化图表。
安装
bash
# macOS
brew install btop
# Ubuntu/Debian
apt install btop
# Cargo
cargo install btop常用操作
| 快捷键 | 功能 |
|---|---|
q | 退出 |
1-4 | 切换 CPU/内存/网络/进程 |
f | 过滤进程 |
s | 排序 |
+/- | 调整刷新频率 |
n | 切换精简/详细视图 |
e | 切换树状视图 |
🐙 lazygit — Git 可视化操作
lazygit 是 Git 的终端 GUI,让 Git 操作变得直观高效。
安装
bash
# macOS
brew install lazygit
# Ubuntu/Debian
# 从 GitHub Releases 下载最新版核心操作
| 快捷键 | 功能 |
|---|---|
space | 暂存/取消暂存文件 |
c | 提交 |
P | 推送 |
p | 拉取 |
b | 分支操作 |
s | Stash 操作 |
/ | 搜索 |
? | 帮助 |
h/l | 左右切换面板 |
k/j | 上下导航 |
实用场景
# 交互式 cherry-pick
1. 进入 Branches 面板
2. 选择源分支
3. 选中 commit
4. 按 C 复制
# 交互式 rebase
1. 进入 Branches 面板
2. 选择目标分支
3. 按 e 进入 rebase 模式
4. 选择 commit 进行 pick/squash/drop📖 tldr — 替代 man
tldr 提供命令的简洁示例,比 man 页面实用得多。
安装
bash
# macOS
brew install tldr
# npm
npm install -g tldr
# Cargo
cargo install tealdeer常用用法
bash
# 查看命令示例
tldr tar
ttar ffmpeg
tldr git
# 更新缓存
tldr --update对比 man
bash
# man tar → 几千行文档
# tldr tar →
tar
Archiving utility.
Often combined with a compression method, such as gzip or bzip2.
- [c]reate an archive and write it to a [f]ile:
tar cf path/to/target.tar path/to/file1 path/to/file2 ...
- E[x]tract an archive from a [f]ile to the current directory:
tar xf path/to/source.tar🪟 tmux — 终端复用器
tmux 可以在一个终端窗口中管理多个会话,断开 SSH 后进程不中断。
安装
bash
# macOS
brew install tmux
# Ubuntu/Debian
apt install tmux核心概念
tmux server
├── session 1
│ ├── window 1
│ │ ├── pane 1
│ │ └── pane 2
│ └── window 2
└── session 2常用操作
会话管理:
bash
tmux new -s work # 新建会话
tmux ls # 列出会话
tmux attach -t work # 重新连接会话
tmux kill-session -t work # 关闭会话会话内快捷键(前缀键默认 Ctrl+b):
| 快捷键 | 功能 |
|---|---|
Ctrl+b d | 分离会话 |
Ctrl+b c | 新建窗口 |
Ctrl+b n/p | 下一个/上一个窗口 |
Ctrl+b % | 垂直分屏 |
Ctrl+b " | 水平分屏 |
Ctrl+b 方向键 | 切换面板 |
Ctrl+b z | 面板全屏/恢复 |
Ctrl+b x | 关闭面板 |
Ctrl+b [ | 进入复制模式 |
推荐配置
bash
# ~/.tmux.conf
# 修改前缀键为 Ctrl+a(更顺手)
set -g prefix C-a
unbind C-b
# 开启鼠标支持
set -g mouse on
| 从 1 开始编号
set -g base-index 1
setw -g pane-base-index 1
| 256 色支持
set -g default-terminal "screen-256color"
# 分屏快捷键更直觉
bind | split-window -h
bind - split-window -v📦 一键安装所有工具
bash
#!/bin/bash
# install-cli-tools.sh
# macOS
if command -v brew &> /dev/null; then
brew install bat fd ripgrep zoxide eza fzf btop lazygit tldr tmux
fi
# Ubuntu/Debian
if command -v apt &> /dev/null; then
apt update
apt install -y bat fd-find ripgrep zoxide eza fzf btop tmux
# lazygit 需要从 GitHub 下载
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
install lazygit /usr/local/bin
rm lazygit.tar.gz lazygit
fi
echo "✅ 所有工具安装完成!"📋 配置速查
将以下配置添加到 ~/.zshrc 或 ~/.bashrc:
bash
# ===== bat =====
alias cat='bat --paging=never'
# ===== eza =====
alias ls='eza --icons'
alias ll='eza -l --icons --git'
alias la='eza -la --icons --git'
alias lt='eza --tree --level=2 --icons'
# ===== zoxide =====
eval "$(zoxide init zsh)"
# ===== fzf =====
eval "$(fzf --zsh)" # zsh
# 或 source /usr/share/doc/fzf/examples/key-bindings.zsh
# ===== ripgrep 配置 =====
export RIPGREP_CONFIG_PATH="$HOME/.ripgreprc"bash
# ~/.ripgreprc
--max-columns=150
--max-columns-preview
--smart-case
--colors=match:fg:yellow
--colors=path:fg:cyan🔗 相关文章
- 网络诊断工具箱 — 网络排查工具
- 全能工具箱 — VPS 综合工具
- 脚本工具箱 — 常用脚本汇总
- VPS 性能测试脚本汇总 — 服务器性能测试
- SSH 常用命令 — 华硕路由 SSH 命令
