正在学习Linux,记录一下学习历程。参考《Unix&Linux大学教程》(幽默感+事无巨细),进行了精简摘要和总结。
元字符
花括号扩展 | |
{ } | 生成一种字符模式 |
命令行 | |
| | 创建一个管道线 |
< | 重定向输入 |
> | 重定向输出 |
( ) | 在子shell中运行命令 |
# | 注释的开头,忽略该行 |
; | 分隔多条命令 |
' | 命令替换 |
文件名扩展 | |
~ | 插入home目录的名称 |
? | 匹配任意一个字符 |
[ ] | 与一组字符中的字符匹配 |
* | 匹配0个或多个字符 |
历史列表 | |
! | 事件标记 |
作业控制 | |
& | 在后台运行命令 |
引用 | |
\ | 下一个字符转义 |
’ | 取消所以的替换 |
“ | 取消大部分的替换 |
变量 | |
{ } | 确定变量名称的界限 |
$ | 变量值的替换 |
空白符 | |
<return> | 标记一行的结束 |
<tab> | 在命令行中分隔单词 |
<space> | 在命令行中分隔单词 |
引用和转义
引用:按字面的含义使用元字符。
转义:由一种模式改变到令一种模式。
使用\引用单个字符,转义了这个字符。(强引用)
使用' '引用一串字符,所有的元字符都被解释为字面含义。(强引用)
使用“ ”引用一串字符,出$,',\保留特殊含义外,其余元字符被解释为字面含义。(弱引用)
强引用&弱引用
主要讨论单引号和双引号的使用差别。强引用(单引号),在处理所在命令时,没有字符拥有特殊含义,所以字符原样保留。元字符可能在之后被使用。
弱引用(双引号),保留含义的元字符在当前命令就进行使用。
以元字符$为例,$变量名是表示变量的值。
使用单引号,防止$被解释,直至需要它,其后的变量值在使用前并不确定。
使用双引号,$立即被解释,其后的变量值在除了当前命令时就已经确定。
使用依据:变量的值在使用之前是否会变化?
:有时候可能希望不按管道使用|,正如Freud(弗洛伊德)曾经说过的:有时候竖线就是一个竖线。