全部博文(26)
分类: 系统运维
2012-08-06 10:43:48
摘自:[美]Harley Hahn:Unix & Linux大学教程
三、Unix键盘使用
(1)修饰键:
因为一遍又一遍的写”Ctrl”不方便,所以Unix社区使用一种简写表示方法:字符^(插入记号)。当看到这个字符后面有另一个字符时,它表示“按
根据约定,在写
在标准的PC键盘上,修饰键有
(2)键入过程中使用的信号:erase、werase、kill
erase删除最后一个字符,werase删除最后一个键入的单词,而kill则删除整行。
按下
对于大多数终端和PC来说,使用的是
erase 还对应 ^H
werase ^W
kill ^X或者^U(取决于系统如何设置)
重要的是意识到PC机键盘上的
(3)intr信号
intr(interrupt,中断)的信号可以终止进程的运行。
对于大多数终端来说,^C(Ctrl-C)键映射到intr信号上,但也有少数终端将
(4)另一种停止程序的方法:quit
quit键通常是^\ (
quit ^\
(5)暂停显示:stop、start
如果程序生成输出太快,那么数据在阅读之前就滚动出屏幕了。这时有3种选择:(1)如果不重要的数据,可忽略;(2)使用less或more命令;(3)发送stop信号,这个信号告诉Unix临时停止屏幕显示。一旦显示过程暂停,您可以按下^Q发送start信号重新启动屏幕显示。这两个信号容易记住,即”S”代表Stop,”Q”代表Quntinue(也就是Continue)。
^S和^D的使用相当便利。但是,^S只是告诉Unix停止输出的显示。它不会暂停正在执行的程序。程序继续执行,不会停止生成输出。
(6)文件结束信号:eof
有时候,您使用的程序希望您以键盘输入数据。当数据输入完,没有数据再输入时,可以通过^D发送eof(end of file)信号指示这一点。
一般情况下,程序会终止。如果是shell界面,会注销。为防止在shell下,不小心注销,可以告诉shell封闭eof信号。
(7)封闭eof信号
1. Bash(Linux默认Shell)
使用IGNOREEOF的环境变量,如INNOREEOF=5(数字用来指定在注销以前Bash会忽略特定行开头的^D多少次。
如需IGNOREEOF,则可运行IGNOREEOF=0
显示IGNOREEOF的当前值,使用下述命令:
Echo $IGNOREEOF
为了在每次登录时自动设置IGNOREEOF,需要在.profile文件中放置一条命令。
2. Korn Shell
set -o ignoreeof (封闭eof信号)
set -o ignoreeof (不关闭eof信号)
set -o (查询)
3. C-Shell
set ignoreeof
unset ignoreeof
echo $ignoreeof (查询)
(8)显示键映射:stty -a
stty -a
stty是”set terminal”命令,-a意味着“显示所有的设置”。
(9)修改键映射:stty
stty 信号名 赋值
如 stty kill ^U
重点在于一定要确保以两个单独的字符的形式键入
(10)返回和换行
Unix使用两个基于老式Teletype的信号:返回和换行。
第一个代码是CR(carriage return,托架返回)将托架返回到最左边的位置上。第二个代码是LF(linefeed,换行)使打印纸向上移动一行。因此,序列CR-LF执行打印一个新行所需的准备动作。
在键盘上,按下
当Unix开发人员开始使用Teletype作为终端时,他们基于CR和LR码创建了两个信号。CR码变成了返回信号,LF码变成了换行信号。
(11)新行字符的重要性
1.返回字符= ^M
2.换行字符=新行字符=^J
3.一般而言,每行文本必须以一个新行字符结束;
4.当按下
5.在终端显示数据时,每行必须以字符序列“返回+新行”结束。因此,当数据从文件发送到终端显示时,Unix自动将末尾的新行字符改变为“返回字符+新行字符”。
在文本文件中,Unix使用^J(newline)字符标记每行结束。但是Microsoft Windows使用^M^J标记每行结束。
(12)恢复终端正常显示:stty sane、reset