由摩根定律引发的思考

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

相关推荐

  • DNS and Bind

    DNS and Bind ===================================================================================== 概述:    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使…

    Linux干货 2016-10-10
  • Linux的文件权限(一)

    Linux的文件权限 在Linux的世界里,一切皆文件,用文件代表了系统的所有数据。既然文件那么重要,自然会给文件赋予一定的权限,要不然每个人都可以乱来,那系统会十分危险。所以文件的所有者会给文件设定权限,每个用户在自己权限的范围下做各自的操作。 我们可以先用 ll-d 查看一下文件的权限 第一位代表着问价类型,d 代表着是目录文件,后面九位代表着权限。其中…

    2017-05-30
  • mysqld_multi 多实例部署

    序言:多实例?Why?   随着硬件层面的发展,linux系统多核已经是普通趋势,而mysql是单进程多线程,所以先天上对多进程的利用不是很高,虽然5.6版本已经在这方面改进很多,但是也没有达到100%,所以为了充分的利用系统资源,mysql有自己的补充,那就是可以部署多实例,一个实例一个端口。     1,准备好mysql环境…

    2017-11-16
  • vsftp通过pam_mysql做虚拟用户认证

    vsftpd可以通过三种账户登录系统: 系统账户:系统本地账户登录系统,默认进入的目录是用户家目录,可以在所有有权限的路径切换; 匿名账户:匿名用户登录,然后映射为一个本地用户; 虚拟账户:既不是系统本地用户也不是匿名用户,而是通过pam做第三方认证的方法,支持文件和数据库,ldap的认证,此处通过mysql进行实验; 一、准备实验环境 实验在一台虚拟机上进…

    Linux干货 2017-06-07
  • vim的使用说明

    vim的使用说明 vim是一款功能丰富而强大的文本编辑器,vim是从 vi 发展出来的一个文本编辑器。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛的使用。 vim的使用非常方便,使用方法为:vim [options] [file ..] 1、vim可以对指定文件进行编辑,也可以直接启动vim编辑器进行编辑,对于打开指定文件编辑时可以加…

    Linux干货 2016-08-12
  • GREP EGREP的用法及正则表达式和扩展正则表达式简述

    egrep grep的使用方法 正则表达式及扩展表达式简述 使用事例   grep egrep都是文本搜索工具,可以把符合模式的行或字符显示出来,而这些模式grep一般使用正则表达式进行匹配,而egrep使用扩展正则表达式来进行匹配的。 grep及egrep的使用方法:           &nbs…

    Linux干货 2015-07-27

评论列表(1条)

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

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