Linux目錄學習Q A

2021-07-25 14:56:07 字數 2906 閱讀 9211

問題1:winows有登錄檔,為什麼linux沒有登錄檔?

登錄檔是windows核心元件,對整個系統進行配置。linux是以整個檔案系統作為「登錄檔」,windows登錄檔的樹形結構,可以粗略的對應linux檔案系統的樹形結構。

linux的配置檔案就相當於登錄檔的鍵,或者說linux採用的是分布式的登錄檔。

那麼linux為什麼要這樣設計呢?因為linux是所謂的網路作業系統,所以單台電腦不是linux的界限,如果是多台電腦組成的系統,那麼分布式的管理就有著巨大的優勢。

例如:乙個包含配置檔案的磁碟的損害不會讓整個系統癱瘓,而可能只是讓部分功能失效。

問題2:windows有完善的圖形介面,而linux為什麼要學命令列?

首先,命令列絕對要比圖形介面先進的多。命令列是程式設計師的第一介面,而圖形介面是普通使用者的第一介面。

也許很多人會有不同意見,其實我們再向前想一步,就很清楚了。

命令列的下一步演化是什麼? 很簡單就是語音控制,就是把人類自然語言轉化為命令

圖形介面的的下一步演化是什麼? 是姿勢控制。從目前的windows系統來說一共只有3種姿勢, 單擊,雙擊,拖放。而更先進的ipad有撥動,畫圈等。

姿勢控制很簡單,便於使用者上手,語音控制很複雜,但是控制精度很高。

作為程式設計師我們要求電腦完成的工作要比普通使用者複雜的多,所以使用命令行會非常高效。

退一步講,圖形介面本質也是命令列,只不過將姿勢翻譯成命令執行而已。

程式設計師程式設計的**也都是「命令列」,一條一條的指令而已。

總之,只要能打破對linux命令列的恐懼感,接下來的事就會非常容易了。這個命令列絕對不是你簡單想像中的命令列,它是非常智慧型化的。

問題3:linux有那麼多目錄,那麼多命令,怎麼記得住呢?

首先,linux目錄是linux系統最靈魂的東西,所有的硬體都可以被抽象為檔案,從而實現網路化。(internet只不過是unix/linux的進一步的演化而已)

所以只要掌握了linux目錄的規律,在理解的基礎上記憶就可以容易的多。另外linux的命令列有智慧型化功能,可以讓你少打95%以上的字元來完成命令。

絕非你所想象的傻乎乎的敲一大堆命令,那些用linux大牛都是絕頂聰明的人,怎麼可能讓自己辛苦呢?

問題4:linux的資料夾結構看上去很複雜,怎麼理解呢?

我們這裡假設,我們就是設計者,如果我們設計乙個檔案系統,我們會如何去做呢?

我們需要乙個起點, 這個起點就叫根目錄,用「/」來表示,然後我們需要啟動linux,那麼我們就會把所有核心的啟動檔案(包括linux核心本身)都放到乙個「/boot」目錄下。

當系統啟動後,我們需要執行一些基本命令,這些命令都會放到「/bin」目錄下。然後這些命令可能會用到一些庫,這些庫就被放到「/lib」下面,而這些庫可能會會用到一些裝置驅動檔案,

那麼這些驅動檔案就會放到「/dev」目錄下。

/:根目錄

/boot: 系統啟動和核心

/bin:系統基本命令 (bin是binary的縮寫)

/lib: 系統庫(不能直接執行的**)(lib是libary的縮寫)

/dev: 裝置驅動 (dev是device的縮寫)

到目前為止只用5個目錄,很簡單吧。

問題5:什麼是」/usr」 ,」/etc」和「/var「?

當使用者啟動系統以後,要做一些更加複雜的工作,這時候就會涉及到乙個叫「/usr」,這個情況稍微有些複雜,是乙個難點。不過也很容易解釋清楚。

早期的unix系統都有很多塊硬碟,當時硬碟的容量都很小, 所以往往乙個硬碟只放乙個目錄,比如「/boot」可以放在乙個單獨的」boot」盤上,上面提到的5個目錄,是系統執行必不可少的。

而當系統啟動以後,我們需要其他一些用於具體工作的程式時,我們就會載入乙個「/usr」目錄,上面放重要的執行程式。

容易引起疑惑的是」usr」這個名字, 在歷史上,原來這個確實是user的縮寫,不過現在和user沒有任何關係了,你可以把它看成是」universal software resource」的縮寫。

這個「/usr」有點類似windows裡面的program files。

因此 /bin 和 /usr/bin 的區別,就是 /bin 裡面的程式更加核心。

這時候,很多人會有疑問, 我們記住哪些命令在 /bin 還是在 /usr/bin 呢?

放心,由於所有的bin目錄都會登記到系統變數path裡面, 因此無論你在任何當前目錄中,只要輸入命令檔案的名稱,系統都會幫你找到這個命令並執行。

要點:

1,/usr上面一般都是唯讀檔案,資料檔案和配置檔案不放在上面(放到**,後面會講)。

2,沒有「/usr」,linux系統也能正常執行。

2,/usr可以被多台電腦共享(這裡體現linux系統的網路性)。

由於/usr只放唯讀檔案,那麼配置檔案和資料檔案放**呢?這裡就出現了2個新的目錄「/etc」和「/var」。

這裡容易初學者迷惑的就是這個2個目錄的名字。

在歷史上「etc」是「etcetera」的縮寫,中文意為「其他」, 現在這個和「其他」沒有任何關係,就是專門存放配置檔案的地方,可以理解為「editable text configuration」的縮寫。

比如 /etc/mysql 就是放 mysql 的配置檔案 /ect/apache2 就是 apache2 的配置檔案。

在歷史上「var」是「variable」的縮寫,中文意為「變動」,現在主要用來存放log, lock等檔案。

例如 /var/mysql 就是用來存放mysql的log。

問題6:使用者自己產生的資料放到**?

當我們執行程式後,會產生很多自己的結果,這些結果放**呢? 這裡就出現了乙個「/home」目錄,不過你不能直接放到「/home」目錄下,因為linux是個多使用者作業系統,所以系統會有乙個以使用者的名字命名的目錄。

例如:使用者是jack,那麼目錄就是 /home/jack,這個目錄也可以用「~「來表示。

linux目錄學習

linux下各根目錄的全稱及含義 linux檔案系統的入口 bin 存放經常使用的命令,全稱binary。boot 存放啟動linux的核心檔案,包括一些鏈結檔案和映象檔案。etc 存放系統管理所需的配置檔案及子目錄,全稱etcetera,等等的意思。dev 存放linux系統的裝置檔案,在linu...

linux目錄學習小記

linux下所使用的檔案系統叫做 根檔案系統 簡稱rootfs root file system 它不同於windows下的檔案系統 1.在根檔案系統中,檔案 的概念並不是單純的指的硬碟上的資料檔案,它還包括硬體裝置資源等。像u盤 磁碟 記憶體以及網路都被抽象成 檔案 2.在根檔案系統中並不是所有的...

Linux根目錄學習

bin 存放普通使用者命令 boot 存放開機可能使用的檔案,包括linux核心檔案和開機選單與關機所需設定文件等等 dev 存放系統檔案,任何裝置和周邊裝置都以檔案的形態存入這個目錄中 etc 存放配置檔案與指令碼 home 普通使用者的工作目錄 lib 存放系統中的庫檔案,只放置開機時會用到的函...