Linux 基础总结(一)--Linux经常使用系统变量,alias,Source,Linux ps1 ps2 ps3 ps4,linux id,umask , trap, stty...

之前作嵌入式的时候用到过linux,不过大部分操做都在ubuntu的界面环境下完成,使用一些简单的命令来配置,编译linux内核,如今要在终端下工做,因此整理一些本身平时遇到的问题,有不对不足的地方还望你们指出。php

目录:html

  1. Shll built-in 变量
  2. linux alias详解
  3. Source 命令详解
  4. Linux ps1 ps2 ps3 ps4详解
  5. linux id 命令详解
  6. umask 详解
  7. linux trap命令 详解
  8. Linux stty

(1)Shell built-in 变量linux

$0当前shell程序的名字c++

$1 ~ $9命令行上的第一到第九个参数sql

$#命令行上的参数个数shell

$*命令行上的全部参数编程

$@分别用双引号引用命令行上的全部参数ubuntu

$$当前进程的进程标识号(PID)vim

$?上一条命令的退出状态安全

$!最后一个后台进程的进程标识号

系统变量只能引用不能修改!

(2)linux alias详解

1、简介

linux alias是命令的一种别称,输入

alias

能够看到像下面这样的结果:

alias vi="vim"

也即,输入vi后,被自动定向到vim这个命令了。alias的做用就是,能够简写命令。

2、修改alias

若要添加本身的alias,格式以下

alias la="ls -al --color=auto"

3、修改配置文件

上述命令,在用户登出后就无效了,能够用修改配置文件的办法,使每次都可以自动生效。

若要修改用户(而非所有用户)本身的alias,能够修改~/.bashrc文件

vii ~/.bashrc

再最后面加上你本身定义的alias,如

alias la="ls -al --color=auto"

这个修改,要下次登陆的时候才能生效。想要即刻生效,能够输入

source ~/.bashrc

4、经常使用的alias

这个根据我的爱好了,能够google之~找到你本身喜欢的alias

5、修改全局的alias能够修改系统配置文件,我这里就不说了。

还有其余的方面知识,如交互式、非交互式登陆的配置文件,这个也很少说了。

(3)source命令详解

source FileName

做用:在当前bash环境下读取并执行FileName中的命令。

注:该命令一般用命令“.”来替代。

如:source .bash_rc 与 . .bash_rc 是等效的。

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne

Shell而来)是source的另外一名称。一样的,当前脚本中配置的变量也将做为脚本的环境,source(或点)命令一般用于从新执行刚修改的初始化

文档,如 .bash_profile 和 .profile 等等。例如,假如在登陆后对 .bash_profile 中的 EDITER 和

TERM 变量作了修改,则可以用source命令从新执行 .bash_profile 中的命令而不用注销并从新登陆。

好比您在一个脚本里export $KKK=111 ,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK

,发现没有值,假如您用source来执行,而后再echo

,就会发现KKK=111。由于调用./a.sh来执行shell是在一个子shell里运行的,因此执行后,结构并无反应到父shell里,可是

source不一样他就是在本shell中执行的,因此可以看到结果

source命令的一个妙用

在编译核心时,经常要反复输入一长串命令,如

make mrproper

make menuconfig

make dep

make clean

make bzImage

.......

这些命令既长,又繁琐。并且有时候容易输错,浪费你的时间和精力。若是把这些命令作成一个文件,让它自动按顺序执行,对于须要屡次反复编译核心的用

户来讲,会很方便。用source命令能够办到这一点。它的做用就是把一个文件的内容当成是shell来执行。先在/usr/src/linux-

2.4.20目录下创建一个文件,取名为make_command:

在其中输入以下内容:

make mrproper &&

make menuconfig &&

make dep &&

make clean &&

make bzImage &&

make modules &&

make modules_install &&

cp arch/i386/boot/bzImge /boot/vmlinuz_new &&

