让Unix终端随用户而动( 二 )


三、退格键是否允许删除字符 。
在键盘上有两个键 , 一个是del键 , 用来向后删除字符 。另外一个是退格键 , 则用来向前删除字符 。但是有时候系统工程师会发现退格键不能够起作用 , 其不能够向后删除字符 。排除键盘故障外 , 往往也是这个终端配置所惹的祸 。在终端配置中有个关键字叫做echoe , 其就是用来控制是否允许使用退格键来向后删除字符 。不过这个设置跟上面的设置方法有差异 。如果需要禁用这个功能的话 , 则需要使用stty –echoe命令 。如果需要启用的话 , 则需要使用stty echoe命令 。
其实 , 在Unix操作系统中 , 跟终端相关的关键字主要有两种表现形式 , 分别为关键字=某个值或者关键字(-关键字)等形式表示 。这两种形式的关键字其值设置的方式是不同的 。如上面提到的中端符号 , 其系统中的显示格式为关键字=某个值的格式(intr=^c) 。对于这个格式的关键字需要采用的是^的调整方式 , 其可以重新设置功能键 。而现在的退格功能的关键字为echoe , 其显示格式为关键字(-关键字) 。这种关键字又叫做开关关键字 。也就是说其只有启用或者禁用 。而不能够使用其他的内容来代替 。对于这种类型的关键字 , 要调整其值的话 , 也相对简单 。只需要利用stty (-)关键字的形式即可 。如果关键字前面没有减号的话 , 则说明这个功能是启用的 。如果有减号的话 , 则说明这个功能是禁用的 。如果系统工程师反先这个退格键不能用了 , 可以先利用命令stty –a命令来查看当前终端的配置 。特别是需要关注一些这个echoe关键字 , 看其前面是否有减号 。如果有的话 , 就表示当前不能够利用退格键来向前删除一个字符 。此时系统工程师可以利用stty echoe来启用这个功能 。通常情况下 , 不需要注销系统或者关闭当前会话这个设置就会生效 。不同的shell对这个退格键的默认设置是不同的 。所以为了操作的方便 , 系统工程师有时候往往需要调整这个退格键的功能 , 来保证各个版本的shell 都能够使用这个功能或者禁用这个功能 。
四、用户输入的内容不回显 。
在登陆Unix操作系统时(文本模式下) , 用户需要输入帐户名与密码才能够登陆 。当用户输入密码时 , 在屏幕上不会有任何的提示 , 连*好掩饰符号都没有 。有时候 , 系统工程师为了似的脚步程序也可以向这个口令一样 , 接收用户的输入而不是将内容输出到屏幕上(即用户输入的内部不回显到屏幕上) , 就需要修改echo这个关键字的值 。不要要注意 , 修改这个关键字的时候需要三步走 。第一步将这个关键字设置为-echo(表示向密码那样不回显用户输入的内容);第二步不回显的接收用户输入的内容 , 此时用户的任何输入不会显示到屏幕上;第三步再将这个关键字设置为echo , 即后续的内容允许其显示在屏幕上 。因为在大部分情况下 , 都是需要系统将用户输入的结果显示在屏幕上的 。否则的话 , 不能够保证用户输入的准确性 。所以 , 在使用完毕后 , 一定要讲这个关键字设置为原先的值 , 即利用stty –echo将这个关键字设置回来 。这里echo也是利用-号来代表的一个关键字 , 也就是说这个功能也是一个开关功能 。在设置时 , 要么关闭 , 要么启用 。而第三种处理方法 。也就是说 , 如果想要用户输入的内容以*号来代替的话 , 则需要采用其他的方式 。确实 , 这个以*显示的方式跟终端设置无关 。
可见 , 在Unix操作系统中 , 对于终端的控制要比在Windows操作系统强的多 。有时候系统工程师为了在多个操作系统版中保证一个比较统一的终端配置 , 往往会将这些内容写成一个脚本文件 。然后遇到一个新的shell时 , 会先不管三七二十一 , 执行这个脚本 。如此 , 就可以实现Unix终端随用户而动 , 根据用户的操作习惯来进行终端配置的调整 。

推荐阅读