由摩根定律引發的思考

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.www58058.com/36002

(0)
luoliumengluoliumeng
上一篇 2016-08-16 13:59
下一篇 2016-08-16 17:37

相關推薦

  • shell基礎if與case

    1.read   使用read來把輸入值分配給一個或多個shell變量;   -p 指定要顯示的提示;例如 read -p "SHURU" num   -t TIMEOUT   read 從標準輸入中讀取值,給每個單詞分配一個變量,所有剩余單詞都被分配給最后一個變量 2.流程控制   過程…

    Linux干貨 2016-08-18
  • Linux下搭建路由器

    客戶端1:CentOS6.9 客戶端2:CentOS7.3 路由器:router1(CentOS7.3)、router2(CentOS7.3) r router3(CentOS7.3) 1 準備工作 為了避免干擾,最好建立獨立的網絡。 打開VMvare的虛擬網絡編輯器,點擊添加網絡按鈕,添加VMnet11并且將左下角使用“本地DHCP服務將IP地址分配給虛擬…

    Linux干貨 2017-08-20
  • Linux – 計算機基礎知識體系

    一、認識計算機的組成      計算機組成(computer composition)指的是系統結構的邏輯實現,包括機器機內的數據流和控制流的組成及邏輯設計等。 計算機一般是由硬件系統和軟件系統這兩部分組成,硬件系統包括:CPU、內存、硬盤、輸入和輸出設備(鍵盤鼠標、顯示器等),軟件系統包括:系統軟件自身、用…

    Linux干貨 2017-02-19
  • Linux下的網絡配置方法(一)

        Linux的網絡配置方法有多種,而且隨發行版及版本而略微不同。我目前的測試環境為CentOS6和CentOS7。     常用的網絡配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。 一、簡介   &nb…

    Linux干貨 2015-12-15
  • HAProxy

    HAProxy簡介 HAProxy是免費、極速且可靠的用于為TCP和基于HTTP應用程序提供高可用、負載均衡和代理服務的解決方案,尤其適用于高負載且需要持久連接或7層處理機制的web站點。HAProxy還可以將后端的服務器與網絡隔離,起到保護后端服務器的作用。HAProxy的負載均衡能力雖不如LVS,但也是相當不錯,而且由于其工作在7層,可以對http請求報…

    2017-05-17
  • 文件系統掛載

    掛載: 將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為 卸載: 為解除此關聯關系的過程 把設備關聯掛載點:mount Point mount 卸載時:可使用設備,也可以使用掛載點 umount mount   umount命令都是臨時生效,機器重啟后失效 掛載點下原有文件在掛載完成…

    Linux干貨 2017-04-30

評論列表(1條)

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

    摩根定律是我們理解查找關系中的與或非是至關重要的,摩根定律只是find命令的一部分,對我們理解-/perm選項來說是很重要的,只有理清了find摩根定律,我們才能深刻理解權限查找中的與或非。

欧美性久久久久