由摩根定律引发的思考

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 13:59
下一篇 2016-08-16 13:59

相关推荐

  • Linux常用命令说明

    个人认为把操作练习打在博客上比较愚蠢,关于操作部分我将以练习题的形式展示,每周固定练习这些基础的题目 Linux常见命令练习 1.文本内容显示 1.1cat: (1)显示/root下adjtime文件内容 (2)把文件mm.txt的文件内容加上行号输入到textfile2文件中 (3)把文件mm.txt和textfile2的文件内容加上行号(空白行不加)之后…

    Linux干货 2016-10-29
  • ansible之Playbook中tags使用

    示例:httpd.yml– hosts: websrvsremote_user: roottasks:– name: Install httpdyum: name=httpd state=present – name: Install configure filecopy: src=files/httpd.conf des…

    Linux干货 2018-01-14
  • MySQL Replication (MySQL的主从复制)

    MySQL Replication(MySQL的主从复制) 主从数据库的工作模型: 工作要点:1、主服务器要开启二进制日志 2、从服务器要有一个用户账户,这个账户要有权限到主服务器上请求二进制事件,请求完后保存到本地。 3、从服务器上要有一个线程,从中继日志中不断的读事件,在本地replay。 Master/Slave    &…

    Linux干货 2016-11-21
  • 10个必需的iOS开发工具和资源

       界面总不是一件很容易事,尤其是iPhone/iPad的界面,做过iOS开发的程序员,一定会感到开发iPhone/iPad的界面是一件多么不容易的事。下面的文章来自10 Essential iOS Developer Tools & Resources,这个文章介绍了十个iOS开发的基础性工具和资源,其一定会很有效地帮你做iO…

    Linux干货 2015-04-01
  • 始于此

         “路漫漫其修远兮,吾将上下而求索”,一段路程的结束,意味着一段路程的开始,同岁月般,永远也不能回到出发的那一刻,你所能做的,就是一路走下去。回顾珍惜,却不能逗留。         我的学习宣言是“功崇惟志,业广惟勤”,时刻告诉自己,“功”出…

    Linux干货 2016-11-28
  • Linux 第四天: (07月28日) 练习和作业

    Linux 第四天: (07月28日) 练习和作业         定义别名命令baketc, 每天将/etc/目录下所有文件, 备份到/testdir独立的子目录下, 并要求子目录格式为backupYYYY-mm-dd, 备份过程可见 alias baketc='cp -a /etc/ /testdir/b…

    Linux干货 2016-08-08

评论列表(1条)

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

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