跳转到内容

命令行工具

命令行界面(CLI),是一个和 图形用户界面(GUI)相对的概念

  • 在命令行界面里,用户输入文本命令来执行操作
  • 在图形用户界面里,用户可以点击、拖拽图形元素来执行操作

终端 提供了一个访问命令行界面的程序窗口。终端创建时通常会启动一个 Shell。Shell 是运行在终端内的命令解释器,负责解析用户的输入、调用操作系统内核或其它程序来执行任务、输出运行结果等。

一些主题鲜明的工具被放到了专门的章节里,包括

另外,awesome-shellawesome-cli-apps 中推荐了非常多的工具,我参考了其中的部分内容。

用于编写脚本,或提高脚本能力的工具

  • coreutils 常用的命令行工具,通常都预装在 Unix 系统中。目前有多种 coreutils 实现,比如 GNU coreutils / uutils coreutils / busybox 等
  • Shell 命令解释器,提供了与操作系统内核进行交互的环境
  • shellcheck 脚本静态检查工具
  • shfmt 脚本格式化工具
  • gum 用于交互式脚本的辅助工具,可以让脚本拥有华丽的 TUI
  • fzf 同样提供了可用于交互式脚本 TUI 框架
  • zx 使用 JavaScript 编写脚本
  • rush 类似 xargs / parallel,用于并行执行命令

用于运行任务,或编排脚本的工具

  • just 任务运行器,语法类似 make 但并不是构建系统
  • pueue 任务管理器,可以顺序和并行执行,适合长时间运行的任务
  • prek Git 钩子管理器。类似的工具还有 lefthook
  • hyperfine 命令基准测试工具,time 的升级版,用于比较不同命令的速度
  • viddy 反复运行命令并监控输出,是更现代的 watch
  • watchexec 监视文件,在其更改后自动重新运行命令
  • checkexec 比较文件修改时间,若依赖文件比目标文件更新则运行命令

用于查阅命令手册、纠正命令错误、查找命令历史或提供命令补全的工具

  • tldr 命令示例手册
  • navi 命令备忘录,提供了基于 fzf 的 TUI
  • thefuck 命令纠错工具
  • Atuin 用 SQLite 保存命令历史记录,并提供工作目录 / 退出码 / 耗时等上下文
  • fzf 模糊查找命令历史
  • carapace 跨平台、跨 Shell 的命令补全工具
  • inshellisense 提供 IDE 式的 Shell 补全

用于查找文件、管理文件资源或在目录间进行导航的工具

  • fd 文件查找器,类似 find 但更现代
  • eza 文件目录查看工具,类似 ls 但更现代
  • yazi 文件管理器,有非常好用的 TUI
  • f2 批量重命名文件
  • ouch 用于压缩和解压文件或目录的命令行工具,支持所有主要格式
  • upx 用于压缩可执行文件,并让其被压缩后仍然可以运行
  • zoxide 快速工作目录跳转

用于美化终端界面的工具。涵盖获取系统信息、修改提示符等各种功能

  • WezTerm 功能强大的跨平台终端模拟器和多路复用器,由 Rust 实现
  • zellij 更现代的 tmux,具有多终端面板,用于打造终端工作区
  • starship 用于修改提示符,可跨平台和跨 Shell
  • fastfetch 能够高度定制的系统信息获取工具
  • bottom 系统监控工具,可跨平台,提供了强大的 TUI

用于管理代码、配置甚至密钥的工具

  • dotter 点文件管理器。类似的工具还有 chezmoi
  • git 分布式版本控制系统,目前的行业标准
  • gopass 密钥管理器。类似的工具还有 vault,后者功能更加强大,但也更加复杂

用于磁盘占用、健康度查询的工具

  • duf 磁盘占用分析工具,现代版的 df
  • dust 文件占用分析工具,现代版的 du
  • smartmontools 用于查看磁盘健康状况的工具

除了酷炫以外没什么用的东西

  • genact 假活动生成器,可以模拟多种开发活动
  • cmatrix 炫酷的终端屏保,灵感来源于《黑客帝国》,不过只有 Linux 可用
  • lolcat 给输出着上彩虹色
  • cowsay 搞怪版的 echo,会让一只牛顶着对话框
  • fortune 随机生成名言,可以和前者结合达成奇妙效果
  • figlet 把输入文本转为 ASCII 艺术字