由摩根定律引發的思考

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
下一篇 2016-08-16

相關推薦

  • DevOps如何重構IT戰略

    翻譯: 至尊寶 原文: http://www.citeworld.com/article/2897738/development/how-devops-can-redefine-your-it-strategy.html?page=2   DevOps究竟是曇花一現還是你一直在尋找的競爭優勢?我們咨詢了一些專家,對于這種趨勢他們的想法是什…

    Python干貨 2015-03-26
  • 8月2日作業

    1、在/testdir/data里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 答: ~]# groupadd g1 ~]# groupadd g2 ~]# groupadd g3 ~]# useradd -G g2 alic…

    Linux干貨 2016-08-04
  • 描述LVS的工作原理

    一、LVS結構   LVS由前端的負載均衡器(Load Balancer,LB)和后端的真實服務器(Real Server,RS)群組成。RS間可通過局域網或廣域網連接。LVS的這種結構對用戶是透明的,用戶只能看見一臺作為LB的虛擬服務器(Virtual Server),而看不到提供服務的RS群。當用戶的請求發往虛擬服務器,LB根據設定的包轉發策略和負載均衡…

    Linux干貨 2016-08-29
  • N21天天第十六周課程練習

    1、源碼編譯安裝LNMP架構環境; 一、安裝Nginx 1、解決依賴 [root@localhost ~]# yum groupinstall 開發工具 服務器平臺開發 -y 2、安裝 [root@localhost ~]# tar xf pcre-8.37.…

    Linux干貨 2016-12-14
  • vim的使用

    vim 編輯器  vim的模式:      編輯模式      輸入模式      擴展編輯模式:在編輯模式中輸入:  ====================================   編輯模式轉換成輸入模式 &nbs…

    Linux干貨 2016-08-11
  • 馬哥教育網絡班20期-第四周課程作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。       cp -r /etc/skel /home/tuser1 | chmod -R g…

    Linux干貨 2016-06-29

評論列表(1條)

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

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

欧美性久久久久