| 管道符号

会将前一个指令的输出,输入到第二个指令的输入中

  1. ls -al | grep "package.json"
  2. echo -e "abc\n222" | cat > 1.txt

> 重定向输出符号

命令 > 文件名
特性:覆盖(当输入文件和输出文件是同一文件,文件内容被清空;不适合连续重定向)

  1. echo -g "abc\n222" > 1.txt # 会将 "abc\n222" 写入1.txt,如果没有1.txt文件会自动创建,如果有,会做文件覆盖操作

>> 重定向追加

命令 >> 文件名

  1. echo -g "abc\n222" >> 1.txt # 会将 "abc\n222" 追加到 1.txt 内容末尾,如果没有1.txt文件会自动创建

2> 错误重定向输出符号

  1. 命令 > 文件名 命令 2> 文件名 # 没使用过

2>> 错误重定向输出符号

  1. 命令 2>>文件名 # 没使用过

* 匹配任意字符

  1. rm *.js # 删除所有的.js文件

? 匹配任意一个字符

  1. rm ab?.js # 删除所有的ab?.js的文件

& 后台进程符

  1. nohup ./stast.sh & # 表示后台运行

&& 逻辑与, || 逻辑或,! 逻辑非

[x-y] 指定范围

# 注释,”” 双引号,’’ 单引号

“”:把它所包含的内容作为普通字符,但’’ \ $ `` 除外;
‘:把它所包含的内容作为普通字符,无例外

`` 倒引号

执行它所包含的内容

  1. cd `dirname "$0"`

\ 转义字符

$ 变量调用符号

  1. $abc # 可以取到变量abc的值

; 命令分隔符

用法:命令1 ; 命令2
机制;一行语句中,顺次执行各命令

() 整体执行

  1. echo $((6/2)) # 3

{ } 变量分离

  1. test = ${test:-abc}
  2. echo ${test} # abc