cp System.map /boot &&

vi /etc/lilo.conf &&

lilo -v

文件创建好以后,之后每次编译核心,只须要在/usr/src/linux-2.4.20下输入

source make_command

就好了。这个文件也彻底能够作成脚本,只需稍加改动便可。这里主要是让你们理解source的用法。若是你用的不是lilo来引导系统,能够把最后两句话去掉。配置你本身的引导程序来引导新内核。

shell编程中的命令有时和C语言是同样的。&&表示与,||表示或。把两个命令用&&联接起来,如

make mrproper && make menuconfig

,表示要第一个命令执行成功才能执行第二个命令。对执行顺序有要求的命令能保证一旦有错误发生,下面的命令不会盲目地继续执行。

(4)Linux ps1 ps2 ps3 ps4详解

用户登陆Linux系统的字符界面后,就会出现"#"或"$"等命令提示符,好比"[root@pxe root]# “、"[oracle@db1 ~]$”或是 “-bash-3.00#”等等。

经过设置环境变量PS一、PS二、PS3以及PS4来自定义用户命令行的字符显示。若是要长期永久性修改提示符,能够将修改提示符的命令添加到$HOME/.profile或$HOME/.bash_profile文件中。

1. PS1

PS1是主提示符变量,也是默认提示符变量。默认值"/s-/v/$“,显示shell类型和版本。

基本上经过设置PS1来定义命令行提示字符便可,最经常使用的需求就是显示登陆的用户名、主目录、主机名等等,举个例子以下:

显示用户名,主机名和动态显示当前目录

-bash-3.00# export PS1="[/u@/h /w]"

[root@MagicLinux ~]cd /etc

[root@MagicLinux /etc]

注意:若是当前目录是用户的HOME目录,则显示"~"

PS1变量可使用的参数值有以下:

/d

表明日期,格式为weekday month date,例如:"Mon Aug 1"

/H

完整的主机名称。例如:个人机器名称为:fc4.linux,则这个名称就是fc4.linux

/h

仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

/t

显示时间为24小时格式,如:HH:MM:SS

/T

显示时间为12小时格式

/A

显示时间为24小时格式:HH:MM

/u

当前用户的帐号名称

/v

BASH的版本信息

/w

完整的工做目录名称。家目录会以 ~代替

/W

利用basename取得工做目录名称,因此只会列出最后一个目录

/#

下达的第几个命令

/$

提示字符,若是是root时,提示符为:# ,普通用户则为:$

/[

字符"["

/]

字符"]"

/!

命令行动态统计历史命令次数

2. PS2

PS2是副提示符变量,默认值是''> ''。

PS2通常使用于命令行里较长命令的换行提示信息,好比:

默认设置

-bash-3.00# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc /

> compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

自定义设置

-bash-3.00# export PS2="PS2 => "

-bash-3.00# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc /

PS2 => compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

3. PS3,PS4

这两个环境变量可能用得很少,不研究了。若是有兴趣,能够学习bash里面的简介。

(能够百度 linux超級技巧,第33章專門講述了ps3,ps4)

PS3 The value of this parameter is used as the prompt for the select command (see SHELL GRAMMAR above).

PS4 The value of this parameter is expanded as with PS1 and the value is printed before each command bash displays during an execution trace. The first character of PS4 is replicated multiple times, as neces-sary, to indicate multiple levels of indirection. The default is ''+ ''.

(5)linux id 命令详解

功能说明:显示用户的ID,以及所属群组的ID。

语  法:id [-gGnru][--help][--version][用户名称]

补充说明:id会显示用户以及所属群组的实际与有效ID。

若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。

参  数:

-g或--group   显示用户所属群组的ID。

-G或--groups 显示用户所属附加群组的ID。

-n或--name   显示用户,所属群组或附加群组的名称。

-r或--real   显示实际ID。

-u或--user   显示用户ID。

-help   显示帮助。

