shell基础-bash基本功能-输入输出重定向(图文)

1. 标准输入输出

设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

2. 输出重定向

  • 输出重定向: 输出本来由命令行,当进行命令之后,应该输入到屏幕上的,现在不让它输入到屏幕当中,改变它的输出方向,把他输出到文件当中,就叫输出重定向,因为改变了输出方向,不在输出原始的屏幕上,而是把它输出到文件当中。
    那为什么要把命令的结果保存在文件当中那??? 再服务器上不应该在白天执行一些,复制、日志、复制数据,这样的高负载命令,这个时候需要在凌晨三点到五点执行这样的命令。把今天产生的数据和日志备份起来,这个时候需要人凌晨五点上班手工执行这样的备份。当然不用,不管Linux还是在Windows都可以在指定的时间段,执行指定的任务。可以把备份命令写好一个脚本,告诉计算机凌晨三点或者五点,执行这个脚本就可以了,这个是定时任务。
  • 把命令的结果保存在文件中。目的:给管理员来看的。
类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输入输出到指定的文件设备当中
命令>> 文件 以追加的方式,把命令的正确输出,输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>文件 以覆盖的方式把命令的错误输出输出到指定的文件或设备当中
错误命令 错误命令 2>>文件

实验一下:
在这里插入图片描述
提示: 这时有一个问题,就是正确的话用正确的保存,错误的输出用错误的保存。可能会有疑问:我要是知道错,我直接写对不就完事了吗!!! 所以说这种方法用处不大。
正确输出和错误输出同时保存

符号 作用
命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中
命令 &> 文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
命令 &>> 文件 以追加的方式,把正确输出和错误输出都保存找到同一个文件当中
命令>>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中

小技巧: 有个习惯性的用法:把一个命令的结果以&的方式丢弃到/dev/null,ls &>/dev/null,他是Linux当中的一个特殊文件,相当于一个垃圾箱。 因为有些命令行在shell执行的时候会有输出,这个输出对整个shell脚本的运行没有任何意义,但是对命令格式本身就有输出,写脚本就是想让他批量执行,所以的输出直接扔到垃圾箱。

3.输入重定向

  • 输入重定向: 本来执行命令的参数,执行某些命令的参数,应该手工来输入,通过键盘来写入,现在改变它的输出方向,不用键盘来用,而是作为文件来作为输入,就是输入重定向。使用起来没有输出重定向这么常见,这么有用。一般给源码包打补丁的时候用。

  • 命令: wc [选项][文件名]
    选项:
             -c 统计字节数
             -w 统计单词数
             -l 统计行数

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

开始实验:
在这里插入图片描述
在这里插入图片描述

4. 总结

  • 重点掌握输出重定向。标准重定向最常用的是把错误的输出和正确的输出都保存在一个文件,或者保存在不同文件当中。 输入重定向了解就好。

猜你喜欢

转载自blog.csdn.net/weixin_46818279/article/details/107310322