终端程序遵循的“规则”
《"Rules" that terminal programs follow》这篇博客探讨了终端程序运行时遵循的一系列 “规则”,这些规则并非官方标准,而是基于作者多年使用终端的经验总结出来的行为准则。
文章首先指出,终端中运行的程序行为是由操作系统、shell、终端仿真器和正在运行的程序共同决定的。虽然前三者有明确的标准和交互方式,但正在运行的程序似乎可以做任何事情,这让人难以预测其行为。作者列举了一系列根据自己的经验总结的 “规则”,以帮助理解和预测终端程序的行为。
-
非交互式程序应在按下 Ctrl-C 时退出。这是因为非交互式程序通常会响应 SIGINT 信号而退出。但对于交互式程序,如
python3
、bc
、less
,按下 Ctrl-C 可能只是中断当前操作,而不是退出程序。 -
按下 q 时 TUI 程序应退出。例如
less
或htop
这样的程序,按下 q 会退出。但这条规则不适用于所有程序,如tmux
。 -
按下 Ctrl-D 时 REPL 应该退出。这是因为按下 Ctrl-D 会触发 EOF(文件结束),通常在按下空行时退出。但有例外,如 Erlang REPL 不会在按下 Ctrl-D 时退出。
-
不要使用超过 16 种颜色。终端程序通常使用基本的 16 种 ANSI 颜色,以避免与用户的背景颜色发生冲突。文本编辑器如 Helix 可能会违反这条规则,使用自定义配色方案。
-
程序应该模糊地支持 readline 键绑定。大多数程序支持 readline 的键绑定,如 Ctrl-E 移动到行末。但有些程序,尤其是文本编辑器,会有自己的键绑定和编辑方法。
-
写入管道时禁用颜色。大多数程序在输出到管道或文件时会关闭颜色,以保持输出的纯文本格式。但可以通过一些方法强制程序使用颜色,例如使用
unbuffer
或--color=always
标志。 -
-
表示 stdin/stdout。程序通常会将-
作为标准输入输出的标识,从 stdin 读取或写入到 stdout。
作者强调,这些 “规则” 并非绝对的,存在很多例外。了解这些规则有助于更好地理解和使用终端程序。博客详情可以查看:https://jvns.ca/blog/2024/11/26/terminal-rules
更多独家技术见解与热门话题讨论,尽在【开源中国 APP】,与数百万开发者一起,随时随地探索技术无限可能。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谷歌明年 1 月可能启动新一轮裁员,低绩效员工比例提至 10%
根据职场匿名论坛 Team Blind 上最新流传的热议帖子,谷歌员工担忧公司将于明年 1 月启动新一轮裁员。 帖子称谷歌提高了裁员标准,即便工程师整体生产力有所提升,但依然会按照比例,裁掉绩效不佳的员工。 与此同时,谷歌母公司 Alphabet 的股价表现不及预期,也加剧了员工的担忧。 匿名帖子爆料,谷歌将绩效考核“低分桶”(lower buckets)员工的裁员比例从 8% 提升至 10%。这里的“buckets”应该指的是绩效较低的员工。 此外帖子认为谷歌工程师的平均代码更改量已达每年 500 次,因此找到这些低绩效员工比以前更容易了。帖子中补充说,除了绩效不佳,参与错误项目或被管理层“盯上”也可能成为裁员的导火索。 谷歌母公司 Alphabet 主要收入来源于搜索引擎和广告业务。由于面临司法部的反垄断诉讼以及人工智能早期投资主要集中在硬件供应商(如英伟达)等因素,Alphabet 的股价表现受到影响。 尽管 Alphabet 第三季度财报营收、利润和主要业务部门的销售额均超出了分析师预期,但其流量获取成本(TAC)高达 137.2 亿美元,高于分析师预期的 135.3 亿美元。...
- 下一篇
开源日报 | Fedora项目负责人将离任;微软发布Phi-4;“NVIDIA对中国市场断供”不实;日常AI辅助编程的模型搭配;VSCode 1.96发布
欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.12.13 今日要闻 Fedora 项目负责人 Matthew Miller 即将离任 Fedora 项目负责人 Matthew Miller 称他担任这一职位超过了十年时间,是时候换一个新人接替他继续推动项目前进。 他表示,项目状况良好,有很高的社区参与度,有赞助商的强有力支持,在 Linux 世界备受欢迎,知名度高涨。但要推动项目向更广阔的方向前进,需要一位有新能量和新观念的人。预计明年发布 Fedora Linux 42 时将宣布新负责人人选。 Matthew Miller 还指出,Red Hat 对 Fedora 的支持比以往任何时候都更加强力,他计划帮助它进一步发展,因此他将担任 Red Hat 的 Community Linux Engineering 的一个全职管理职位,Fedora 项目仍然是其日常工作的一部分,他不会离开 Fedora 项目。 微软发布 Phi-4:140 亿参数的顶级小型语言模型 微软今天宣布推出 14B 参数 “最先进” 小型语言模型(SLM)Phi-4。除了传统的语言处...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8