-version   显示版本信息。

(6)umask详解

umask=022"022"是八进制的写法,若是换成二进制是000010010

unix中文件权限是三类用户,三种权限。三类用户分别是文件全部者user(u),文件全部者所在主群组group(g)、其它用户others(o),三种权限分别是起读read(r)、写write(w)、执行execute(x)

若是一个文件的权限以下:全部者有读写的权限,群组有读和执行权限、其它用户有读权限,能够写成:

rw-xr-r--

其中前三位指明了全部者的权限、中间三位指明了组权限、最后三位指明了其它用户的权限。咱们用ls -l能够看到文件权限详情,列出来的是10位,最前一位若是是d表示是子目录。

事实上,新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位获得的。

按照规定:文件夹的基本码是rwxrwxrwx(777),文件的基本码是rw-rw-rw-(666)

而屏蔽位则是在/etc/profile(全部人)或者~/.profile中设定的。若是上述文件中皆无设定则默认就是022

咱们能够在shell下面输入umask命令查看/修改当前的系统屏蔽位。

$umask 033

$umask

$ 033

$umask 022

所以新建文件夹是777-022=755(rwxr-xr-x),新建文件是666-022=644(rw-r--r--)

$ mkdir test

$ touch test.txt

$ ll

$ drwxr-xr-x ... test/

$ -rw-r--r-- ... test.txt

因此咱们能够经过修改umask来改变新建文件文、件夹的权限.

(7)linux trap命令 详解

trap命令用于指定在接收到信号后将要采起的动做。常见的用途是在脚本程序被中断时完成清理工做。不过,此次我遇到它,是由于客户有个需求:从终端访问服务器的用户,其登录服务器后会自动运行某个命令,例如打开应用(命令写在.bashrc等文件中),最后退出,并断开链接;期间是不能容许其使用Ctrl+C等中断退出应用,而回到Shell环境,不然可能会带来安全问题。

固然,解决的方式有不少,如在应用中屏蔽中断信号、使用chroot方式访问等。但这些方法都有一些限制,如须要修改应用,让telnet等支持chroot方式(ssh可支持chroot)等。而使用trap也是一种比较好的解决方法。

1、关于信号

历史上,shell老是用数字来表明信号,而新的脚本程序应该使用信号的名字,它们保存在用#include命令包含进来的signal.h头文件中,在使用信号名时须要省略SIG前缀。

killtrap等均可以看到信号编号及其关联的名称。“信号”是指那些被异步发送到一个程序的事件。默认状况下,它们一般会终止一个程序的运行。

引用

# trap -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL

5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE

9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2

13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD

18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN

22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO

30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1

36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5

40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9

44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13

52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9

56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5

60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1

64) SIGRTMAX

附录中有个说明文档。

2、trap的使用

1、运行格式

trap命令的参数分为两部分,前一部分是接收到指定信号时将要采起的行动,后一部分是要处理的信号名。

trap command signal

它有三种形式分别对应三种不一样的信号回应方式。

第一种:

trap "commands" signal-list

当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令。

第二种:

trap signal-list

trap不指定任何命令,接受信号的默认操做,默认操做是结束进程的运行。

第三种:

trap " " signal-list

trap命令指定一个空命令串,容许忽视信号,咱们用到的就是这一种。

※ 请记住,脚本程序一般是以从上到下的顺序解释执行的,因此必须在你想保护的那部分代码之前指定trap命令。

2、测试

按照用户的要求,咱们须要屏蔽的是HUP INT QUIT TSTP几个信号。因此,能够运行:

# trap "" HUP INT QUIT TSTP

这个时候,能够试试打开一个持续的命令,而后中断其运行,例如:

# tail -f /var/log/messages

接着,试试用Ctrl+C Ctrl+\来中断试试,会程序是不会退出的。

3、恢复信号

若是想恢复的话,能够用Ctrl+Z把程序放到后台,而后运行:

