在linux中,一切都看成檔案,不管是目錄還是裝置。所以想要熟練使用Linux,那麼對檔案的本質和組織圖
要有一定的認識。Linux中,檔案都組織成位元組流(byte stream)的形式,這樣就有利於資料的流動和傳輸。
對於位元組流,可以借C++中的概念來理解,C++的標準輸入輸出iostream和檔案流fstream的本質就是位元組流。
Linux的檔案,乍看之下只能用亂來形容。其中最讓人揪心的是,linux下的程式安裝並不像windows下
那樣給一個檔案夾就行,甚至指定路徑都是徒勞的。
而卸載時,往往是很難掃乾淨的。
特別是在源碼包安裝時,連卸載的命令都沒有(至少我沒百度到)。
其實,只要狠下心來,花點時間瞭解這些檔案的組織圖,就會發現混亂中自有秩序。
Linux中很多目錄的特點就是”靜止”,在普通使用者的使用過程中,並不會牽涉到太多。
這種特質的目錄主要有下面這些,它們的功能都是預設專用的,並不經常發生變化。
還有幾個目錄是玩Linux涉及到的關鍵目錄,所以不得不來個深刻認識。
玩命令就很有必要把
/sbin、/usr/sbin、/bin和/usr/bin來個”三光”政策,不掃蕩一遍
是很難用好bash的,Linux讓你的工作變得簡便的哲學就無法實現了。
安裝應用程式無論如何是無法避免的,安裝路徑很難搞?別急,嘗試下面的操作吧。
#display
the location of the executable file(顯示可執行檔的位置)
$ which software_name
$
whereis software_name
#顯示和該軟體有關的所有檔案的位置
$ locate software_name
就可以看到,bash所給的位置基本在幾個目錄下。
安裝好軟體後,其相關檔案會散落在很多系統預設的目錄下,程式的可執行檔一般就是在
/usr/bin目錄下,只要刪除這個檔案,就算得上是卸載啦。至於其它的檔案,就用locate定位再手動刪除啦,
其速度當然就取決於玩命令的程度啦。(我只知道這種笨方法,不知道是否有可徹底卸載的簡單方式?)
而linux下進行開發時,所涉及到的幾乎只有
/usr
。/usr目錄是相當大的,系統命令檔案、各種庫檔案和更新的
源檔案包幾乎都在這個目錄下,而且也是頻繁變化的。其實,就C/C++編程而言,涉及到的標頭檔和庫檔案就只在這個目錄下。
所以,Linux的檔案結構並不是看到的那樣繁雜。對於普通使用者而言,只要熟悉/usr這個目錄就足夠啦,這已經不止於在Linux下生存啦。