一、命令的运行顺序shell
二、经过 type -a ls 也能够查询的命令的运行顺序。bash
三、source :读入环境配置文件的命令。ui
利用 source 或小数点 (.) 均可以将配置文件的内容读进来目前的 shell 环境中。编码
四、Ctrl + U 在提示字符下,将整列命令删除。spa
五、在 bash 的操做环境中还有一个很是有用的功能,那就是通配符 (wildcard) blog
符号 | 意义 |
* | 表明『 0 个到无穷多个』任意字符 |
? | 表明『必定有一个』任意字符 |
[ ] | 一样表明『必定有一个在括号内』的字符(非任意字符)。例如 [abcd] 表明『必定有一个字符, 多是 a, b, c, d 这四个任何一个』 |
[ - ] | 如有减号在中括号内时,表明『在编码顺序内的全部字符』。例如 [0-9] 表明 0 到 9 之间的全部数字,由于数字的语系编码是连续的! |
[^ ] | 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 表明 必定有一个字符,只要是非 a, b, c 的其余字符就接受的意思。 |
六、排序
符号 | 内容 |
# | 批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行 |
\ | 跳脱符号:将『特殊字符或通配符』还原成通常字符 |
| | 管线 (pipe):分隔两个管线命令的界定(后两节介绍); |
; | 连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同) |
~ | 用户的家目录 |
$ | 取用变量前导符:亦便是变量以前须要加的变量取代值 |
& | 工做控制 (job control):将命令变成背景下工做 |
! | 逻辑运算意义上的『非』 not 的意思! |
/ | 目录符号:路径分隔的符号 |
>, >> | 数据流重导向:输出导向,分别是『取代』与『累加』 |
<, << | 数据流重导向:输入导向 (这两个留待下节介绍) |
' ' | 单引号,不具备变量置换的功能 |
" " | 具备变量置换的功能! |
` ` | 两个『 ` 』中间为能够先运行的命令,亦可以使用 $( ) |
( ) | 在中间为子 shell 的起始与结束 |
{ } | 在中间为命令区块的组合! |
七、数据流重导向ip
数据流重导向能够将 standard output (简称 stdout) 与 standard error output (简称 stderr) 分别传送到其余的文件或装置去,而分别传送所用的特殊字符则以下所示:ci
>或者2>将会清空文件中上次的写入内容,>>和2>>将会追加内容到已存在的文件内。it
八、若是我知道错误信息会发生,因此要将错误信息忽略掉而不显示或储存呢? 这个时候黑洞装置 /dev/null 就很重要了!这个 /dev/null 能够吃掉任何导向这个装置的信息。
九、若是我要将正确与错误数据统统写入同一个文件去呢?这个时候就得要使用特殊的写法
[dmtsai@www ~]$ find /home -name .bashrc > list 2> list <==错误 [dmtsai@www ~]$ find /home -name .bashrc > list 2>&1 <==正确 [dmtsai@www ~]$ find /home -name .bashrc &> list <==正确
十、< 与 <<:将本来须要由键盘输入的数据,改由文件内容来取代。
十一、『我要用 cat 直接将输入的信息输出到 catfile 中, 且当由键盘输入 eof 时,该次输入就结束』,那我能够这样作:cat > catfile << "eof"。
十二、在命令与命令中间利用分号 (;) 来隔开,这样一来,分号前的命令运行完后就会马上接着运行后面的命令了。(不考虑命令相关性的连续命令下达)
1三、|| 和 && 相似于js中的短路运算符,不过Linux 底下的命令都是由左往右运行。
1四、若前一个命令运行的结果为正确,在 Linux 底下会回传一个 $? = 0 的值。
1五、管线命令『 | 』仅能处理经由前面一个命令传来的正确信息,也就是 standard output 的信息,对于 stdandard error 并无直接处理的能力。
1六、cut:能够将一段信息的某一段给他『切』出来~ 处理的信息是以『行』为单位。
1七、sort:排序命令
1八、uniq:重复的数据只显示一行
1九、wc:输出文件总体信息,行、字、字符。
20、tee: 会同时将数据流分送到文件去与屏幕 (screen);而输出到屏幕的,其实就是 stdout ,可让下个命令继续处理。
2一、xargs:产生某个命令的参数。
2二、split:分割命令