在 tty1 ~ tty6 这六个命令行的终端机(terminal) 环境中登陆,登陆的时候我们可以取得一些字符设置的功能。举例来说,我们可以利用倒退键 (backspace,就是那个←符号的按键) 来删除命令列上的字符, 也可以使用 [ctrl]+c 来强制终止一个指令的运行,当输入错误时,就会有声音跑出来警告。
我们可以利用 stty -a 来列出目前环境中所有的按键列表,在上头的列表当中,需要注意的是特殊字体那几个, 此外,如果出现 ^ 表示 [Ctrl] 那个按键的意思。举例来说, intr = ^C 表示利用 [ctrl] + c 来达成的。几个重要的代表意义是:
intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序(终止);
quit : 送出一个 quit 的讯号给目前正在 run 的程序;
erase : 向后删除字符,
kill : 删除在目前命令行上的所有文字;
eof : End of file 的意思,代表“结束输入”。
start : 在某个程序停止后,重新启动他的 output
stop : 停止目前屏幕的输出;
susp : 送出一个 terminal stop 的讯号给正在 run 的程序。
bash默认的组合键汇整如下:
10.4.5 万用字符与特殊符号
汇整一下bash环境中的特殊符号:
10.5 数据流重导向
10.5.1 什么是数据流重导向
数据流重导向是由指令的执行结果谈起,如果要执行一个指令,通常会这样:
图10.5.1、指令执行过程的数据传输情况
我们执行一个指令的时候,这个指令可能会由文件读入数据,经过处理之后,再将数据输出到屏幕上。 在上图当中, standard output 与 standard error output 分别代表“标准输出(STDOUT)”与“标准错误输出 (STDERR)”。
standard output 与 standard error output
标准输出指的是“指令执行所回传的正确的讯息”,而标准错误输出可理解为“ 指令执行失败后,所回传的错误讯息”。举个简单例子来说,我们的系统默认有 /etc/crontab 但却无 /etc/vbirdsay, 此时若下达“ cat /etc/crontab /etc/vbirdsay ”这个指令时,cat 会进行:
标准输出:读取 /etc/crontab 后,将该文件内容显示到屏幕上;
标准错误输出:因为无法找到 /etc/vbirdsay,因此在屏幕上显示错误讯息
数据流重导向可以将 standard output (简称 stdout) 与 standard error output (简称 stderr) 分别传送到其他的文件或设备去,而分别传送所用的特殊字符则如下所示:
1. 标准输入 (stdin) :代码为 0 ,使用 < 或
2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
为了理解 stdout 与 stderr ,我们先来进行一个范例的练习:
~/rootfile 的文件名可以随便取,如果你下达“ cat ~/rootfile ”那就可以看到原本应该在屏幕上面的数据。该文件的创建方式是:
1. 该文件 (本例中是 ~/rootfile) 若不存在,系统会自动的将他创建起来,但是
2. 当这个文件存在的时候,那么系统就会先将这个文件内容清空,然后再将数据写入!
3. 也就是若以 > 输出到一个已存在的文件中,那个文件就会被覆盖掉。
standard input : < 与
加入 > 在 cat 后,所以那个 catfile 会被主动的创建,而内容就是刚刚键盘上面输入的那两行数据了。