Linux中的 德·摩根定律

Linux中的 德·摩根定律

§·德·摩根定律介绍

※概念

在命题逻辑和逻辑代数中,德·摩根定律(或称德·摩根定理)是关于命题逻辑规律的一对法则。

奥古斯塔斯·德·摩根首先发现了在命题逻辑中存在着下面这些关系:

非(P 且 Q) = (非 P) 或 (非 Q)

非(P 或 Q) = (非 P) 且 (非 Q)

德·摩根定律在数理逻辑的定理推演中,在计算机的逻辑设计中以及数学的集合运算中都起着重要的作用。

※模型图解

摩根定律.jpg 

 

如上图:D表示蓝色区域,A代表白色区域,B代表黄色区域,E代表(AB相交的区域)

我们大概来了解下摩根定律是怎样的思路:

◎测试一:非(P 且 Q) = (非 P) 或 (非 Q)

·(P Q):

P Q的区域为:E的区域 ;  E即为,ABD的区域。

·(P) (Q) :

P : D B 的区域

P : A D 的区域

P或非P ABD的区域。

·结果:非(P Q) = (P) (Q)

 

◎测试二:非(P 或 Q) = (非 P) 且 (非 Q)

·(P Q) :

PQ:即为 ABE的区域;  非ABE的区域:即为 D的区域。

·(P) (Q)

P:即为BD的区域; 非Q:即为AD的区域BD的区域与AD的区域合集:D的区域。

·结果:非(P Q) = (P) (Q)

 

§·Linux中德·摩根定律思想练习题

1、查找/var目录下属主为root,且属组为mail的所有文件?

解:find /var -user root -a -group mail -ls

[root@Centos7 zipdir]# find /var -user root -a -group mail -ls
201327962    0 drwxrwxr-x   2 root     mail           69 Aug 12 11:19 /var/spool/mail
206430755 1180 -rw-------   1 root     mail      1208282 Aug 10 19:24 /var/spool/mail/root

 

2、查找/var目录下属主不属于root、lp、gdm的所有文件?

解:

[root@Centos7 zipdir]# find /var -not -user root  -a -not -user lp -a -not -user gdm -ls
#不是root,不是lp,不是gdm的属主文件及为:非(root  或  lp 或  gdm的文件) 
表达式可改为: find  /var -not  \(-user root -o -user lp -o -user gdm\)
203409068    0 drwxr-xr-x   2 unbound  unbound        21 Jul 21 11:27 /var/lib/unbound
203409069    4 -rw-r--r--   1 unbound  unbound       409 Nov 20  2015 /var/lib/unbound/root.key
68465684    0 drwx------   2 tss      tss             6 Nov 21  2015 /var/lib/tpm
949938    0 drwxr-xr-x   3 colord   colord         50 Jul 21 11:35 /var/lib/colord
68485813    0 drwxr-xr-x   2 colord   colord          6 Nov 20  2015 /var/lib/colord/icc
2229271    4 -rw-r--r--   1 colord   colord       4096 Jul 21 11:35 /var/lib/colord/mapping.db
899622    8 -rw-r--r--   1 colord   colord       7168 Jul 21 11:35 /var/lib/colord/storage.db
961784    0 drwxr-xr-x   2 geoclue  geoclue         6 Nov 20  2015 /var/lib/geoclue
965063    0 drwx------   2 rpc      rpc             6 Nov 20  2015 /var/lib/rpcbind
68510463    0 drwxr-xr-x   2 chrony   chrony          6 Nov 24  2015 /var/lib/chrony

#与上面的结果一样

[root@Centos7 zipdir]# find  /var -not \( -user root -o -user lp -o -user gdm \) -ls
203409068    0 drwxr-xr-x   2 unbound  unbound        21 Jul 21 11:27 /var/lib/unbound
203409069    4 -rw-r--r--   1 unbound  unbound       409 Nov 20  2015 /var/lib/unbound/root.key
68465684    0 drwx------   2 tss      tss             6 Nov 21  2015 /var/lib/tpm
949938    0 drwxr-xr-x   3 colord   colord         50 Jul 21 11:35 /var/lib/colord
68485813    0 drwxr-xr-x   2 colord   colord          6 Nov 20  2015 /var/lib/colord/icc
2229271    4 -rw-r--r--   1 colord   colord       4096 Jul 21 11:35 /var/lib/colord/mapping.db
899622    8 -rw-r--r--   1 colord   colord       7168 Jul 21 11:35 /var/lib/colord/storage.db
961784    0 drwxr-xr-x   2 geoclue  geoclue         6 Nov 20  2015 /var/lib/geoclue
965063    0 drwx------   2 rpc      rpc             6 Nov 20  2015 /var/lib/rpcbind
68510463    0 drwxr-xr-x   2 chrony   chrony          6 Nov 24  2015 /var/lib/chrony

 

