如果使用Linux系统,实质上它仍然是VT220).
Unix使用环境变量 TERM 记录正在使用的终端类型.用 echo $TERM 可以现实它的内容.
Stopping a Program
Unix提供了几种停止或暂停程序的信号:intr,quit,stop,susp.
在多数系统上,intr的键是^C,即Ctrl C,但有些系统使用<Delete>键.
intr(interrupt)信号有两个用途.
,它可以停止一个僵死的程序.按下Ctrl C,程序将终止.但有些程序忽略了intr的信号,防止用户不小心按下Ctrl C导致的意外.这称为 Trap .
其次,它可以取消程序的执行.例如:
leoo@srv99:~$ sudo shutdown -t m 5
The system is going DOWN to maintenance mode in 5 minutes!ov 5 07:16:02 2010
^C
Shutdown cancelled.
另外一个键盘信号是: quit
它通常使用 Ctrl 来表示,与intr不同的是,^ 不仅终止程序,还会让Unix为此时内存中的内容制作一份副本,保存在 core file 中,即 core dump.程序员可以使用工具分析该文件,以查找程序的问题.
现在,有了更好的调试工具,在多数系统上,quit已经不在生成磁芯文件(core file).如果出现了该文件,则意味着运行的程序出现了严重错误(比如段错误)而终止.一般情况下,它可以删除.
拥有帝国一切,皆有可能。欢迎访问phome.net
stop 和 start
Ctrl-S 和 Ctrl -Q,用来暂停和恢复屏幕的显示.这两个键来源与 Teletype ASR33,在ASR33上,Ctrl-Q发送XON码,这个代码打开纸带阅读机,而Ctrl-S 发送XOFF码,这个代码关闭纸带阅读机.
The End of File Signal: eof
Ctrl D 发送EOF(end of file)信号,指示输入完成,如果程序等待输入,而此时发送EOF信号,则程序终止,这也是Ctrl D可以退出SHELL的原因.
为了避免不小心按键而退出SHELL,可以使用 IGNOREEOF 的环境变量.例如:
IGNOREEOF=3
该变量被设置成3,意味着系统在退出之前要按多少次Ctrl D,SHELL才会真的退出.换句话说,也就是在第四次按下Ctrl D的时候,SHELL才执行退出的动作,前三次被忽略.按下Ctrl D的时候,SHELL会提示:
leoo@srv99:~$ IGNOREEOF=3
leoo@srv99:~$ Use "logout" to leave the shell.
把 IGNOREEOF 设置为0 ,则关闭该特性.如果想一直使用这个特性,把它加入到.profile文件中.
Korn SHELL
使用如下命令:
$ set -o ignoreeof
$ ^D
Use `exit'' to leave ksh
$
以上命令在OpenBSD4.8下,默认情况下,ksh会抵消掉12次的^D的输入.
关闭该特性的命令为:
set o ignoreeof
C-SHELL
使用如下命令:
freebsd# echo $SHELL
/bin/csh
freebsd# set ignoreeof
freebsd# ^D
Use "logout" to logout.
freebsd#
以上命令在FreeBSD8.1下,默认情况下,C-shell抵消掉25次的^D的输入.
关闭该特性的命令:
unset ignoreeof
显示当前值:
echo $ignoreeof
stty -a 可以现实当前的键盘映射.
$ stty -a
speed 38400 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
拥有帝国一切,皆有可能。欢迎访问phome.net
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
-ignbrk b***nt -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^; reprint = ^R; start = ^Q; sta |