1、输入输出重定向可分为:
标准输入:由键盘输入
标准输出:由监视器输出
错误输出:与标准输出相同,但是他们是具有各自的数据流,各占一个数据流
通常用标识符对位:标准输入用0,标准输出用1,错误输出用2。
重定向:顾名思义就是将标准的输入和输出位置重新定向
覆盖重定向:> 每一次的输出都要覆盖源文件中的内容
追加重定向:>>
错误重定向:2>
错误追加重定向:2>>
整合错误和标准输出:2>&1
输入重定向:<
追加输入重定向:<<
在/dev/null 这个文件是一个虚拟的软件设备,用于存放命令执行的结果,而所有的结果进入后都将不在存在!
Linux中各个命令的执行结束后,无论成功与否都有一个退出码:成功执行是:0;错误执行:1-255;不同的错误类型具有不同的退出码;
获取刚刚执行命令的退出码用到命令:#echo $?
例子:
1、ll /ddev/null 2> /dev/null 这里我将dev输入错误为ddev所以这个命令会执行错误而这时我将这个错误信息输入到/dev/null中!
2、ls /home/ >> /tmp/a.txt 这里我将/home下中的所有文件名追加写入到/tmp/a.txt文件中!
3、cat > /tmp/b.txt << END 这里我将cat的内容重定向写入到/tmp/b.txt文件中,并且/tmp/b.txt事先不存在哦,当输入END时结束输入!
2、管道:把前一个命令的输出通过一个内部的用到送给后一个命令,并且后一个命令将其作为输入。用"|"(竖线)来表示。
例如:
1、#ls /etc | more 将/etc下所有的文件列表用more来打开
2、#ifconfig eth0 | grep "inet addr:" | cut -d: -f2 | cut -d' ' -f1 查看eth0的网卡信息,将其送个grep,搜索出存在"inet addr:"的一行内容,在送个cut,以:为分隔符切开取第二段结果在送个cut,以空格为分隔符切开,取其第一段,最后输出的就是网卡eth0的IP地址。
3、ls /var | tee /tmp/test/a.txt 将/var目录下的所有文件名写入到/tmp/test/a.txt文件中
* tee 把一个命令的执行结果显示到标准输出并且写入到文件中