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 09:26
下一篇 2016-08-15 09:26

相关推荐

  • 走入系统命令

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-25
  • 程序员的相关笑话(二)

    从前,有一个牧羊人,他有很多的羊。一天他赶着他的那群羊到了一条公路边上。突然,有一辆保时洁急驶过来,上面坐着一个年轻人人,穿着Armani的衣服,和Cerutti的皮鞋,Ray-Ban的太阳眼镜,TAG-Heuer的手表,以前Versace的领带。 他走到牧羊人面前问牧羊人:“如果我能说出你有多少只羊,你能给我一只吗?” 牧羊人看了看他那一大群数都数不过来的…

    Linux干货 2016-07-10
  • linux命令简单应用

    创建/tmp目录下的:a_c, a_d, b_c, b_d touch /tmp/{a,b}_{c,d} [root@bogon ~]# tree /tmp /tmp |– a_c |– a_d |– b_c |– b_d 创建/tmp/mylinux目录下的: mylinux/ ├── bin ├── boo…

    Linux干货 2016-11-06
  • 5、脚本初步,正则表达式

    http://note.youdao.com/yws/public/redirect/share?id=35435e3a02f23513e5c83601372fff9b&type=false

    Linux干货 2016-08-08
  • Linux磁盘与文件系统管理

    对于一块磁盘,如果我们想要使用的话,需要对磁盘进行分区并建立文件系统。下面,我们就了解一下Linux中的磁盘与文件系统管理 一、MBR 硬盘的0扇区为MBR扇区,其由以下几部分组成: l  主引导程序(偏移地址0000H–0088H),它负责从活动分区中装载,并运行系统引导程序。 l  出错信息数据区,偏移地址0089H&#8…

    Linux干货 2016-08-28
  • nginx

    Linux干货 2016-10-30

评论列表(1条)

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

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