由摩根定律引发的思考

Linux中,我们常常需要对一些条件进行判断,而对于多个条件的组合判断是基于摩根定律而进行的。所以理解摩根定律对于我们学习条件判断是很有必要的,下面我们就先介绍摩根定律进而引出其在一些具体场景上的应用。

 

一、摩根定律

Linux中的条件判断中,摩根定律可以以下式来表示:

!( A || B )=!A && !B

!( A && B )=!A || !B

       为了方便理解,我们以下面的图例来进行分析:

摩根定律.png

如上图,我们先来看一下摩根定律等式两边在图中的颜色范围:

!(A || B):我们知道,A || B在图中的颜色范围为黄++绿三种颜色的范围,所以!(A || B)的取值范围就是图中灰色范围;

!A && !B:我们可以看出,!A在图中的颜色范围为灰+绿两种颜色,!B在图中的颜色范围为灰+黄,两者取交集,即为灰色

!(A && B):可以看出,A && B在图中的颜色范围为红色,那么!(A && B)在图中就表示除红色外的所有部分,即++绿三种颜色范围;

!A || !B:我们知道,!A在图中的颜色范围为除黄+红外的所有范围,即灰+绿;!B在图中的颜色范围为除绿+红之外的所有范围,即灰+黄;那么对于!A || !B,取!A!B的并集,即++绿三种颜色范围;

综上,我们对于摩根定律中的两个等式应该能够彻底理解了。

 

二、摩根定律的应用

了解了摩根定律,下面我们来看摩根定律在一些场景下的应用。

Ø  编写一个脚本,当用户给出一个文件时,判断当前用户对此文件是否不可读且不可写;

摩根定律1.PNG

由上图我们可以看到,当我们使用[ ! –r $file –a ! –w $file ]! [ -r $file –o –w $file ]进行判断时,其判断结果相同,即符合摩根定律!( A || B )=!A && !B

Ø  查找系统中没有属主或没有属组的文件

摩根定律2.PNG

由上图我们可以看到,当我们使用-not –user root –o –not –group root-not \( -user root –a –group root \)进行查找时,其结果相同,即符合摩根定律!( A && B )=!A || !B

原创文章,作者:luoliumeng,如若转载,请注明出处:http://www.178linux.com/36002

(0)
luoliumengluoliumeng
上一篇 2016-08-16
下一篇 2016-08-16

相关推荐

  • 0803作业

    课上练习 1.当用户xiaoming 对/testdir  目录无执行权限时,意味着无法做哪些操作?  drwxr-xr–. 14 root root 4096 Aug  3 13:35 /testdir [xiaoming@localhost ~]$ touch /testdir/f1…

    Linux干货 2016-08-04
  • 文件系统上的权限管理

                        文件系统上的权限管理: 一 、三种权限       &nbs…

    Linux干货 2017-04-03
  • 文件的查找作业

    1、查找/var目录下属主为root,且属组为mail的所有文件 2、查找/var目录下不属于root、lp、gdm的、所有文件 3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件 4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件 5、查找/etc目录下大于1M且类型为普通文件的所有文件 6、查找/…

    Linux干货 2016-08-15
  • redis-cli的一些有趣也很有用的功能

    redis-cli我们最常用的三个参数就是-h、-p、-a选项,分配用来指定连接的redis-server的host、port和登录密码。通过redis-cli –help发现,redis-cli还提供了其他很多的参数和功能。 1)-x-x选项从标准输入(stdin)读取最后一个参数。 比如从管道中读取输入: echo -en &quot…

    Linux干货 2016-04-13
  • 文件编辑之神器Sed

    pattern space   //  文本中每行内容都会进入到pattern space中, 如果匹配到了,就会进入到右分支, 如果没有匹配到,则进入左分支。 hold space  //  就是已经被模式匹配到, 并且编辑后保存的内容就是hold space 中. 默认情况下,当没有被匹配之后,没有匹配到…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 08:48

    摩根定律是我们理解查找关系中的与或非是至关重要的,摩根定律只是find命令的一部分,对我们理解-/perm选项来说是很重要的,只有理清了find摩根定律,我们才能深刻理解权限查找中的与或非。