20.11.29
终端机的环境配置
stty [-a]
:修改终端命令行的相关设置
-a :将目前所有的 stty 参数列出来;
例:
stty erase ^h
[ctrl]+h 来进行字符的删除
- eof : End of file 的意思,代表『结束输入』。
- erase : 向后删除字符,
- intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序;
- kill : 删除在目前命令列上的所有文字;
- quit : 送出一个 quit 的讯号给目前正在 run 的程序;
- start : 在某个程序停止后,重新启动他的 output
- stop : 停止目前屏幕的输出;
- susp : 送出一个 terminal stop 的讯号给正在 run 的程序。
set [-uvCHhmBx]
:配置整个命令输出/输入的环境
选项与参数:
-u :默认不激活。若激活后,当使用未配置变量时,会显示错误信息;
-v :默认不激活。若激活后,在信息被输出前,会先显示信息的原始内容;
-x :默认不激活。若激活后,在命令被运行前,会显示命令内容(前面有 ++ 符号)
-h :默认激活。与历史命令有关;
-H :默认激活。与历史命令有关;
-m :默认激活。与工作管理有关;
-B :默认激活。与刮号 [] 的作用有关;
-C :默认不激活。若使用 > 等,则若文件存在时,该文件不会被覆盖。
Ctrl + C | 终止目前的命令 |
---|---|
Ctrl + D | 输入结束 (EOF),例如邮件结束的时候; |
Ctrl + M | 就是 Enter 啦! |
Ctrl + S | 暂停屏幕的输出 |
Ctrl + Q | 恢复屏幕的输出 |
Ctrl + U | 在提示字符下,将整列命令删除 |
Ctrl + Z | 『暂停』目前的命令 |
通配符与特殊符号
通配符
* | 代表『 0 个到无穷多个』任意字符 |
---|---|
? | 代表『一定有一个』任意字符 |
[ ] | 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』 |
[ - ] | 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的! |
[^ ] | 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。 |
特殊符号
符号 | 内容 |
---|---|
# | 批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行 |
\ | 跳脱符号:将『特殊字符或通配符』还原成一般字符 |
| | 管线 (pipe):分隔两个管线命令的界定(后两节介绍); |
; | 连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同) |
~ | 用户的家目录 |
$ | 取用变量前导符:亦即是变量之前需要加的变量取代值 |
& | 工作控制 (job control):将命令变成背景下工作 |
! | 逻辑运算意义上的『非』 not 的意思! |
/ | 目录符号:路径分隔的符号 |
>, >> | 数据流重导向:输出导向,分别是『取代』与『累加』 |
<, << | 数据流重导向:输入导向 |
‘ ‘ | 单引号,不具有变量置换的功能 |
" " | 具有变量置换的功能! |
|
两个『 ` 』中间为可以先运行的命令,亦可使用 $( ) |
( ) | 在中间为子 shell 的起始与结束 |
{ } | 在中间为命令区块的组合! |