Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61219
  • 博文数量: 26
  • 博客积分: 315
  • 博客等级: 二等列兵
  • 技术积分: 299
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-05 17:32
文章分类
文章存档

2014年(13)

2013年(3)

2012年(10)

我的朋友

分类: 系统运维

2012-08-06 10:43:48

摘自:[]Harley HahnUnix & Linux大学教程

 

三、Unix键盘使用

 

1)修饰键:

因为一遍又一遍的写”Ctrl”不方便,所以Unix社区使用一种简写表示方法:字符^(插入记号)。当看到这个字符后面有另一个字符时,它表示“按键”。例如^A意味着按住键并按下A键。另外,还有C-a等表示方法,它们的含义都相同

根据约定,在写组合键时通常使用大写字母。……但是它并不是一个真正的大写字母。因此,当使用组合键时,并不需要按下键。

键是所谓修饰键的一个例子。修饰键指按住这个键的时候再去按另一个键。

在标准的PC键盘上,修饰键有是最新的修饰键,只有GUI使用。

 

2)键入过程中使用的信号:erasewerasekill

erase删除最后一个字符,werase删除最后一个键入的单词,而kill则删除整行。

按下或者键(取决于键盘及其映射)通常可以发送erase信号。

对于大多数终端和PC来说,使用的是键,而对于Macintosh来说,使用的是键。

erase        还对应              ^H

werase                                 ^W

kill                                          ^X或者^U(取决于系统如何设置)

重要的是意识到PC机键盘上的键和旧终端、Macintosh机上的并不相同。

 

3intr信号

intrinterrupt,中断)的信号可以终止进程的运行。

对于大多数终端来说,^C(Ctrl-C)键映射到intr信号上,但也有少数终端将键映射到intr信号。

 

4)另一种停止程序的方法:quit

quit键通常是^\ (反斜线)

quit                     ^\

 

5)暂停显示:stopstart

如果程序生成输出太快,那么数据在阅读之前就滚动出屏幕了。这时有3种选择:(1)如果不重要的数据,可忽略;(2)使用lessmore命令;(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. BashLinux默认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

重点在于一定要确保以两个单独的字符的形式键入键组合,而不是用一个真正的组合键。stty会认出其中一个字符代表键。

 

10)返回和换行

Unix使用两个基于老式Teletype的信号:返回和换行。

第一个代码是CRcarriage return,托架返回)将托架返回到最左边的位置上。第二个代码是LFlinefeed,换行)使打印纸向上移动一行。因此,序列CR-LF执行打印一个新行所需的准备动作。

在键盘上,按下键或者^M(它们等价)可以发送一个CR码,按下或者^J键可以发送LF码。

Unix开发人员开始使用Teletype作为终端时,他们基于CRLR码创建了两个信号。CR码变成了返回信号,LF码变成了换行信号。

 

11)新行字符的重要性

1.返回字符= ^M

2.换行字符=新行字符=^J

3.一般而言,每行文本必须以一个新行字符结束;

4.当按下键时,将发送一个返回字符,Unix自动将返回字符改变为新行字符;

5.在终端显示数据时,每行必须以字符序列“返回+新行”结束。因此,当数据从文件发送到终端显示时,Unix自动将末尾的新行字符改变为“返回字符+新行字符”。

在文本文件中,Unix使用^J(newline)字符标记每行结束。但是Microsoft Windows使用^M^J标记每行结束。

 

12)恢复终端正常显示:stty sanereset

stty sane

reset

 

 

 

阅读(1506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~