学习笔记6

第七单元 :标准的输出管道命令及for...do...done语句

1.输出和输出重定向:

           A.在I/O输出分为正确的输出和错误的输出,例如:

               正确的输出:【root@nana-pc mnt】#   ls

                                        file1    file2     file3     file4      file5

               错误的输出:【root@nana-pc mnt】#  sadfsadf

                                        bash:sadfsadf: command not found

           (问题1:因为ls命令是本身就知道的正确的输出命令,而sadfsadf命令是随机乱编的一个系统不存在的命令,所以通过它们对比来显示正确的输出和错误的输出。这样的理解是正确的吗?

           B.重定向输出:(注意学习这块内容做实验时要用一个普通用户)

            a.重定向正确的输出: >      ,例如:

                 【xiyou@nana-pc ~】$   find  /etc/  -name passwd  >file

                   find:/etc/ipsec.d/private:权限不够

                   find:/etc/cups/ssl:权限不够

                   find:/etc/chatscripts:权限不够

                   find:/etc/vpnc:权限不够

                   find:/etc/polkit-1/localauthority:权限不够

                   find:etc/ppp/peers:权限不够

                   find:etc/ssl:权限不够

                 【xiyou@nana-pc ~】$ cat  file

                   /etc/passwd

                   /etc/pam.d/passwd

                   /etc/cron.daily/passwd

                          【上例说明,在执行这个命令的时候,find命令的正确输出没有显示出来,而是被重定向到file这个文件中】

          b.重定向错误的输出:2>       ,例如:

                   【xiyou@nana-pc ~】$   find  /etc/  -name passwd  2>file.er

                     /etc/passwd

                    /etc/pam.d/passwd

                    /etc/cron.daily/passwd

                    【xiyou@nana-pc ~】$ cat  file.er

                      find:/etc/ipsec.d/private:权限不够

                      find:/etc/cups/ssl:权限不够

                      find:/etc/chatscripts:权限不够

                      find:/etc/vpnc:权限不够

                      find:/etc/polkit-1/localauthority:权限不够

                      find:etc/ppp/peers:权限不够

                      find:etc/ssl:权限不够

                            【上例说明,find命令的错误输出被重定向到了file.er这个文件中】

            c.重定向所有的输出:&>      ,find命令在执行的时候没有输出,所有的输出都被定向到另一个文件中;

                 (问题2:重定向正确的输出、错误的输出和所有的输出基本了解,find命令执行之后的命令何来对错而言?应该就是我不知道find命令的作用吧,我好像看后面某章讲到了这个命令

             d.追加正确的输入:>>

             (问题3:这一块例子的操作都有问题,连正确的追加都实现不了,下面附上一张错误的截图。此外,怎么理解“用>重定向的时候会覆盖文件原有内容而用>>不会”这句话?希望举例子讲解一下

2.管道命令:

            A.管道的意义在于用多条命令组合操作达到一个比较复杂的目的。例如,想查看/etc这个目录中有多少个次级文件,用ls只能显示这个目录里面的内容,达不到所要的效                   果,而wc -l 命令用于统计所输出内容的结果,故可以用管道命令将两者结合起来实现最终的结果,命令书写如下:ls /etc |wc -l

            B.在标准输出中只有正确的内容可以通过管道,例如:

                  【xiyou@nana-pc ~】$   find  /etc/  -name passwd  |wc -l

                   find:/etc/ipsec.d/private:权限不够

                   find:/etc/cups/ssl:权限不够

                   find:/etc/chatscripts:权限不够

                   find:/etc/vpnc:权限不够

                   find:/etc/polkit-1/localauthority:权限不够

                   find:etc/ppp/peers:权限不够

                   find:etc/ssl:权限不够

                   3

               【通过这条命令可以看到用wc命令来统计find命令输出的行数,结果是3。上例中输出的是find命令的错误内容,3显然是将正确内容通过了管道】

            C.让错误的输出也可以通过管道,要在管道符前加2>&1来实现,例如:

               【xiyou@nana-pc ~】$   find  /etc/  -name passwd  >file

                 10

              【find命令的正确输出3行,错误输出7行】

            D.让一组命令通过管道:当让一组命令的输出全部通过管道,要把这个命令组用()括起来;(问题4:将册子上的例子操作了一遍,可是我不理解它怎么实现了让一组命令通过管道

3.导入符号<及多行录入<<(问题5:这一块看不懂看不懂就是看不懂

4.for…do…done语句:for指定变量值,do做什么事情,done完成

            A.可以写在命令行中执行,例如:

            【xiyou@nana-pc mnt】# for ip in  $(seq 1 3);do ping -cl -wl 192.168.0.$ip;done

              ……

              ……

               【for定义变量,do使用变量,done完成,$(seq 1 3)的意义在于赋予ip这个变量1到3这个值】

             B.在脚本中,例如:(for…do…done语句在脚本中应用地很广泛)

             【xiyou@nana-pc mnt】# vim test

             【xiyou@nana-pc mnt】# cat test

              #!/bin/bash

              for ip in $(seq 1 3)

             do

             ping  -cl -wl 192.168.0.$ip

             done

             再用sh test执行这个脚本就可以了,效果和上面是一样的;

          

                  

              

            

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值