Skip to content

    CLI 工具

    命令行工具用熟了效率比图形界面高很多。这里整理一些实用的 CLI 工具和使用技巧。

    包管理器

    winget:Windows 官方包管理器

    Windows 从 WinGet 开始有了自己的包管理器,只是很多人还不知道。一条命令就能批量安装软件,比一个个去官网下载方便得多。

    重装系统最烦的就是重新装软件。用 winget 可以导出已安装软件列表,然后一键恢复:

    PowerShell
    # 导出已安装软件列表
    winget export -o ~/software-list.json
    
    # 从列表批量安装
    winget import -i ~/software-list.json

    日常使用场景:

    PowerShell
    # 搜索软件
    winget search chrome
    
    # 安装软件
    winget install Google.Chrome
    
    # 安装指定版本
    winget install Python.Python.3.11 --version 3.11.4
    
    # 更新所有软件
    winget upgrade --all
    
    # 更新指定软件
    winget upgrade Google.Chrome
    
    # 查看已安装软件
    winget list
    
    # 卸载软件
    winget uninstall Google.Chrome

    winget 的软件源是 community repository,主流软件基本都有。如果遇到找不到的软件,可以手动添加第三方源:

    PowerShell
    # 查看已添加的源
    winget source list
    
    # 添加第三方源
    winget source add --name "msstore" --arg "https://storeedgefd.dsx.mp.microsoft.com/v9.0"

    scoop:开发者最爱的 Windows 包管理器

    如果说 winget 是给普通用户用的,scoop 就是给开发者设计的。它把软件装在用户目录下,不污染系统 PATH,也不需要管理员权限。

    PowerShell
    # 安装 scoop
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
     irm get.scoop.cc | iex
    
    # 添加常用 bucket
    scoop bucket add extras
    scoop bucket add versions
    
    # 安装软件
    scoop install git nodejs python
    
    # 更新所有软件
    scoop update *
    
    # 查看软件信息
    scoop info git

    scoop 的 bucket 系统很灵活,extras 里有大量开发工具。遇到官方没有的软件,可以自己写 manifest 提交。

    Homebrew:macOS/Linux 必备

    macOS 用户基本都知道 Homebrew,Linux 上也好用:

    Bash
    # 安装软件
    brew install node
    
    # 安装 GUI 应用
    brew install --cask visual-studio-code
    
    # 更新
    brew update && brew upgrade
    
    # 清理旧版本
    brew cleanup
    
    # 查看依赖关系
    brew deps --tree node

    命令行帮助

    tldr:命令行速查手册

    man 页面太长太详细,tldr 只列出最常用的用法,查起来快很多:

    Bash
    # 安装 tldr(任选一种方式)
    npm install -g tldr
    pip install tldr
    brew install tldr
    
    # 查询命令用法
    tldr tar
    
    # 更新缓存
    tldr --update

    比如 tar 命令的参数那么多,tldr 直接给你最常用的几种:

    Plain Text
    tar
    
    Archiving utility.
    
    - Create a tar archive from files:
      tar cf target.tar file1 file2
    
    - Create a gzipped archive:
      tar czf target.tar.gz file1 file2
    
    - Extract a tar archive:
      tar xf source.tar
    
    - Extract a gzipped archive:
      tar xzf source.tar.gz

    cheat:交互式速查表

    比 tldr 更进一步,cheat 允许你创建自己的速查表:

    Bash
    # 安装
    brew install cheat
    
    # 查看速查表
    cheat tar
    
    # 编辑速查表
    cheat -e tar
    
    # 搜索速查表
    cheat -s docker

    文件和文本处理

    ripgrep (rg):比 grep 快 10 倍

    ripgrep 是 grep 的现代替代品,默认递归搜索、忽略 .gitignore 里的文件、支持正则:

    Bash
    # 搜索文件内容
    rg "TODO" 
    
    # 指定文件类型
    rg "function" --type js
    
    # 正则搜索
    rg "\d{3}-\d{4}" 
    
    # 显示上下文(前后各 3 行)
    rg "error" -C 3
    
    # 只显示文件名
    rg -l "import React"
    
    # 替换预览
    rg "old_name" --replace "new_name"

    fd:比 find 更友好

    find 命令的语法出了名的难记,fd 用更直觉的方式搜索文件:

    Bash
    # 按名字搜索
    fd "config"
    
    # 按扩展名
    fd -e js
    
    # 指定目录
    fd "test" src/
    
    # 执行命令
    fd -e js -x prettier --write {}
    
    # 排除目录
    fd -E node_modules "package"

    fzf:模糊搜索神器

    fzf 是通用的模糊搜索工具,能和任何命令组合:

    Bash
    # 安装
    brew install fzf
    
    # 搜索历史命令
    ctrl+r
    
    # 搜索文件并用 vim 打开
    vim $(fd | fzf)
    
    # 搜索并切换目录
    cd $(fd --type d | fzf)
    
    # 预览文件内容
    fzf --preview 'cat {}'

    把 fzf 和 git 结合,可以快速切换分支、查看 commit:

    Bash
    # 模糊切换分支
    git checkout $(git branch | fzf)
    
    # 搜索 commit 并查看
    git log --oneline | fzf --preview 'git show {1}'

    bat:带语法高亮的 cat

    cat 命令看代码没有语法高亮,bat 补上了这个短板:

    Bash
    # 安装
    brew install bat
    
    # 查看文件(自动语法高亮、行号)
    bat config.yml
    
    # 显示不可见字符
    bat -A Makefile
    
    # 和其他命令组合
    git diff | bat --language=diff

    系统监控

    htop / btop:更好的 top

    系统资源监控别再用 top 了,htop 和 btop 好看也好用:

    Bash
    # 安装
    brew install htop btop
    
    # 运行
    htop
    btop

    btop 是更现代的选择,界面更美观,支持鼠标操作,还能显示网络和磁盘 IO。

    dust:磁盘占用可视化

    du 命令的输出很难看,dust 用树状图展示磁盘占用:

    Bash
    # 安装
    brew install dust
    
    # 查看当前目录占用
    dust
    
    # 指定深度
    dust -d 3
    
    # 只看大文件
    dust -n 50

    procs:更好的 ps

    ps 命令的参数记不住,procs 默认显示更友好的信息:

    Bash
    # 安装
    brew install procs
    
    # 查看进程
    procs
    
    # 按名字过滤
    procs node
    
    # 查看特定端口的进程
    procs --tcp 3000

    网络工具

    curlie:更友好的 curl

    curl 的参数太多记不住,curlie 保留了 curl 的强大,加上了 httpie 的友好:

    Bash
    # 安装
    brew install curlie
    
    # GET 请求
    curlie httpbin.org/get
    
    # POST JSON
    curlie POST httpbin.org/post name=test age:=25
    
    # 带 Header
    curlie httpbin.org/get Authorization:"Bearer token123"

    dog:更好的 dig

    DNS 查询工具,比 dig 输出更清晰:

    Bash
    # 安装
    brew install dog
    
    # 查询 A 记录
    dog example.com
    
    # 查询 MX 记录
    dog example.com MX
    
    # 指定 DNS 服务器
    dog example.com @8.8.8.8

    bandwhich:带宽监控

    实时查看哪个进程在吃带宽:

    Bash
    # 安装
    brew install bandwhich
    
    # 运行(需要 sudo)
    sudo bandwhich

    开发工具

    lazygit:Git 的 TUI 界面

    命令行里也能有图形化的 Git 操作体验:

    Bash
    # 安装
    brew install lazygit
    
    # 运行
    lazygit

    lazygit 支持几乎所有 Git 操作:提交、推送、拉取、合并、rebase、stash、diff,全都能在界面里完成。用熟了比敲命令还快。

    jq:JSON 处理利器

    处理 JSON 数据的瑞士军刀:

    Bash
    # 格式化 JSON
    echo '{"name":"test","age":25}' | jq '.'
    
    # 提取字段
    curl -s https://api.github.com/users/octocat | jq '.name'
    
    # 过滤数组
    echo '[{"name":"a","age":20},{"name":"b","age":30}]' | jq '.[] | select(.age > 25)'
    
    # 转换格式
    echo '{"name":"test"}' | jq -r '.name'

    yq:YAML 处理工具

    jq 处理 JSON,yq 处理 YAML:

    Bash
    # 安装
    brew install yq
    
    # 读取字段
    yq '.services.web.image' docker-compose.yml
    
    # 修改值
    yq -i '.services.web.ports[0] = "8080:80"' docker-compose.yml
    
    # YAML 转 JSON
    yq -o json docker-compose.yml

    CLI 自动化

    告别一切重复枯燥任务,CLI+Skill 搭建浏览器 AI 自动化框架

    把命令行和 AI 结合起来,能实现很多自动化操作。这个视频演示了如何用 CLI 工具和 AI Skill 搭建浏览器自动化框架,处理重复性工作。

    为什么巨头都在做 CLI?比 MCP 有哪些优势?

    命令行界面(CLI)正在成为 AI 工具的主流交互方式。和 MCP 相比,CLI 更轻量、更灵活、更容易集成。这个视频分析了 CLI 的优势和适用场景。

    配置文件

    配置文件格式的选择对项目可维护性影响很大。JSON、YAML、TOML 各有适用场景,详见 配置文件格式详解

    补充资源

    x-cmd 命令行工具

    命令行工具资源网站,收录了大量实用的命令行工具和教程。想找到某个功能的命令行实现,来这里搜。