本文檔演示所使用的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
- 如果只是想要使用linux進行簡單軟件開發(研究linux系統除外),需要去了解的文件目錄只有
etc文件目錄
- etc存放了系統環境變量和各種配置文件,同樣如果是要修改全局環境變量只需要修改以下文件即可
- etc\profile:有關Linux環境變量的東西,常在/etc/profile文件中修改環境變量,在這裏修改的內容是對所有用戶起作用的,
個人非常不建議在此文檔中添加函數或者別名,此文檔負責管理環境變量,如果需要添加別名或者函數,可以在bashrc中添加,如果添加shell腳本,可以放在profile.d中
。 - etc\bashrc:修改.bashrc(
deepin中是bash.bashrc也有其他系統也是這名稱
)可以改變全局環境變量,個人非常不建議在這個文件系統中添加或修改環境,此文檔負責管理別名和函數。如果需要修改環境或者添加指令可以修改profile或者是在profile.d文件夾(/etc沒有profile.d可以自行創建)中創建shell腳本,系統環境會自動在終端執行時將這些加載到環境中。
- etc\profile:有關Linux環境變量的東西,常在/etc/profile文件中修改環境變量,在這裏修改的內容是對所有用戶起作用的,
- 這裏以在bashrc中添加別名作爲演示示例
- 需要注意的是在root文件和home裏的用戶文件中都存在.bashrc文件,如果修改那些文件
只能是當前用戶可以使用環境,其他用戶無法使用
,即無法全局共享。
home文件目錄
- home文件夾中存放的都是以用戶名命名的用戶文件夾,每個用戶文件夾都存放着獨立於用戶的個人文件,如文檔,視頻,音頻等。
- 需要注意的是,當前用戶只能訪問自己的用戶文件夾,其他用戶文件夾均無法訪問,除非登陸超級管理員模式,或者被賦予了超級管理員權限。
- 用戶文件夾中通常都會出現有着相同文件名的幾個文件,分別是:
- .bash_history 記錄之前輸入的命令
- 此功能就是當你在終端通過上下方向鍵操縱,可以看見你以前輸入過的指令。
- 此功能就是當你在終端通過上下方向鍵操縱,可以看見你以前輸入過的指令。
- .bash_logout 當你退出時執行的命令
- .bash_profile 當你登入shell時執行(
如果修改不能通過重啓終端刷新
) - .bashrc 當你登入shell時執行(
如果修改可以通過重啓終端刷新
) - 需要注意的是,用戶文件夾中的bashrc同樣也可以修改環境變量,但是其他用戶不會受到你修改的環境的影響,也就是說你改的環境只能你自己用。
- .bash_history 記錄之前輸入的命令
- 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\bin:存放Linux源安裝的軟件,如gcc,python等(
- 需要注意的是\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文件