快速业务通道

Linux Terminfo

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-09

terminfo取代庞大的 /etc/termcap 文件来定制终端的外观和交互行为. 编译好的数据库文件在 /usr/share/terminfo 下,用 infocmp 命令来反编译输出各种终端类型的特性描述文件.如 infocmp vt100. 用 tic -c terminfo格式源文件 来校验,然后 tic -s terminfo格式源文件 来修改数据库.然后打开一个新终端,用 stty -a 来检查当前终端的性能参数.

Example:

如何修改 redhat 8.0 中 screen 虚拟终端的 terminfo 数据,让 ^? ( 键盘代码 177 )来替代 ^H 作为 backspace 键.否则会影响emacs 的 C-h 快捷键.其实在 xterm 里已经是这么做的了.

修改并编译:

$ su-

# infocmp > tmp

# sed ''s/kbs^H/kbs=\177/'' tmp > newinfo

# tic -C newinfo

# tic -s newinfo

测试:

# stty -a

下面说明一下terminfo和termcap的历史及键盘在Unix和Linux中的仿真终端中使用.

Teletypes and the Unix Culture
在Unix系统中,许多约定基于20世纪70年代的技术,特别是,Unix 世界中的许多思想基于早期终端的特点,即: Teletype 和 VT100.在使用Teletype机器的时候,它们被称为TTY,这种习惯被Unix采纳,人们现在仍然使用 tty 作为Unix终端的符号.特别是在文档、程序、命令名称里.(tty,stty,getty). 拥有帝国一切,皆有可能。欢迎访问phome.net
输出意味着打印,Unix习惯使用单词 print 来表述信息的输出.即使信息在显示器上输出,也仍然如此.例如命令 pwd(print wo***ng directory).

Termcap, Terminfo and curses
当Unix被设计成使用终端来访问主机系统的时候,Unix的开发人员需要解决的一个重要问题就是每种类型的终端都有自己的特征,并使用自己的命令集,并且这些命令的名称不尽相同.
解决方法就是,将所有不同类型终端的描述收集到一个数据库中,当程序希望向终端发送命令时,它可以通过使用数据库中的信息以一种标准化的方式完成.
第一个这样的系统由Bill Joy 创建,这个系统的名字为Termcap(terminal capabilities).第一个使用Termcap的程序就是有Joy编写的 vi 编辑器.

Termcap的使用比较复杂,伯克利的另一名学生 Ken Arnold 开发了一个程序界面curses(cursor addressing).它用来执行屏幕现实管理所需的所有功能,同时对程序员隐藏细节.
第一个使用curses和Termcap的程序是游戏:Rogue,一个基于文本的探险游戏.

但随着新终端类型的不断涌现,Termcap的文件变得日益庞大,并且难以维护.为了提高curses的性能,贝尔实验室的程序员使用了一个新的工具:Terminfo(terminal information) 替换了Termcap.Terminfo将数据存储在一系列的文件中,每种终端类型一个文件.这些文件组织到26个命名为a - z 的目录中.它们保存在Terminfo的目录下.例如:Linux中的VT100的信息在 /lib/terminfo/v/vt100 中,它被链接到/usr/share/terminfo/v/vt100 上.不同的系统可能稍有差别.

但是,Terminfo的问题在于贝尔实验室属于 AT&T 公司,它不同意发布源代码,为了克服这一限制,1982年,程序员 Pavel Curtis 开发了一个自由版本的curses,称之为:ncurses(new curses),1993年末,Eric Raymond 也加入到了ncurses的开发者行列中来.最终,ncurses 和 Terminfo 一起合并成一个不朽的标准. Terminfo 已经永久取代了Termcap ,但为了兼容性,一些Unix仍然拥有Termcap文件. 拥有帝国一切,皆有可能。欢迎访问phome.net

Termcap 的数据内容为文本文件,可以直接显示: less /etc/termcap
Terminfo 的数据已经编译成了非文本格式,使用 infocmp 这个程序来读取数据并翻译成纯文本.例如:
显示VT100 数据: infocmp vt100
显示当前使用的终端的数据: infocmp

实际上,现在常见的终端类型有四种:
VT100,xterm,VT220(VT100的彩色版),linux(

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号