一.重定向针对终端过滤器.不对交互工具和编辑器
Linux命令:筛选器ls等;编辑器vim等;交互工具mc等
流 | 描述符 | 缩写 | 转向 | 默认 |
标准输入 | 0 | Stdin | <.<< | 与KB相连 |
标准输出 | 1 | Stdout | > .1>;>>.1>> | 与显示器相连 |
标准错误 | 2 | Stderr | 2>.2>> | 与显示器相连 |
标准错误 定向到 标准输出 | 2>&1; &> |
1.终端程序一般从一个单一源以流的形式读取信息,如键盘。
在linux中,输入流被称作标准输入(Standard In=stdin),用>和>>重定向。
2.终端程序通常把信息作为流写入单一目的地,如显示器。
在linux中,输出流被称作标准输出(Standard Out=stdout)。
Mail -s “name” admin@a.com <a.txt
3.程序通常将出错状况信息报告给一个名叫标准错误(Standard Error=stderr)目的。
二.管道——Unix哲学:联合使用多个简单命令
# cat unsort.txt|sort
# cat unsort.txt|lp
# cat unsort.txt|sort>sorted.txt
# ls –l|grep ‘^d’|wc –l
# ls –l|grep ‘^-’|wc –l
# find /etc –size +100k 2> /dev/nul|grep
三.重定向举例
# ls > file ls >> file
# ls 1> file ls 1>> file
# ld 2> file ld 2>> file
# lll >a 2>&1
# lll >a 2>&1 lll >>file 2>&1
# dir 1>&2 dir >a 1>&2 dir >>a 1>&2
# ls|tee ls|tee >file命令a的stdout变作命令b的输入
# ld|tee
# ld |tee >a——cat a:a无内容
# ld 2>&1 | tee >a——cat a:a有内容
四.\;||;&&
1.&&成功符=成功则运行;||失败符=失败则运行
# ls /tmp/a||mkdir /tmp/a&&cd /tmp/a运行两次 # ls /tmp/a||mkdir /tmp 第一次执行的路线 # ls /tmp/a &&cd /tmp/a第二次执行的路线 |
# ping –c 100 –w 15 pc1 &> /dev/null&& echo “pc1 up”\ ||echo “pc1 off;exit 1” |
2.\在前叫跳脱符;\在后叫换行符
# echo “a \ b ” |
# ./configure \ --with-apache=../apache-$ApacheVersion \ --with-mysql=$MYSQLHOME&& |
3.单引号不转义与双引号四种会转义的情况$,\,!,`
# echo $PATH——显示变量值,等价于echo “$PATH” |
# echo \$PATH——显示‘$PATH’字符串,等价于echo ‘$PATH’ |