# trap : HUP INT QUIT TSTP

而后,用ps -ef看看其PID号,bg 1让程序继续运行,最后用kill杀掉便可。

4、其余

您也能够试试运行:

# trap "echo 'Hello World' " HUP INT QUIT TSTP

这样,当您运行Ctrl+C等中断时,会自动运行echo命令,结果就是现实Hello World字符串:

引用

# tail -f /var/log/messages

May 18 16:57:54 192.168.228.153 dhcpd: DHCPREQUEST for 192.168.228.221 from 00:1d:72:92:d4:68 via eth0

May 18 16:57:54 192.168.228.153 dhcpd: DHCPACK on 192.168.228.221 to 00:1d:72:92:d4:68 via eth0

[root@mail ~]# Hello World

※ 注意,这方式并不能屏蔽中断,敲入Ctrl+C等信息后,仍以默认行为动做的,也就是退出程序,仅会再运行一个额外的命令而已。

3、附录

1、中断按键

不一样的终端类型、Shell版本其中断的按键是不一样的,甚至还能够自定义,这可经过stty命令查询:

引用

# stty -a

speed 38400 baud; rows 30; columns 111; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; start = ^Q; stop = ^S;

susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

^就是Ctrl的缩写。

2、信号详情

引用

名称默认动做说明

SIGHUP终止进程终端线路挂断

SIGINT终止进程中断进程

SIGQUIT创建CORE文件终止进程,而且生成core文件

SIGILL创建CORE文件非法指令

SIGTRAP创建CORE文件跟踪自陷

SIGBUS创建CORE文件总线错误

SIGSEGV创建CORE文件段非法错误

SIGFPE创建CORE文件浮点异常

SIGIOT创建CORE文件执行I/O自陷

SIGKILL终止进程杀死进程

SIGPIPE终止进程向一个没有读进程的管道写数据

SIGALarm终止进程计时器到时

SIGTERM终止进程软件终止信号

SIGSTOP中止进程非终端来的中止信号

SIGTSTP中止进程终端来的中止信号

SIGCONT忽略信号继续执行一个中止的进程

SIGURG忽略信号 I/O紧急信号

SIGIO忽略信号描述符上能够进行I/O

SIGCHLD忽略信号当子进程中止或退出时通知父进程

SIGTTOU中止进程后台进程写终端

SIGTTIN中止进程后台进程读终端

SIGXGPU终止进程 CPU时限超时

SIGXFSZ终止进程文件长度过长

SIGWINCH忽略信号窗口大小发生变化

SIGPROF终止进程统计分布图用计时器到时

SIGUSR1终止进程用户定义信号1

SIGUSR2终止进程用户定义信号2

SIGVTALRM终止进程虚拟计时器到时

1) SIGHUP本信号在用户终端链接(正常或非正常)结束时发出,一般是在终端的控制进程结束时,通知同一session内的各个做业,这时它们与控制终端再也不关联.

2) SIGINT程序终止(interrupt)信号,在用户键入INTR字符(一般是Ctrl-C)时发出

3) SIGQUITSIGINT相似,但由QUIT字符(一般是Ctrl-\)来控制.进程在因收到SIGQUIT退出时会产生core文件,在这个意义上相似于一个程序错误信号.

4) SIGILL执行了非法指令.一般是由于可执行文件自己出现错误,或者试图执行数据段.堆栈溢出时也有可能产生这个信号.

5) SIGTRAP由断点指令或其它trap指令产生.debugger使用.

6) SIGABRT程序本身发现错误并调用abort时产生.

7) SIGIOTPDP-11上由iot指令产生,在其它机器上和SIGABRT同样.

8) SIGBUS非法地址,包括内存地址对齐(alignment)出错. eg:访问一个四个字长的整数,但其地址不是4的倍数.

9) SIGFPE在发生致命的算术运算错误时发出.不只包括浮点运算错误,还包括溢出及除数为0等其它全部的算术的错误.

