文件输入输出的管理

1.输入输出的定义
输入:用键盘,鼠标等硬件在系统逐个录入的字符 
输出:系统接收到我们想要实现的功能字符后,经过进程的处理产生字符

注:输出会有两种结果,编号1为正确输出,编号2为错误输出,输出结果会被系统默认定向到字符设备中
2.管理输入

(1)交互式录入

 举例:(改root用户密码)

[root@desktop Desktop]# vim passwd.sh   # 编辑该密码的脚本文件
 #!/bin/bash
 passwd
[root@desktop Desktop]# sh passwd.sh    # 该脚本需要手动运行
 Changing password for user root.
 New password: 
 BAD PASSWORD: The password is shorter than 8 characters
 Retype new password: 
 passwd: all authentication tokens updated successfully.

(2)非交互式录入

 [root@desktop Desktop]# vim  C_pass.sh 
 #!/bin/bash 
 
 passwd <<END
 redhat 
 redhat 
 END

在这里插入图片描述

 [root@desktop Desktop]# sh C_pass.sh        # 可以自动运行避免交互
 Changing password for user root.
 New password: BAD PASSWORD: The password is shorter than 8 characters
 Retype new password: passwd: all authentication tokens updated successfully.

在这里插入图片描述

3.管理输出

(1)重定向

 >	              # 重定向正确输出 
 2>	              # 重定向错误输出 
 &>	              # 重定向所有输出 
 2>&1	          # 把错误输出的编号由2转换为1
  • 注:请用student用户做以下实验

[root@desktop ~]# su - student
[student@desktop ~]$ find /etc/ -name passwd  >    file.in   #显示错误信息,正确信息写入文件

在这里插入图片描述

[student@desktop ~]$ cat file.in

在这里插入图片描述

[student@desktop ~]$ find /etc/ -name passwd 2>    file.err  # 显示正确信息,错误信息录入文件

在这里插入图片描述

[student@desktop ~]$ cat file.err 

在这里插入图片描述

[student@desktop ~]$ find /etc/ -name passwd &>    file.all  # 所有信息录入文件
[student@desktop ~]$ cat file.all 

在这里插入图片描述

[student@desktop ~]$ find /etc/ -name passwd >   file 2>&1  # 所有信息录入文件 
[student@desktop ~]$ cat file

在这里插入图片描述

注:重定向是会覆盖原文件内容的
[root@desktop Desktop]# vim file1
 hello world
[root@desktop Desktop]# find /etc/ -name passwd  >  file1  # 用passwd里的东西覆盖file1的东西
[root@desktop Desktop]# cat file1   # 原文件内容被passwd里的内容覆盖 

在这里插入图片描述

(2)追加(保持原文件内容不变的情况下把输出追加到文件之后)

 >>	           # 追加正确输出   
 2>>	       # 追加错误输出    
 &>>	       # 追加所有输出 

[root@desktop Desktop]# vim file
hello world
[root@desktop Desktop]# find /etc/ -name passwd  >>  file
[root@desktop Desktop]# cat file

在这里插入图片描述

[root@desktop Desktop]# find /etc -name passwd  2>>  file  # 追加错误信息的到file文件里
 /etc/passwd
 /etc/pam.d/passwd
[root@desktop Desktop]# find /etc -name passwd  &>>  file  # 追加所有信息到file文件里
[root@desktop Desktop]# cat westos      

在这里插入图片描述
(3)管道 ‘|’ (把输出变成下一个程序的输入,只有编号为1的输出可通过管道)

 使用方法:组合多条命令的使用 

[root@desktop Desktop]# ls /bin | wc -l   # 统计/bin下有多少个目录,输出在终端上
 1614

 注:通过管道后输出会变成输入,但是无法保存在文件中的 
  • tee (复制输出到指定位置,即实现了把通过管道的文件保存起来)

 [root@desktop Desktop]# ls /bin | tee file | wc -l  #  把查看到的保存在file文件中
 1614
 [root@desktop Desktop]# cat file

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值