linux系统---------文件输入输出的管理

 文件输入输出的管理 

 

   1.1输入输出的定义

       1.1.1   输入 :就是我们的键盘,鼠标和我们用这些硬件在系统只哦个录入的字符。

       1.1.2   输出 :就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符。

       1.1.3   输出会有两种结果:(1) 编号为“1”的正确输出。

                                                   (2) 编号为“2”的错误 输出。

                                             #默认着两种输出都会被系统定向到字符设备中。

      如在student用户中执行命令,在/etc/目录下寻找名为“passwd”的文件。

     

     我们可以看到当输入命令后,对应有两条正确的输出---“/etc/passwd"和"/etc/pam.d/passwd"。

     及对应的其他错误输出。

 

1.2 “.sh”脚本管理输出 

  

     1.2.1  非交互式多行录入,利用”.sh“文件。

## ”.sh“文件是 UNIX/LINUX 操作系统的脚本文件,”sh“是Linux,unix的命令,其用途为调用缺省的shell。

     下面举例进行说明,利用“.sh”文件来修改用户密码。首先用命令“ vim C_pass.sh”创建一个“.sh”文件,并输入"passwd"。

 

   再使用命令“sh C-pass.sh"调用文件中"passwd"的命令,则进入到修改密码的命令中。

  但其是不能自动运行的,仍然需要手动输入密码,若直接将密码加入到".sh"文件中则可直接修改成功,命令如下

                            passwd <<END

                            lee

                            lee

                            END

                           sh C_pass.sh

可以自动运行避免交互,密码修改完成,其中”END"用来规定起始,也可用其他字符代替,但首尾必须一致。

    下面举例使用".sh"脚本输出“hello”并输入到“file”文件中。

 

1.3 如何管理输出

       上面我们提到输出有编号为“1”的正确输出,和编号为“2”的错误输出,下面介绍“ 重定向输出 ”,将输出可重新定义方向输出。

              >                                #重定向正确输出

              2>                              #重定向错误输出

              &>                             #重定向所有输出

              2>&1                        #把错误输出的编号由2转换为1

     以上面在student用户中执行命令,在/etc/目录下寻找名为“passwd”的文件为例,将输出正确的结果重定向到“file.right"文件中。输入命令”find  /etc/  -name  passwd  > file.right"。

     

 

       再将输出错误的结果重定向到“file.error"文件中。输入命令”find  /etc/  -name  passwd  2> file.error“。

     

      再将所有输出结果重定向到”file.all“文件中,输入命令”find  /etc/  -name  passwd  &> file.all“

      

                        ###"注意:重定向是会覆盖原文件内容的!!!"###

        如 输入命令”vim westos“,输入内容,再将所有输出重定向到”westos“中,原文件被覆盖。

     

     

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

         >>                ##追加正确输出

         2>>              ##追加错误输出

         &>>             ##追加所有输出

 

1.4 ”管道“管理输出

           管道:(1) 把输出变成下一个程序的输入

                      (2) 管道是用来组合多条命令的使用的

       如输入命令” ls /bin | wc -l“-----查看”/bin/目录下文件,并将其行数统计出来输出,本来的输出应该是目录下的文件,而在使用管道后将文件变为“wc -l”的输入,再输出行数。

      

     

                      ###注意:通过管道后输出会变成输入,那么是无法保存在文件中的###

                      ###使用 “ tee  ” , 可将复制输出到指定位置。###

 

      执行命令“ls /bin | tee file | wc -l”,在执行“cat file ”,可以看到file中已经保存了输出。

      

 

1.5  练习

          1.显示当前时间 , 显示格式为 hh:mm:ss, 并保存到文件 time.txt文件中

          2.显示 /etc/passwd 文件的第 15-18 行内容

          3.显示 /bin 中文件包含大写字母的文件 , 保存到bin_westos_file.txt 文件中,并统计个数显示到屏幕

          4.在 student 用户下查找 /etc 下 passwd 文件,屏蔽错误输出

          5.在 student 用户下查找 /etc 下 passwd 文件,正确输出保存到 /tmp/westos.out 错误输出保存到 /tmp/westos.err

          6.在 student 用户下查找 /etc 下 passwd 文件,显示命令输出并保存输出到 /tmp/westos.all 中

          具体操作如下:

         

         先显示文件的前18行

          

         再通过管道将刚刚输出变为输入,显示后4行。

        

         第三题输入如下图所示

        

          第4.5.6题如下图所示

                

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值