记得 1987 年刚开始学写程序的时候,不知道那一行行稀奇古怪的句子是做什么用的。只知道用 LIST 可以列出一堆东西,用 RUN 可以出点声什么的。我最早知道的就是 LIST 和 RUN ,虽然这还不算真正意义上的编程,但却是入门的第一步。 BASIC 是我学习的第一种计算机语言,后来参加大学生数学建模竞赛时用来验证我们方程式的算法语言也是它(只不过已经是 QBASIC 了)。 BASIC 语言有个最大的优势:简单而直接,不论是 Apple-II 还是 COMX -PC1 ,一上电就可以直接写程序 run 了,不像后来这些工具这么麻烦,手续繁多。后来知道,上电后的提示符状态叫做 “ 控制台 ” ,英文唤作 “Console” 。在那个遥远的使用穿孔纸带的时代, Console 就是传说中的电传打字机,这个概念一直沿用至今。
DOS 时代的控制台没有什么可以说道的,功能简单而且不考虑使用者的感受,是那种非常粗糙的 Console 。到后来,它变成 Windows 的 cmd 后,也没有什么大的改善,这也是为什么大家那么不愿意用它的原因。再后来我还接触过一些通过串口终端工作的 Console ,和 DOS 控制台差不多,简单而粗糙,没有什么值得称颂的。我原以为 Console 就只能是这个样子,但是,这种成见在我用过 Linux 后彻底颠覆了。
Linux 控制台建立在 tty 设备之上,为使用者考虑的非常多。它记录曾经输入过的命令,在想重复使用的时候,可以用上下箭头键来选择。它提供 “ 行编辑 ” 功能,在发现前面输入有错的情况下,可以不删除已经输入的内容,直接用左右箭头键控制光标到相应的位置进行编辑,编辑分为插入和改写两种模式。还有一个非常酷的功能是命令联想,也就是所谓的 “TAB complete” 。在输入控制命令前面几个字母的情况下,用 <TAB> 键来完成剩余的部分。这个 “TAB complete” 功能简直就是为我这样记性不好的人量身定做的。
NetICE 的 Telnet 控制台就具备 Linux 控制台的这三个优点。基于网络的 NetICE 内建有一个 Telnet 服务器,使用者可以从任意支持网络的系统用 telnet 客户端程序来登录 NetICE 。千万不要对我说不知道什么是 Telnet 客户端程序, Windows 用户常用的那个 PuTTY 和 telnet 都提供 telnet 客户端功能。
用 Fedora 12 的 gnome-terminal 控制台登录 NetICE 时显示的画面
TAB complete ,输入 reg 后按 <TAB> 键显示的内容,屏幕上显示的八个候选条目是排过序的。
据我所知,几乎所有的操作系统都有相应的 telnet 客户端程序可供使用,要么是系统自带,要么可以从网上下载。
使用 NetICE 控制台,除了需要 telnet 客户端以外,还需要另外一个重要的软件: tftp 服务器。 NetICE 控制台上的好些命令是利用 tftp 协议实现的。 Linux 和 BSD 这类系统都有自己的 tftp 服务器, Windows 和 MAC OS 上也有,它是很常见的系统软件。