10) SIGKILL用来当即结束程序的运行.本信号不能被阻塞,处理和忽略.

11) SIGUSR1留给用户使用

12) SIGSEGV试图访问未分配给本身的内存,或试图往没有写权限的内存地址写数据.

13) SIGUSR2留给用户使用

14) SIGPIPE Broken pipe

15) SIGALRM时钟定时信号,计算的是实际的时间或时钟时间. alarm函数使用该信号.

16) SIGTERM程序结束(terminate)信号,SIGKILL不一样的是该信号能够被阻塞和处理.一般用来要求程序本身正常退出. shell命令kill缺省产生这个信号.

17) SIGCHLD子进程结束时,父进程会收到这个信号.

18) SIGCONT让一个中止(stopped)的进程继续执行.本信号不能被阻塞.能够用一个handler来让程序在由stopped状态变为继续执行时完成特定的工做.例如,从新显示提示符.

19) SIGSTOP中止(stopped)进程的执行.注意它和terminate以及interrupt的区别:该进程还未结束,只是暂停执行.本信号不能被阻塞,处理或忽略.

20) SIGTSTP中止进程的运行,但该信号能够被处理和忽略.用户键入SUSP字符时(一般是Ctrl-Z)发出这个信号

21) SIGTTIN当后台做业要从用户终端读数据时,该做业中的全部进程会收到SIGTTIN信号.缺省时这些进程会中止执行.

22) SIGTTOU相似于SIGTTIN,但在写终端(或修改终端模式)时收到.

23) SIGURG有紧急数据或out-of-band数据到达socket时产生.

24) SIGXCPU超过CPU时间资源限制.这个限制能够由getrlimit/setrlimit来读取/改变

25) SIGXFSZ超过文件大小资源限制.

26) SIGVTALRM虚拟时钟信号.相似于SIGALRM,可是计算的是该进程占用的CPU时间.

27) SIGPROF相似于SIGALRM/SIGVTALRM,但包括该进程用的CPU时间以及系统调用的时间.

28) SIGWINCH窗口大小改变时发出.

29) SIGIO文件描述符准备就绪,能够开始进行输入/输出操做.

30) SIGPWR Power failure

对于23信号量好理解,屏蔽ctrl+cctrl+\。可是1信号量到底什么做用呢?

转自http://blog.csdn.net/cugxueyu/archive/2008/01/16/2046565.aspx

SIGHUP信号与控制终端

UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。这儿是可能会有,在必定状况之下是没有的。与终端交互的进程是前台进程,不然即是后台进程。

SIGHUP会在如下3种状况下被发送给相应的进程:

1、终端关闭时,该信号被发送到session首进程以及做为job提交的进程(即用 & 符号提交的进程)

2session首进程退出时,该信号被发送到该session中的前台进程组中的每个进程

3、若父进程退出致使进程组成为孤儿进程组,且该进程组中有进程处于中止状态(收到SIGSTOPSIGTSTP信号),该信号会被发送到该进程组中的每个进程。

系统对SIGHUP信号的默认处理是终止收到该信号的进程。因此若程序中没有捕捉该信号,当收到该信号时,进程就会退出。

下面观察几种因终端关闭致使进程退出的状况,在这儿进程退出是由于收到了SIGHUP信号。login shellsession首进程。

首先写一个测试程序,代码以下:

#include <stdio.h>

#include <signal.h>

char **args;

void exithandle(int sig)

...{

printf("%s : sighup received ",args[1]);

}

int main(int argc,char **argv)

...{

args = argv;

signal(SIGHUP,exithandle);

pause();

return 0;

}

程序中捕捉SIGHUP信号后打印一条信息,pause()使程序暂停。

编译后的执行文件为sigtest

1、命 令:sigtest front > tt.txt

操 做:关闭终端

结 果:tt.txt文件的内容为front : sighup received

