| 管道符号
会将前一个指令的输出,输入到第二个指令的输入中
ls -al | grep "package.json"
echo -e "abc\n222" | cat > 1.txt
> 重定向输出符号
命令 > 文件名
特性:覆盖(当输入文件和输出文件是同一文件,文件内容被清空;不适合连续重定向)
echo -g "abc\n222" > 1.txt # 会将 "abc\n222" 写入1.txt,如果没有1.txt文件会自动创建,如果有,会做文件覆盖操作
>> 重定向追加
命令 >> 文件名
echo -g "abc\n222" >> 1.txt # 会将 "abc\n222" 追加到 1.txt 内容末尾,如果没有1.txt文件会自动创建
2> 错误重定向输出符号
命令 > 文件名 命令 2> 文件名 # 没使用过
2>> 错误重定向输出符号
命令 2>>文件名 # 没使用过
* 匹配任意字符
rm *.js # 删除所有的.js文件
? 匹配任意一个字符
rm ab?.js # 删除所有的ab?.js的文件
& 后台进程符
nohup ./stast.sh & # 表示后台运行
&& 逻辑与, || 逻辑或,! 逻辑非
[x-y] 指定范围
# 注释,”” 双引号,’’ 单引号
“”:把它所包含的内容作为普通字符,但’’ \ $ `` 除外;
‘:把它所包含的内容作为普通字符,无例外
`` 倒引号
执行它所包含的内容
cd `dirname "$0"`
\ 转义字符
$ 变量调用符号
$abc # 可以取到变量abc的值
; 命令分隔符
() 整体执行
echo $((6/2)) # 3
{ } 变量分离
test = ${test:-abc}
echo ${test} # abc