天天看點

萬字長文,整理到吐血!Linux最全指令總結(一)

關注我,每天分享軟體測試技術幹貨、面試經驗,想要領取測試資料、進入軟體測試學習交流群的可以直接加群644956177~~

這篇文章主要向大家介紹linux指令本身總結,主要内容包括基礎應用、實用技巧、原理機制等方面,希望對大家有所幫助。文章有點長,請耐心閱讀完。

對于每個linux學習者來講,了解linux檔案系統的目錄結構,是學好linux的相當重要的一步.,深刻了解linux檔案目錄結構的标準和每一個目錄的詳細功能,對于咱們用好linux系統隻管重要,下面咱們就開始了解一下linux目錄結構的相關知識。php

當 在使用linux的時候,若是您經過ls –l / 就會發現,在/下包涵不少的目錄,好比etc、usr、var、bin … … 等目錄,而 在這些目錄中,咱們進去看看,發現也有不少的目錄或檔案。檔案系統在linux下看上去就象樹形結構,是以咱們能夠把檔案系統的結構形象的稱為 樹形結 構。html

文 件系統的是用來組織和排列檔案存取的,是以她是可見的,在linux中,咱們能夠經過ls等工具來檢視其結構,在linux系統中,咱們見到的都是樹形結 構;好比操做系統安裝在一個檔案系統中,他表現為由/ 起始的樹形結構。linux檔案系統的最頂端是/,咱們稱/為linux的root,也就 是 linux操做系統的檔案系統。linux的檔案系統的入口就是/,全部的目錄、檔案、裝置都在/之下,/就是linux檔案系統的組織者,也是最上 級的上司者。java

因為linux是開放源代碼,各大公司和團體根據linux的核心代碼作各自的操做,程式設計。這樣就形成在根下的目錄的不一樣。這樣就形成我的不能使用他人的linux系統的pc。由于你根本不知道一些基本的配置,檔案在哪裡。。。這就形成了混亂。這就是fhs(filesystem hierarchy standard )機構誕生的緣由。該機構是linux愛好者自發的組成的一個團體,主要是是對linux作一些基本的要求,不至因而操做者換一台主機就成了linux的‘文盲’。node

