以洪荒之力打開linux德·摩根定律

德·摩根定律讓學習liunx的小伙伴繞得頭疼,現在我就用洪荒之力為大家理順一下這個定律。


wKiom1etwHLSIrxXAAAskZ0cql4503.jpg

由圖片可以看出,


A=4+3

B=3+2


非A=2+1

非B=4+1



A且B就是代表既是A又是B的地方,A和B都有色塊3,所以色塊3代表了A且B

同時,我們再看A=4+3 ,B=3+2,我們可以推斷出,且運算的結果就是兩個算數式中重復的數字。


A且B=3



A或B就是代表可以是A的部分,也可以是B的部分,所以色塊2,3,4的和代表了A或B的范圍。再看A=4+3,B=3+2,我們可以推斷出,或運算的結果就是兩個算術式中所有數字相加,重復的數字只加一次。


A或B=2+3+4


非一個色塊,就是除了這個色塊的其他所有色塊之和。非n個色塊,就是除了這n個色塊的其他色塊之和。


例:

   非3=1+2+4



由此,我們可以進行以下的運算


(非A)或(非B)=(2+1)或(4+1)=1+2+4

非(A且B)=非(4+3且3+2)=非(3)=1+2+4


(非A)且(非B)=(2+1)且(4+1)=1

非(A或B)=非(4+3或3+2)=非(4+3+2)=1


我們可以得出以下結論:


(非A)或(非B)=非(A且B)


(非A)且(非B)=非(A或B)




下面讓我們來做下練習題:


  1. chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判斷當前用戶對/tmp/fiile1文件是否不可讀且不可寫

    方法一:


[root@localhost bin]# cat per.sh 

#!/bin/bash

[ ! -r /tmp/file1 -a ! -w /tmp/file1 ] && echo "you can't read and write /tmp/file1" || echo "you can read or write /tmp/file1 " 


    方法二:

    

[root@localhost bin]# cat per2.sh

#!/bin/bash

! [ -r /tmp/file1 -o -w /tmp/file1 ] && echo "you can't read and write /tmp/file1" || echo "you can read or write /tmp/file1 "


紅色標記處為兩條語句中不同的地方,但兩者的功能是相同的。



有的小伙伴不理解 “所有用戶都沒有寫權限”的反面=至少有一類用戶有寫權限

我們可以拿個空瓶子來說明:


“空瓶子”反面=“瓶子里有水”,注意跟水量多少無關,有一滴水的瓶子也不算空瓶子,我們也可以說,


“空瓶子”反面=瓶子里至少有一滴水


所以,“所有用戶都沒有寫權限”的反面=至少有一類用戶有寫權限。

練習:

1、查找/var目錄下屬主為root,且屬組為mail的所有文件

   find /var -user root -a -group -mail

2、查找/var目錄下不屬于root、lp、gdm的所有文件

   find /var -not \( -user root -o -user lp -o -user gdm \)

3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件

   find /var -mtime -7 -a -not -user root -a -not -user plstfix

4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件

   find / -nouser -o -nogroup -atime -7

5、查找/etc目錄下大于1M且類型為普通文件的所有文件

   find /etc/ -size +1M -type f

6、查找/etc目錄下所有用戶都沒有寫權限的文件

   find /etc -not -perm /222

7、查找/etc目錄下至少有一類用戶沒有執行權限的文件

   find /etc -not -perm -111 

8、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件

   find /etc/init.d/ -perm -113

原創文章,作者:zebra930,如若轉載,請注明出處:http://www.www58058.com/34405

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

相關推薦

  • Linux系統解壓縮

    Linux系統解壓縮 gzip/gunzip 語法gzip [OPTIONS] + 壓縮之后的路徑 + 要壓縮的文件 -#:壓縮比 (不常用) -d:解壓縮,相當于gunzip -c:將壓縮后的數據輸出至標準輸出 -r:遞歸至目錄中對每個文件進行壓縮 zcat :查看壓縮文件的內容 ——————————————————————————————————————…

    Linux干貨 2017-08-15
  • find命令詳解

    find命令詳解 基本介紹 find命令用來從目錄系統中查找文本不同于locate,find不從數據庫中查找文件,所以find速度略遜于locate,但find是實時且準確的,而且不需要占用系統資源進行遍歷文件。 其標準格式如下 find [-H] [-L] [-P] [-D debugopts] [-O level] [path…] [expressi…

    Linux干貨 2017-04-09
  • 馬哥教育網絡班20期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 vim三種模式: 用法:vim [option…] FILE 編輯模式:     字符跳轉:         h:向左移動一個字符     &…

    系統運維 2016-07-22
  • 一鍵獲取MySQL賬戶及相關的權限

    有時候,運維同學可能在做grant授權時候,給的用戶權限太高了,有風險。因此,我們接手服務器后有必要檢查一遍用戶權限。 #!/bin/bash# 一鍵獲取MySQL賬戶及相關的權限 user=’root’ password=’123456′ MYSQL_CMD=’/usr/local/mysql/b…

    Linux干貨 2017-05-07
  • Linux內核編譯

    1.安裝前準備:     安裝開發環境     獲取內核源碼包(www.kernel.org)     安裝軟件包        *curses*    &nb…

    Linux干貨 2016-09-17
  • 進程及任務管理

    進程概念 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等 Process: 運行中的程序的一個副本,是被載入內存的一個指令集合     進程ID(Process ID,PID)號碼被用來標記各個進程     UID、GID、和SELi…

    Linux干貨 2016-09-09
欧美性久久久久