3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件?

解:属主不为 root,也不是postfix即为: –not -user root  -a  -not  -user postfix

等同:-not  \( -user root  -o -user postfix \)

[root@Centos7 zipdir]# find /var -mtime -7 -not \( -user root -o -user postfix \) -ls
136800283    0 drwxr-xr-x   2 gdm      gdm            17 Aug 10 17:17 /var/lib/gdm/.config/dconf
2229275    0 drwx------   2 gdm      gdm            52 Aug 10 17:17 /var/lib/gdm/.config/ibus/bus
206776371    0 -rw-rw----   1 user1    mail            0 Aug 10 16:58 /var/spool/mail/user1
206824171    0 -rw-rw----   1 user2    mail            0 Aug 12 11:19 /var/spool/mail/user2

…………………………………..

 

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件?

解: 没有属主: -nouser  ,没有属组:-o  -nogroup , 并且一周内访问过:-a  –atime -7

[root@Centos7 /]# find /  -nouser -o  -nogroup  -a -atime -7
/var/spool/mail/user2
/home/user2
/home/user2/.mozilla
/home/user2/.mozilla/extensions
/home/user2/.mozilla/plugins
/home/user2/.bash_logout
/home/user2/.bash_profile
/home/user2/.bashrc

 

5、查找/etc目录下大于1M且类型为普通文件的所有文件?

解:大于1M : –size +1M  并且为普通文件: –a  -type f

[root@Centos7 user1]# find /etc  -size +1M -type f -exec ls -lh {} \;
-rw-r--r--. 1 root root 3.7M Nov 21  2015 /etc/selinux/targeted/policy/policy.29
-r--r--r--. 1 root root 6.7M Jul 21 11:35 /etc/udev/hwdb.bin
-rw-r--r--. 1 root root 1.4M Mar  6  2015 /etc/brltty/zh-tw.ctb

 

6、查找/etc目录下所有用户都没有写权限的文件?

解:所有用户都没有写权限的反义就是:有一类用户有写权限  -prem  /222

[root@Centos7 user1]# find /etc -not -perm  /222 -ls
67413670  196 -r--r--r--   1 root     root       198453 Jul 21 11:24 
201996308  208 -r--r--r--   1 root     root       211626 Jul 21 11:24 
137245057    4 ----------   1 root     root          815 Aug 12 20:32 /etc/gshadow
135047292    4 ----------   1 root     root          825 Aug 12 11:19 /etc/gshadow-
137245052    4 ----------   1 root     root         1389 Aug 12 20:32 /etc/shadow
135052857    4 ----------   1 root     root         1417 Aug 12 11:19 /etc/shadow-
206307131 6852 -r--r--r--   1 root     root      7014922 Jul 21 11:35 /etc/udev/hwdb.bin
135090020    4 -r--r--r--   1 root     root           33 Jul 21 11:27 /etc/machine-id
68801984    4 -r--r--r--   1 root     root          146 Nov 20  2015 /etc/pam.d/cups
136632557    8 -r--r-----   1 root     root         4188 Jul  7  2015 /etc/sudoers

 

7、查找/etc目录下至少有一类用户没有执行权限的文件?

解:至少一类用户没有执行权限反义即为:所有用户都有执行权限: –prem -111,取反即为我们需要的结果。