根 據fhs(http://www.pathname.com/fhs/)的官方檔案指出, 他們的主要目的是但願讓使用者能夠了解到已安裝軟體一般放置于 那個目錄下, 是以他們但願獨立的軟體開發商、操做系統制做者、以及想要維護系統的使用者,都可以遵循fhs的标準。 也就是說,fhs的重點在于規範每一個 特定的目錄下應該要放置什麼樣子的資料而已。 這樣作好處很是多,由于linux操做系統就可以在既有的面貌下(目錄架構不變)發展出開發者想要的獨特風 格。python

事實上,fhs是根據過去的經驗一直再持續的改版的,fhs依據檔案系統使用的頻繁與否與是否容許使用者随意更動, 而将目錄定義成為四種互動做用的形态,用表格來講有點像底下這樣:

萬字長文,整理到吐血!Linux最全指令總結(一)

四中類型:

可分享的:

能夠分享給其餘系統挂載使用的目錄,是以包括執行檔案與使用者的郵件等資料, 是可以分享給網絡上其餘主機挂載用的目錄;

不可分享的:

本身機器上面運做的裝置檔案或者是與程式有關的socket檔案等, 因為僅與自身機器有關,是以固然就不适合分享給其餘主機了。

不變的:

有些資料是不會常常變更的,跟随着而不變更。 例如函式庫、檔案說明檔案、系統管理者所管理的主機服務配置檔案等等;

可變更的:

常常改變的資料,例如登陸檔案、通常使用者可自行收受的新聞討論區等。

事實上,fhs針對目錄樹架構僅定義出三層目錄底下應該放置什麼資料而已,分别是底下這三個目錄的定義:

/ (root, 根目錄):與開機系統有關;

/usr (unix software resource):與軟體安裝/執行有關;

/var (variable):與系統運做過程有關。

一. 根目錄 (/) 的意義與内容:

根 目錄是整個系統最重要的一個目錄,由于不但全部的目錄都是由根目錄衍生出來的, 同時根目錄也與開機/還原/系統修複等動做有關。 因為系統開機時須要特 定的開機軟體、核心檔案、開機所需程式、 函式庫等等檔案資料,若系統出現錯誤時,根目錄也必需要包含有可以修複檔案系統的程式才行。 由于根目錄是這麼 的重要,是以在fhs的要求方面,他但願根目錄不要放在很是大的分區, 由于越大的分區内你會放入越多的資料,如此一來根目錄所在分區就可能會有較多發生 錯誤的機會。

是以fhs标準建議:根目錄(/)所在分區應該越小越好, 且應用程式所安裝的軟體最好不要與根目錄放在同一個分區内,保持根目錄越小越好。 如此不但效能較佳,根目錄所在的檔案系統也較不容易發生問題。說白了,就是根目錄和windows的c盤一個樣。

根據以上緣由,fhs認為根目錄(/)下應該包含以下子目錄:

萬字長文,整理到吐血!Linux最全指令總結(一)
萬字長文,整理到吐血!Linux最全指令總結(一)

事實上fhs針對根目錄所定義的标準就僅限于上表,不過仍舊有些目錄也須要咱們了解一下,具體以下:

萬字長文,整理到吐血!Linux最全指令總結(一)

除了這些目錄的内容以外,另外要注意的是,由于根目錄與開機有關,開機過程當中僅有根目錄會被挂載, 其餘分區則是在開機完成以後才會持續的進行挂載的行為。就是由于如此,是以根目錄下與開機過程有關的目錄, 就不可以與根目錄放到不一樣的分區去。那哪些目錄不可與根目錄分開呢?有底下這些:

/etc:配置檔案

/bin:重要執行檔

/dev:所須要的裝置檔案

/lib:執行檔所需的函式庫與核心所需的子產品

/sbin:重要的系統執行檔案

這五個目錄千萬不可與根目錄分開在不一樣的分區。請背下來啊。

二. /usr 的意義與内容:

依據fhs的基本定義,/usr裡面放置的資料屬于可分享的與不可變更的(shareable, static), 若是你知道如何透過網絡進行分區的挂載(例如在伺服器篇會談到的nfs伺服器),那麼/usr确實能夠分享給區域網路絡内的其餘主機來使用喔。

/usr 不是user的縮寫,其實usr是unix software resource的縮寫, 也就是unix操做系統軟體資源所放置的目錄,而不是使用者的資料啦。這點要注意。 fhs建議全部軟體開發者,應該将他們的資料合理的分别放置到這個目錄下的次目錄,而不要自行建立該軟體本身獨立的目錄。

因 為是全部系統預設的軟體(distribution釋出者提供的軟體)都會放置到/usr底下,是以這個目錄有點相似windows 系統的 c:\windows\ + c:\program files\這兩個目錄的綜合體,系統剛安裝完畢時,這個目錄會占用最多的硬碟容量。 通常來 說,/usr的次目錄建議有底下這些:

萬字長文,整理到吐血!Linux最全指令總結(一)

三. /var 的意義與内容:

如 果/usr是安裝時會占用較大硬碟容量的目錄,那麼/var就是在系統運做後才會漸漸占用硬碟容量的目錄。 由于/var目錄主要針對常态性變更的檔案, 包括緩存(cache)、登陸檔(log file)以及某些軟體運做所産生的檔案, 包括程式檔案(lock file, run file),或者例 如mysql資料庫的檔案等等。常見的次目錄有:

萬字長文,整理到吐血!Linux最全指令總結(一)

因為fhs僅是定義出最上層(/)及次層(/usr, /var)的目錄内容應該要放置的檔案或目錄資料, 是以,在其餘次目錄層級内,就能夠随開發者自行來配置了。

四. 目錄樹(directory tree) :

在linux底下,全部的檔案與目錄都是由根目錄開始的。那是全部目錄與檔案的源頭, 而後再一個一個的分支下來,是以,咱們也稱這種目錄配置方式為:目錄樹(directory tree), 這個目錄樹的主要特性有:

目錄樹的啟始點為根目錄 (/, root);

每個目錄不止能使用本地端的 partition 的檔案系統,也能夠使用網絡上的 filesystem 。舉例來講, 能夠利用 network file system (nfs) 伺服器挂載某特定目錄等。

每個檔案在此目錄樹中的檔案名(包含完整路徑)都是獨一無二的。

若是咱們将整個目錄樹以圖的方法來顯示,而且将較為重要的檔案資料列出來的話,那麼目錄樹架構就以下圖所示:

五. 絕對路徑與相對路徑

除了須要特别注意的fhs目錄配置外,在檔案名部分咱們也要特别注意。由于根據檔名寫法的不一樣,也可将所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。 這兩種檔案名/路徑的寫法依據是這樣的:

絕對路徑:

由根目錄(/)開始寫起的檔案名或目錄名稱, 例如 /home/dmtsai/.bashrc;

相對路徑:

相對于目前路徑的檔案名寫法。 例如 ./home/dmtsai 或 http://www.cnblogs.com/home/dmtsai/ 等等。反正開頭不是 / 就屬于相對路徑的寫法cd

而你必需要了解,相對路徑是以你目前所在路徑的相對位置來表示的。舉例來講,你目前在 /home 這個目錄下, 若是想要進入 /var/log 這個目錄時,能夠怎麼寫呢?

cd /var/log (absolute)

cd …/var/log (relative)

由于你在 /home 底下,是以要回到上一層 (…/) 以後,才能繼續往 /var 來移動的,特别注意這兩個特殊的目錄:

. :表明目前的目錄,也能夠使用 ./ 來表示;

… :表明上一層目錄,也能夠 …/ 來表明。

這個 . 與 … 目錄概念是很重要的,你經常會看到 cd … 或 ./command 之類的指令下達方式, 就是表明上一層與目前所在目錄的工做狀态。

未完待續。。。

萬字長文,整理到吐血!Linux最全指令總結(一)

這些資料,對于【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

關注我的微信公衆号【軟體測試小dao】免費擷取~

我的學習交流群:644956177 群裡有技術大牛一起交流分享~

如果我的部落格對你有幫助、如果你喜歡我的部落格内容,請 “點贊” “評論” “收藏” 一鍵三連哦!