Linux基礎——Linux系統文件樹

本文檔演示所使用的Linux信息

有圖形化界面的配置
虛擬環境:VMware Workstation 15.x
Linux版本信息:deepin15.11

無圖形化界面配置
虛擬環境:Azure-VM
Linux版本信息:centos 7.3

本文爲了能更加清晰的體現linux文件結構,所以同時將有圖形界面和五圖形界面的Linux系統穿插進行演示,但不會影響本文章的演示結果,此文章不適合深度研究linux和IOT開發人員,如果發現文章存在問題或者需要補充,懇請大佬積極發言,謝謝。
前言:不知道作爲一個linux小白剛上手linux的時候有沒有被linux複雜的文件路徑管理給嚇着,其實linux文件目錄只不過是一個十分龐大的套娃結構,在很久之前就有一羣人給目錄名稱劃分了具體的功能和名稱,並沿用至今,如今已經成爲了開發人員心中的標準,因此,只要瞭解文件目錄名稱所賦予的含義,對於理解linux文件結構來講就不會有手忙腳亂的現象。

Linux文件樹結構

文件目錄 內容簡介
/boot 系統引導驅動文件夾,如果PC電腦是uefi啓動的話,在linux安裝的時候會將此文件夾複製到硬盤的efi分區內,同樣如果系統引導出問題的話,也是修改此文件夾。
/bin 存放系統基礎常用可執行文件,其中也包括常用的linux指令集如ls,mkdir,free等都存放在此目錄中新手勿動
/sbin 和bin目錄同樣功能,但是隻能是超級管理員才能調用裏面的程序,如reboot,lvs,update等指令新手勿動
/lib,/lib64 存放跟文件系統中的程序運行所需要的共享庫及內核模塊,不清楚是什麼文件的時候勿動
/tmp 系統緩存文件夾,用來存放從各種程序產生的臨時文件平時可以不用管
/mnt 系統管理員安裝臨時文件系統的安裝點,系統提供這個目錄是讓用戶臨時掛載其他的文件系統
/dev linux基礎設備文件夾,存放硬件管理接口和硬件信息(如磁盤,CPU,顯示串口等),如果不是搞硬件開發或者是研究linux內核建議不要隨意亂動,出問題是要發瘋的!!!
/opt 存放不通過linux源管理的第三方軟件,如tomcat,nginx
/usr 存放幾乎所有的linux軟件,但是內部結構大部分都和根目錄差不多。
/usr/local 存放本地安裝的linux軟件,即不通過linux包管理安裝的Linux源中存在的軟件,如python3,而Linux自帶的python2.7則存放在/usr/bin目錄中
/usr/bin 與跟目錄的bin同樣的功能,存放linux系統軟件,如python2.7
/usr/sbin 與根目錄sbin同樣功能,功能相同,但是存放的基本上都是擴展指令集,也就是說/sbin中沒有用的都放到了這裏面
/usr/src linux內核源碼就在這裏面
/var 系統一般運行時要改變的數據,可以是用戶信息,也有緩存文件的存放
/var/log 存放各個成勳運行的日誌文件
/var/lock 鎖定文件.許多程序遵循在/var/lock 中產生一個鎖定文件的約定,以支持他們正在使用某個特定的設備或文件.其他程序注意到這個鎖定文件,將不試圖使用這個設備或文件當然,平時解鎖佔用刪除的也是此文件裏面的.lock文件
/home 存放用戶產生的基礎信息文件,所有創建的用戶都會以用戶名爲文件夾名存放在home目錄中,而用戶文件夾的目錄結構與root文件夾是一樣的
/root 超級用戶文件夾,在一些系統的安裝中,會將root放到home目錄中,有些會獨立分開,但是文件結構和home目錄裏面的用戶目錄是相同的,區別在於,root用戶本身自帶管理員權限
/proc 虛擬文件系統目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。
  • 通過上述介紹可以不難發現
    • 如果只是想要使用linux進行簡單軟件開發(研究linux系統除外),需要去了解的文件目錄只有
      • /usr
      • /home
      • /root
      • /opt
      • /etc

etc文件目錄

  • etc存放了系統環境變量和各種配置文件,同樣如果是要修改全局環境變量只需要修改以下文件即可
    • etc\profile:有關Linux環境變量的東西,常在/etc/profile文件中修改環境變量,在這裏修改的內容是對所有用戶起作用的,個人非常不建議在此文檔中添加函數或者別名,此文檔負責管理環境變量,如果需要添加別名或者函數,可以在bashrc中添加,如果添加shell腳本,可以放在profile.d中
    • etc\bashrc:修改.bashrc(deepin中是bash.bashrc也有其他系統也是這名稱)可以改變全局環境變量,個人非常不建議在這個文件系統中添加或修改環境,此文檔負責管理別名和函數。如果需要修改環境或者添加指令可以修改profile或者是在profile.d文件夾(/etc沒有profile.d可以自行創建)中創建shell腳本,系統環境會自動在終端執行時將這些加載到環境中。

  • 這裏以在bashrc中添加別名作爲演示示例


  • 需要注意的是在root文件和home裏的用戶文件中都存在.bashrc文件,如果修改那些文件只能是當前用戶可以使用環境,其他用戶無法使用,即無法全局共享。