[root@Centos7 user1]# find /etc -not -perm -111 -ls
136456397    0 -rw-r--r--   1 root     root            0 Jun 10  2014 /etc/wvdial.conf
136456374    4 -rw-r--r--   1 root     root          508 Jan 27  2014 /etc/updatedb.conf
206058477   24 -rw-r--r--   1 root     root        20876 Jun 10  2014 /etc/postfix/access
206058478   12 -rw-r--r--   1 root     root        11681 Jun 10  2014 /etc/postfix/canonical
206062758    4 -rw-------   1 root     root           86 Nov 20  2015 /etc/ntp/keys
206062759    4 -rw-r--r--   1 root     root           74 Nov 20  2015 /etc/ntp/step-tickers
136606754    8 -rw-r--r--   1 root     root         5171 Jun 10  2014 /etc/man_db.conf
136632555    4 -rw-r-----   1 root     root         3181 Jul 25  2013 /etc/sudo-ldap.conf
136632556    4 -rw-r-----   1 root     root         1786 Sep 25  2012 /etc/sudo.conf
136632557    8 -r--r-----   1 root     root         4188 Jul  7  2015 /etc/sudoers
136632558    0 drwxr-x---   2 root     root            6 Nov 21  2015 /etc/sudoers.d
136632590    8 -rw-r--r--   1 root     root         4760 Jun 10  2014 /etc/enscript.cfg
136584837    4 -rw-r--r--   1 root     root          375 Nov 20  2015 /etc/trusted-key.key
136584974    4 -rw-r--r--   1 root     root         2872 Jun 10  2014 /etc/pinforc
136629111    8 -rw-r--r--   1 root     root         4479 Oct 31  2014 /etc/wgetrc
136602363   12 -rw-r--r--   1 root     root         8892 Jun 10  2014 /etc/nanorc
136745232    4 -rw-r--r--   1 root     root         1362 Jun 10  2014 /etc/pbm2ppa.conf
136745233    8 -rw-r--r--   1 root     root         6300 Jun 10  2014 /etc/pnm2ppa.conf
136832965    4 -rw-r--r--   1 root     root           37 Jul 21 11:34 /etc/vconsole.conf
136832967    4 -rw-r--r--   1 root     root           19 Jul 21 11:34 /etc/locale.conf
136832968    4 -rw-r--r--   1 root     root           14 Jul 21 11:34 /etc/hostname
136606740    4 -rw-r--r--   1 root     root          163 Jul 21 11:23 /etc/.updated
136632726   12 -rw-r--r--   1 root     root        12288 Jul 21 11:35 /etc/aliases.db
136800164    8 -rw-r--r--   1 root     root         6722 Aug 13  2015 /etc/screenrc
137072884    0 -rw-r--r--   1 root     root            0 Aug  9 21:17 /etc/111aa
.................................................................

 

8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件?

解:所有用户有执行权限: –prem -111  ,其它用户有写权限: -prem –001

[root@Centos7 init.d]# find /etc/init.d/  -perm -111   -perm  -002 -ls
2642165    0 -rwxr-xrwx   1 root     root            0 Aug 12 17:18 /etc/init.d/f1
[root@Centos7 init.d]#

 

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

(0)
linux_rootlinux_root
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • 文件系统挂载

    文件系统挂载 文件系统管理: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为称之为挂载;  解除此关联关系的过程称之为卸载;  把设备关联挂载点:Mount Point mount  卸载时:可使用设备,也可以使用挂载点 umount  注意:挂载点下原有文件在挂载完成后…

    Linux干货 2015-12-16
  • N25第四周总结

    linux bassic Week 4 Blogging 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel/   /home/tuser1/ ~]# chmod&n…

    Linux干货 2016-12-26
  • N25-第一周博客

      第一周博客作业内容 1.描述计算机的组成及其功能 2.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 3.描述Linux哲学思想,并按照自己的理解对其进行解释性描述。 4.说明Linux系统上命令的使用格式:详细介绍,ifconfg,echo,tty,startx,export pwd,history,shutdown,powe…

    Linux干货 2016-12-03
  • 理解Inode

    inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。 下面就是我的inode学习笔记,尽量保持简单。 一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最…

    Linux干货 2015-03-20
  • 第一篇博客 简单说下最近的学习心得吧

        今天是个特殊的日子, 来到马哥教育已经一周时间了,刚来的时候满环信心,感觉人生充满了希望,但是接下来的学习让我感受到了什么是绝望,刚开始的两天完全是一种朦胧的状态,不知道干什么,敲得命令也不理解,完全是生搬硬套,没有自己的认知,当时就有一种冲动想要一走了之,后来想想算了 ,然后就坚持到了现在,此时感觉当时的决定是对的,经过一周的学…

    2017-07-15
  • sed编辑器使用

     简述       sed编辑器被称作流编辑器,和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim), 你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先 提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令…

    2017-06-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 09:41

    find命令基本是笔试题中必考的内容,也是我们查找文件的最重要的工具,而这其中最难的估计是-perm选项的理解了,只有深刻理解的摩根定律才能让我们熟练的运用find工具。