| 19. 终端相关问题 19.1 如何使Backspace键做删除操作,而不是显示^H 19.2 19.3 如何清空stdin的缓冲 19.4 Linux Console下一按错键就叫,怎么关 -------------------------------------------------------------------------- 19. 终端相关问题 19.1 如何使Backspace键做删除操作,而不是显示^H Q: Backspace键并未删除光标左面那个字符,仅仅显示^H,而DEL键完成了删除操作 A: Sun Microsystems 2001-03-08 执行"stty -a"将看到"erase = ^?",表示此时DEL键对应删除操作。 如果正在使用xterm,可以用"tset"命令设置控制字符对应的操作。其他窗口中,假 设目前使用/sbin/sh,尝试 $ stty erase ^H 这里^H的输入是Ctrl-H,某些时候可能需要Ctrl-V、Ctrl-H输入,还可以尝试 $ stty erase "^h" $ stty erase "^H" (大小写不敏感) 这里输入"^H",就是两个字符,一个^,一个H。 同样,如果想恢复到DEL删除 $ stty erase ^? 这里^?的输入是DEL,某些时候可能需要Ctrl-V、DEL输入,还可以尝试 $ stty erase "^?" 这里输入"^?",就是两个字符,一个^,一个?。 为了永久保留这个设置,在所使用的shell初始化文件中增加设置命令,比如c shell 的".cshrc",其他shell的".login"。 19.3 如何清空stdin的缓冲 A: law@apue.dhs.org stdin->_IO_read_ptr = stdin->_IO_read_end; 不过这个办法实在不怎么样。一是只对glibc有效,不可移植。二是违背流的思想, 老老实实用fgets()好了。 19.4 Linux Console下一按错键就叫,怎么关 A: windtear@bbs.tsinghua.edu.cn Linux版 有个1050110 背一下就可以了 echo -e "\\33[10;50]\\33[11;0]" 10 50 11 0 放到那些登录言启动脚本里 Q: 输完命令后是没声了,可从KDE回来之后又有了,请问能彻底关掉吗 A: TheCool@bbs.tsinghua.edu.cn Linux版 setterm -blength 0 -bfreq 0 |