终端程序的潜规则
💡
原文中文,约1800字,阅读约需5分钟。
📝
内容提要
终端程序遵循一些规则,包括退出机制、输入编辑和输出规范。退出机制方面,非交互式程序用Ctrl-C退出,TUI程序用q退出,REPL程序在空行按Ctrl-D退出。输入编辑方面,大多数程序遵循readline快捷键,如Ctrl-W删除上一个词。输出规范上,程序通常不超过16种颜色,并在管道中禁用颜色。
🎯
关键要点
- 终端程序的行为虽然没有正式标准,但出奇地一致。
- 终端程序分为三类:非交互式程序、TUI程序和REPL程序,各类有不同的退出约定。
- 非交互式程序使用Ctrl-C退出,TUI程序按q退出,REPL程序在空行按Ctrl-D退出。
- 几乎所有终端程序遵循readline快捷键约定,支持Ctrl-W删除上一个词。
- 终端程序的输出规范是使用不超过16种颜色,并在管道中禁用颜色。
❓
延伸问答
终端程序的退出机制有哪些不同类型?
终端程序分为三类:非交互式程序使用Ctrl-C退出,TUI程序按q退出,REPL程序在空行按Ctrl-D退出。
终端程序如何处理输入编辑?
几乎所有终端程序遵循readline快捷键约定,支持如Ctrl-W删除上一个词等快捷键。
终端程序的输出规范是什么?
终端程序的输出通常不超过16种颜色,并在管道中禁用颜色。
为什么终端程序在管道中禁用颜色?
大多数程序在输出到管道时关闭颜色和格式化,以避免与用户的背景色冲突。
如何强制终端程序在管道中保留颜色?
可以使用unbuffer命令或程序自带的参数来强制保留颜色。
终端程序的行为是否有正式标准?
终端程序的行为没有正式标准,但出奇地一致,遵循一些不成文的规则。
➡️