Unix终端与X窗口系统的困境剖析
Unix终端设置的混乱
在Unix系统中,终端设置的问题让众多用户头疼不已。Alan Bawden曾形象地描述了这一状况:Unix一方面要求每个程序手动生成驱动用户终端所需的转义序列,另一方面又让发送这些序列变得困难,这就如同去一家没有售酒许可证的餐厅,你得自己带啤酒,而餐厅却只给你一个小杯子来喝。
当用户尝试自定义终端设置时,很快就会发现.cshrc和.login文件中积累了大量粗糙的临时解决方案代码片段,每个片段都是为了处理不同的终端或网络连接类型而设计的。由于缺乏统一的终端模型,执行不同任务的程序需要不同的关键信息。例如,telnet和rlogin跟踪一组自定义设置,tset跟踪另一组,stty则跟踪第三组,这些子系统就像属于不同的工会一样各自为政。
更糟糕的是,尤其是stty,不同的Unix版本会有不同的命令和选项。“John R. Dunning”的经历就充分体现了这些问题。他尝试通过telnet登录到本地的Sun机器上,打开emacs时,虚拟终端屏幕顶部只显示了一个极小的窗口。他检查了TERM和TERMCAP环境变量,确认设置无误后再次尝试,结果依旧如此。无奈之下,他向当地的Unix专家求助。专家的回答也很模糊,建议他检查stty rows