Linux学习之Shell基础——Bash基本功能——输入输出重定向

版权声明:本文为博主原创文章,未经博主允许不得转载。 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     :统计行数

使用:

命令 <  文件名    :把文件作为命令的输入

命令  << 文件名   :把两个相同字符串之间的内容作为命令的输入

猜你喜欢

转载自blog.csdn.net/zxllynu/article/details/85037922