命令行工具
命令行界面(CLI),是一个和 图形用户界面(GUI)相对的概念
- 在命令行界面里,用户输入文本命令来执行操作
- 在图形用户界面里,用户可以点击、拖拽图形元素来执行操作
终端 提供了一个访问命令行界面的程序窗口。终端创建时通常会启动一个 Shell。Shell 是运行在终端内的命令解释器,负责解析用户的输入、调用操作系统内核或其它程序来执行任务、输出运行结果等。
一些主题鲜明的工具被放到了专门的章节里,包括
另外,awesome-shell 和 awesome-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
用于管理代码、配置甚至密钥的工具
用于磁盘占用、健康度查询的工具
- duf 磁盘占用分析工具,现代版的
df - dust 文件占用分析工具,现代版的
du - smartmontools 用于查看磁盘健康状况的工具
除了酷炫以外没什么用的东西
- genact 假活动生成器,可以模拟多种开发活动
- cmatrix 炫酷的终端屏保,灵感来源于《黑客帝国》,不过只有 Linux 可用
- lolcat 给输出着上彩虹色
- cowsay 搞怪版的
echo,会让一只牛顶着对话框 - fortune 随机生成名言,可以和前者结合达成奇妙效果
- figlet 把输入文本转为 ASCII 艺术字