原 因: sigtest是前台进程,终端关闭后,根据上面提到的第1种状况,login shell做为session首进程,会收到SIGHUP信号而后退出。根据第2种状况,sigtest做为前台进程,会收到login shell发出的SIGHUP信号。

2、命 令:sigtest back > tt.txt &

操 做:关闭终端

结 果:tt.txt文件的内容为 back : sighup received

原 因: sigtest是提交的job,根据上面提到的第1种状况,sigtest会收到SIGHUP信号。

3、命 令:写一个shell,内容为[sigtest &],而后执行该shell

操 做:关闭终端

结 果:ps -ef | grep sigtest会看到该进程还在,tt文件为空

原 因:执行该shell时,sigtest做为job提交,而后该shell退出,导致sigtest变成了孤儿进程,再也不是当前sessionjob了,所以sigtest即不是session首进程也不是job,不会收到SIGHUP。同时孤儿进程属于后台进程,所以login shell退出后不会发送SIGHUPsigtest,由于它只将该信号发送给前台进程。第3条说过若进程组变成孤儿进程组的时候,如有进程处于中止状态,也会收到SIGHUP信号,但sigtest没有处于中止状态,因此不会收到SIGHUP信号。

4、命 令:nohup sigtest > tt

操 做:关闭终端

结 果:tt文件为空

原 因: nohup能够防止进程收到SIGHUP信号

至此,咱们就清楚了何种状况下终端关闭后进程会退出,何种状况下不会退出。

要想终端关闭后进程不退出有如下几种方法,均为经过shell的方式:

1、编写shell,内容以下

trap "" SIGHUP #该句的做用是屏蔽SIGHUP信号,trap能够屏蔽不少信号

sigtest

2nohup sigtest能够直接在命令行执行,

若想作完该操做后继续别的操做,能够 nohup sigtest &

3、编写shell,内容以下

sigtest &

其实任何将进程变为孤儿进程的方式均可以,包括fork后父进程立刻退出。

(8)Linux stty

linux/unix平台上的sqlplus中,若是输错了字符,要想删除,习惯性的按下backspace键后,发现非但没有删除想要删掉的字符,还多出了两个字符^H。当 然,咱们能够同时按下ctrl+backspace键来删除,但对于习惯了用backspace来删除的用户,这样很不爽。这能够经过修改tty终端的设置来实现backspace删除功能。经过使用stty命令,就能够查看或者修改终端的按键设置。

例如,设置backspace为删除键:

[oracle10g@linux]$ stty erase ^h

若是要改回使用ctrl+backspace为删除键

[oracle10g@linux]$ stty erase ^?

若是须要重启后自动设置终端,能够将上述命令加入到profile中。

能够经过stty -a命令来查看全部的终端设置。下面是在linux下执行的输出:

[oracle10g@linux]$ stty -a

speed 38400 baud; rows 66; columns 132; line = 0;

intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;

werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

其中:

  • eof : 输入结束
  • erase : 向后删除字符,
  • intr : 中断当前程序
  • kill : 删除整条命令
  • quit :退出当前程序
  • start : 启动屏幕输出
  • stop :中止屏幕输出;
  • susp : terminal stop当前程序。

参看引用连接:

源文档 <http://blog.csdn.net/cheungjustin/article/details/5678679>

源文档 <http://blog.csdn.net/cyberreality/article/details/6838788>

源文档 <http://blog.chinaunix.net/space.php?uid=21825410&do=blog&id=416073>

源文档 <http://blog.csdn.net/cheungjustin/article/details/5825213>

源文档 <http://powerclark.iteye.com/blog/564821>

源文档 <http://www.cnblogs.com/dkblog/archive/2011/09/04/2166571.html>

源文档 <http://blog.csdn.net/holandstone/article/details/6738769>

源文档 <http://blog.chinaunix.net/uid-26667139-id-3064721.html>