公司动态

开源命令行界面指南:融合 UNIX 原则,提升命令行实用性与易用性!

📅 2026/7/16 15:54:30
开源命令行界面指南:融合 UNIX 原则,提升命令行实用性与易用性!
作者本指南作者有 Aanand PrasadSquarespace 工程师Docker Compose 联合创建者、Ben FirshmanReplicate 联合创始人Docker Compose 联合创建者、Carl TashianSmallstep 越野工程师Zipcar 首位工程师Trove 联合创始人、Eva ParishSquarespace 技术作家OReilly 贡献者。由 Mark Hurrell 设计感谢 Andreas Jansson 等早期贡献者及 Andrew Reitz 等对草稿的审阅。若想讨论本指南或 CLI 设计可加入 Discord。前言20 世纪 80 年代使用个人计算机需知道面对特定提示符时的输入内容帮助信息在手册里错误信息难理解可从 Usenet 获帮助。如今计算机人人可用但常牺牲底层用户控制权很多设备无命令行访问功能。多数人不知命令行及用途计算机先驱 Alan Kay 有相关比喻。命令行虽有局限但具通用性和稳定性应提高其实用性和易用性。编程方式从早期的“机器优先”变为如今的“人优先”多功能命令增多。受 UNIX 哲学启发需重新审视构建命令行程序的最佳实践和设计原则。引言本文档涵盖高级设计理念和具体指南更侧重指南部分提供大量实例。不涉及 emacs 和 vim 等全屏终端程序对编程语言和工具无特定要求。适合创建 CLI 程序、专业“CLI UI 设计师”等人群不适合创建 GUI 程序、设计 Minecraft 沉浸式全屏 CLI 版本的人。设计理念优秀 CLI 设计应遵循以人为本的设计、协同工作的简单组件、程序间的一致性、适度表达、易于发现、以对话为常态、健壮性、同理心、混沌等原则。如以人为本的设计要考虑人类需求协同工作的简单组件强调程序模块化和可组合性程序间的一致性要在遵循惯例和保证可用性间平衡等。指南包含基本规则和可选规则。基本规则有尽可能使用命令行参数解析库、成功时返回零退出代码、将输出发送到 stdout、将消息发送到 stderr 等。帮助信息方面要在用户请求时显示详细和简洁的帮助文本、提供反馈和支持途径等。文档要提供基于网页、终端的文档考虑提供 man 页面。输出要优先考虑人类可读性、在不影响可用性时提供机器可读输出等。拓展阅读文档还提供了相关拓展阅读资料。