home文件目錄

  • home文件夾中存放的都是以用戶名命名的用戶文件夾,每個用戶文件夾都存放着獨立於用戶的個人文件,如文檔,視頻,音頻等。
  • 需要注意的是,當前用戶只能訪問自己的用戶文件夾,其他用戶文件夾均無法訪問,除非登陸超級管理員模式,或者被賦予了超級管理員權限。


  • 用戶文件夾中通常都會出現有着相同文件名的幾個文件,分別是:
    • .bash_history 記錄之前輸入的命令
      • 此功能就是當你在終端通過上下方向鍵操縱,可以看見你以前輸入過的指令。
    • .bash_logout 當你退出時執行的命令
    • .bash_profile 當你登入shell時執行(如果修改不能通過重啓終端刷新
    • .bashrc 當你登入shell時執行(如果修改可以通過重啓終端刷新
    • 需要注意的是,用戶文件夾中的bashrc同樣也可以修改環境變量,但是其他用戶不會受到你修改的環境的影響,也就是說你改的環境只能你自己用。
  • root,用戶文件目錄與etc中的bashrc之間的關係圖如下

root文件目錄

  • root文件夾與home目錄中的用戶文件夾結構高度相似,同樣也有環境配置文件.bashrc等,不過需要注意的是,普通用戶可以藉助登陸超級用戶root訪問root文件,而一旦登陸root用戶,則其他所有用戶文件均可通過root賬戶訪問。
  • 需要注意的是輸入sudo su登陸超級用戶後,用戶根目錄即~ 指向的位置會發生變化,從原來的\home\用戶文件轉變爲\root文件夾這在修改環境變量的時候需要注意的地方,你使用~\ 的時候到底是想修改root用戶的環境還是自己本身的環境,如果稍不注意,會引發很嚴重的後果。



opt文件目錄

  • 所有擴展軟件均可以放在此文件目錄中,建議此文件夾存放集成軟件,如果是運行環境最好是存放在/usr/local中

usr文件目錄

  • usr文件夾是一個十分龐大的文件目錄,裏面存放了基本上linux系統中絕大部分指令集和軟件環境。
  • 可以看見usr文件夾中的結構與根目錄有着類似的文件目錄結構,但是因爲在usr文件中所以也有一定的範圍區別
    • \usr\bin:存放Linux源安裝的軟件,如gcc,python等(全局變量中已經將此文件夾納入環境變量中


    • \usr\lib|lib64:軟件或者環境所依賴的動態鏈接庫或者配置文件。
    • \usr\sbin:和\sbin功能相同,\sbin存放基礎指令集,\usr\sbin存放一些優化後的指令集
    • \usr\local:用戶安裝的本地軟件,如自行下載的python3.8可以放在這裏,local中有者和\usr相同的文件目錄結構,因此就不再過多贅述。
    • \usr\share:共享文件夾。。這個沒什麼可以說明的吧。。。
    • \usr\src:存放源碼文件,裏面有linux內核源碼
  • 需要注意的是\usr\local中最好存放環軟件環境如python環境,java環境,mysql等,因爲\usr\bin與\usr\local\bin已經自動寫入系統環境,而tomcat,nginx需要依賴這些運行的軟件最好放到opt文件目錄中,當然這個僅僅是我個人的習慣,並不是強求。但是並不提倡在這兩個文件夾之外安裝可執行文件,即不方便管理,也不方便運行。

var文件目錄

  • 此目錄存放系統運行時數據變動的文件,文件結構與根目錄很相似
    • \var\local:存放\usr\local中的軟件的可變動的數據文件
    • \var\opt:opt中安裝的程序的可變數據
    • \var\log:各種程序的Log文件,特別是login (\var\log\wtmp log所有到系統的登錄和註銷) 和syslog (\var\log\messages 裏存儲所有核心和系統程序信息. /var/log 裏的文件經常不確定地增長,應該定期清除.
    • \var\run:保存到下次引導前有效的關於系統的信息文件.例如, \var\run\utmp 包含當前登錄的用戶的信息.
    • \var\tmp:比\tmp 允許的大或需要存在較長時間的臨時文件. (雖然系統管理員可能不允許\var\tmp 有很舊的文件.)
    • \var\locak:鎖定文件.許多程序遵循在\var\lock 中產生一個鎖定文件的約定,以支持他們正在使用某個特定的設備或文件.其他程序注意到這個鎖定文件,將不試圖使用這個設備或文件.
  • var,opt,usr三個文件夾之前的關係圖

參考文章

Linux 下各個目錄的作用及內容
Linux–/var目錄詳解
linux系統/var目錄的作用
Linux 設備文件/dev/*詳解、查詢
Linux /etc/profile文件詳解
Linux的環境配置文件----.bashrc文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章