10.4.4 终端机的环境设置: stty, set

简介: 10.4.4 终端机的环境设置: stty, set

在 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 会被主动的创建,而内容就是刚刚键盘上面输入的那两行数据了。


相关文章
|
2月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 内置命令】⭐⭐⭐Linux 设置或修改shell环境变量set命令 使用指南
【Shell 命令集合 系统设置 内置命令】⭐⭐⭐Linux 设置或修改shell环境变量set命令 使用指南
33 0
|
12月前
|
关系型数据库 MySQL 数据安全/隐私保护
mysql_config_editor 设置密码set --login_path
mysql_config_editor可以给指定的连接和密码生成一个加密文件.mylogin.cnf
105 0
设计一个长方形类,成员变量包括长度和宽度,成员函数除包括计算周长和计算面积外,还包括用 Set 方法设置长和宽,以及用 get 方法来获取长
设计一个长方形类,成员变量包括长度和宽度,成员函数除包括计算周长和计算面积外,还包括用 Set 方法设置长和宽,以及用 get 方法来获取长
145 0
|
存储 PHP
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
103 0
|
关系型数据库 MySQL
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
135 0
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
|
移动开发 JSON JavaScript
weex-使用Vue.set设置属性和使用this.xxx设置属性的区别
weex-使用Vue.set设置属性和使用this.xxx设置属性的区别
90 0
weex-使用Vue.set设置属性和使用this.xxx设置属性的区别
|
网络协议 PHP
php stream_set_blocking设置非阻塞模式,php stream_set_blocking影响函数fgets()和fread()
php stream_set_blocking设置非阻塞模式,php stream_set_blocking影响函数fgets()和fread()
245 0
开发指南—DAL语句—SET—SET语句变量设置
您可以通过SET语句设置各类变量,包括用户自定义的变量、session变量和global变量。
|
关系型数据库 MySQL
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL、Set DEFAULT
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL、Set DEFAULT
211 0
|
Android开发
【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
298 0