版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxllynu/article/details/85037922
1、标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/sdtout | 1 | 标准输出 |
显示器 | /dev/sdterr | 2 | 标准错误输出 |
2、输出重定向(将原本该输出到显示器中的内容输出到文件或其他设备中,一般用于日志等)
类型 | 符号 | 作用 |
标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出指定到指定的文件或设备当中 |
命令 >> 文件 | 以追加的方式,把命令的正确输出输出到指定的文件或设备当中 | |
标准错误输出重定向 | 错误命令 2> 文件 | 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 |
错误命令 2>>文件 | 以追加的方式,把命令的错误输出输出到指定的文件或设备当中 |
正确输出和错误输出同时保存 | 命令 > 文件 2>&1 | 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
命令 >> 文件 2>&1 | 以追加的方式,把正确输出和错误输出都保存到同一个文件当中 | |
命令 &> 文件 | 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 | |
命令 &>> 文件 | 以追加的方式,把正确输出和错误输出都保存到同一个文件当中 | |
命令 >> 文件1 2>> 文件2 | 把正确的输出追加到文件1中,把错误的输出追加到文件2中 |
如上,是分开操作,但对于实际操作中不实用,如上需要我们先行知道标准输出执行是否出错,所以为了更实用,一般采用如下措施
注意:不是所有的命令都有如上输出重定向功能,可以使用的命令为:必须有结果输出的命令
错误输出保存到文件中,表示系统执行命令错误时,会把执行命令出错的信息保存到文件中
如下,我们把ls命令执行的结果重定向输出到自定义的文件中
[root@localhost ~]# touch cdef
[root@localhost ~]# ls
abc cde install.log sh 模板 图片 下载 桌面
anaconda-ks.cfg cdef install.log.syslog 公共的 视频 文档 音乐
[root@localhost ~]# chmod 777 cdef
[root@localhost ~]# ls > cdef
[root@localhost ~]# ls
abc cde install.log sh 模板 图片 下载 桌面
anaconda-ks.cfg cdef install.log.syslog 公共的 视频 文档 音乐
[root@localhost ~]# cat cdef
abc
anaconda-ks.cfg
cde
cdef
install.log
install.log.syslog
sh
公共的
模板
视频
图片
文档
下载
音乐
桌面
[root@localhost ~]# vim cdef
3、特殊命令
ls &> /dev/null :该命令表示无论输出是什么,都输出到垃圾箱中
4、输入重定向
[root@localhost ~]# wc 【选项】[文件名]
选项:
-c :统计字节数
-w :统计单词数
-l :统计行数
使用:
命令 < 文件名 :把文件作为命令的输入
命令 << 文件名 :把两个相同字符串之间的内容作为命令的输入