2013.12.26
管道,符号“|”,将一个指令的输出结果,作为另一个指令的输入.例如:ps axu | grep rpc.pcnfsd | grep -v grep > /dev/null(指令1) && wall pcnfs.run(指令2) ,第2个"|"把后面的2个指令做条件式的指令执行条件式的指令执行,符号"||"或"&&","||"相当于else,"&&"相当于C中的then.
群体指令,符号"()",和连续指令不同,在执行完毕后当前shell环境不会被改变,同时也可以做多指令执行同一输出。比如:
who >> data.tmp;ps axu >> data.tmp;df >> data.tmp 可以改成(who;ps axu;df) >> data.tmp
( command > stdout.file ) >& err.data 可以实现输出信息和其中的错误信息的分离
重定向输入输出,符号"<","<<",">",">>",另有符号">&",">>&"可以把sh命令的错误信息也写入到文件中,类似
find: cannot chdir to /var/spool/mqueue: Permission denied 的信息也可以写入文件中。
tr "[A-Z]" "[a-z]" < report.org > report.low 先把report.org文件的数据输入到tr指令中,tr指令执行替换大小写的功能后,把结果输出到report.low中。
shell的垃圾筒,符号"/dev/null",把输出信息重定向到这里,可以避免屏幕上的信息比较乱。
今天总结,适当使用符号"()"可以让指令的作用更加清晰。一些系统符号需要强记!