linux下的文件输入输出管理问题
linux下的文件的输入与输出
一.输入与出处的定义
- 输入:输入是指我们的键盘,鼠标等硬件在系统中录入的字符
- 输出:输出是指系统在接受到我们想要实现的功能字符后,经过进程的处理产生的字符, 输出会有两种出现,编号1为正确输出,编号2为错误输出,默认这两种输出都会被系统定向到字符设备中
如图,我们输入的输出的的都在pts的这个快设备里
二。如何管理文件的输入与输出
- 管理输出
####### 输出重定向#####
> #重定向正确输出
2> #重定向错误输出
&> #重定向所有输出
示例:在普通用户下查找 /etc/ 中的passwd文件,将正确的输出到file中,错误的输出到file.err中,全部文件输出到file.all中
注意:重定向会覆盖源文件内容,如果想要不覆盖,这里就要用到输出追加了
>> #追加正确输出到文件最后
2>> #追加错误输出到文件最后
&>> #追加所有输出到文件最后
- 管理输入
输入重定位"<<"
在有些时候需要多次输入的时候可能会让人感到厌烦,尤其时同样一件事,那么我们就可以在输入上下一番功夫,我们可以touch一个文件,给它执行的权力,然后进行输入重定位,这样就可以省去很多事情
注意,EOF处时输入的检测,当检测到与EOF相同的输入时则结束
注意:在执行文件时一定要是绝对路径,否则文件可能会找不到
3.管道 “|”
管道的作用:把输入变成输出
ls /bin | wc -l 统计/bin下的文件有多少个
注意:通过管道后输出会变成输入,那么是无法保存在文件中的
tee 复制输出到指定位置
ls /bin | tee file | wc -l 统计/bin下的文件保存在file文件中,并在shell中显示有多少个
注意:管道只能将正确的输入变输出,错误的则不行
在这里,我们用2>&1:把错误的编号由2转1,这样错误的输出也就可以通过管道