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


相关文章
|
4月前
|
Java 应用服务中间件 nginx
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
|
6月前
|
SQL 分布式计算 前端开发
MaxCompute操作报错合集之SQL脚本设置参数set odps.mapred.reduce.tasks=18;没有生效,是为什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
175 5
|
6月前
|
缓存 NoSQL 关系型数据库
Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前
Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前
|
7月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 内置命令】⭐⭐⭐Linux 设置或修改shell环境变量set命令 使用指南
【Shell 命令集合 系统设置 内置命令】⭐⭐⭐Linux 设置或修改shell环境变量set命令 使用指南
132 0
|
关系型数据库 MySQL 数据安全/隐私保护
mysql_config_editor 设置密码set --login_path
mysql_config_editor可以给指定的连接和密码生成一个加密文件.mylogin.cnf
160 0
|
关系型数据库 MySQL
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
233 0
Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
设计一个长方形类,成员变量包括长度和宽度,成员函数除包括计算周长和计算面积外,还包括用 Set 方法设置长和宽,以及用 get 方法来获取长
设计一个长方形类,成员变量包括长度和宽度,成员函数除包括计算周长和计算面积外,还包括用 Set 方法设置长和宽,以及用 get 方法来获取长
205 0
|
存储 PHP
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
208 0
|
6天前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
40 18
你对Collection中Set、List、Map理解?
|
2月前
|
存储 JavaScript 前端开发
Set、Map、WeakSet 和 WeakMap 的区别
在 JavaScript 中,Set 和 Map 用于存储唯一值和键值对,支持多种操作方法,如添加、删除和检查元素。WeakSet 和 WeakMap 则存储弱引用的对象,有助于防止内存泄漏,适合特定场景使用。