AgentSkillsCN

using-modern-cli

为了获得更佳性能,优先选用现代化的命令行工具:在文本搜索时使用 ripgrep(rg)替代 grep,在文件查找时使用 fd 代替 find,在查看文件时使用 bat 代替 cat,在文本替换时使用 sd 代替 sed,在目录列表时使用 eza 代替 ls,在磁盘使用情况分析时使用 dust 代替 du,在进程管理时使用 procs 代替 ps。这些工具不仅运行速度更快,还能更好地遵循 .gitignore 规则,并提供更优美的输出格式。

SKILL.md
--- frontmatter
name: using-modern-cli
description: >-
  Prefer modern CLI tools for better performance: rg (ripgrep) instead of grep
  for text searching, fd instead of find for file discovery, bat instead of cat
  for viewing files, sd instead of sed for text replacement, eza instead of ls
  for directory listing, dust instead of du, procs instead of ps. Use when
  writing bash scripts, optimizing command chains, working with file searches,
  or replacing grep/find/cat in workflows. These tools are faster, respect
  .gitignore, and have better output formatting.
user-invocable: false
allowed-tools:
  - Bash

Modern CLI Tools

Use faster, ergonomic command-line tools installed on this system.

Quick Reference

TaskModernTraditionalWhy Modern
Search textrggrep10-100x faster, respects .gitignore
Find filesfdfindSimpler syntax, ignores .git
View filesbatcatSyntax highlighting, line numbers
List filesezalsIcons, git status, tree view
Replace textsdsedIntuitive regex, preview mode
Disk usagedustduVisual tree, sorted by size
ProcessesprocspsTree view, sortable columns
Diff filesdeltadiffSyntax highlighting, side-by-side

Examples

bash
# Search: rg instead of grep
rg "TODO" --type go           # Search Go files
rg -A 3 "error"               # 3 lines after match
rg -l "import"                # List files only

# Find: fd instead of find
fd "\.go$"                    # Find Go files
fd -e json src/               # By extension in src/
fd -x wc -l {}                # Execute on matches

# View: bat instead of cat
bat main.go                   # With syntax highlighting
bat -n file.py                # Line numbers only

# List: eza instead of ls
eza -la --git                 # Long format with git status
eza --tree -L 2               # Tree view, 2 levels

# Replace: sd instead of sed
sd "old" "new" file.txt       # Simple replacement
sd -p "pattern" "new"         # Preview changes first

# Disk: dust instead of du
dust -d 2                     # 2 levels deep

# Processes: procs instead of ps
procs --tree                  # Process tree

Productivity Tools

bash
# Fuzzy finder (pipe with fd/rg)
vim $(fd . | fzf)
rg "pattern" | fzf

# Benchmarking
hyperfine "rg pattern" "grep -r pattern"

# Code statistics
tokei .

# Markdown preview
glow README.md

# JSON/YAML processing
jq '.key' file.json
yq '.key' file.yaml