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

 

以前做嵌入式的时候用到过linux,不过大部分操作都在ubuntu的界面环境下完成,使用一些简单的命令来配置,编译linux内核,现在要在终端下工作,所以整理一些自己平时遇到的问题,有不对不足的地方还望大家指出。

 

目录:

  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 变量

$0           当前shell程序的名字

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

$#           命令行上的参数个数

$*           命令行上的所有参数

$@         分别用双引号引用命令行上的所有参数

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

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

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

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

 

(2)linux alias详解

一、简介

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

alias

可以看到像下面这样的结果:

alias vi="vim"

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

 

二、修改alias

若要添加自己的alias,格式如下

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

 

三、修改配置文件

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

若要修改用户(而非全部用户)自己的alias,可以修改~/.bashrc文件

vii ~/.bashrc

再最后面加上你自己定义的alias,如

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

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

source ~/.bashrc

 

四、常用的alias

这个根据个人爱好了,可以google之~找到你自己喜欢的alias

 

五、修改全局的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#”等等。

通过设置环境变量PS1、PS2、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也是一种比较好的解决方法。

一、关于信号

历史上,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

附录中有个说明文档。

二、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等信息后,仍以默认行为动作的,也就是退出程序,仅会再运行一个额外的命令而已。

三、附录

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>

你可能感兴趣的:(Linux 基础总结(一)--Linux常用系统变量,alias,Source,Linux ps1 ps2 ps3 ps4,linux id,umask , trap, stty)