Linux文件目錄管理 Linux之文件與目錄結構
Linux之文件與目錄結構
Linux檔案系統結構
Linux目錄結構的組織形式和Windows有很大的不同。首先Linux沒有“盤(C盤、D盤、E盤)”的概念。已經建立檔案系統的硬碟分割槽被掛載到某一個目錄下,使用者通過操作目錄來實現磁碟讀寫。
Linux不像Windows那樣的系統目錄,Linux使用正斜槓"/"而不是反斜槓"\"來標識目錄。
Windows目錄:
Linux目錄:
Linux首先是建立一個根"/"檔案系統,所有的目錄也都是由根目錄衍生出來。
登入系統後,在當前命令視窗輸入命令:
ls /
檢視結果如下圖:
在Linux底下,所有的檔案與目錄都是由根目錄開始,是目錄與檔案的源頭,然後一個個的分支下來,如同樹枝狀,因此稱為這種目錄配置為:目錄樹。
目錄樹的特點是什麼呢?
- 目錄樹的起始點是根目錄(/,root);
- 每一個目錄不止能使用本地的檔案系統,也可以使用網路上的檔案系統,可以利用NFS伺服器掛載特定目錄。
- 每一個檔案在此目錄樹中的檔名,包含完整路徑都是獨一無二的。
目錄樹架構示意圖
以下是對這些目錄的解釋:
-
/bin:
bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。 -
/boot:
這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。 -
/dev :
dev是Device(裝置)的縮寫, 該目錄下存放的是Linux的外部裝置,在Linux中訪問裝置的方式和訪問檔案的方式是相同的。 -
/etc:
這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。 -
/home:
使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。 -
/lib:
這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。 -
/lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。 -
/media:
linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。 -
/mnt:
系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。 -
/opt:
這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。 -
/proc:
這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。
這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以通過下面的命令來遮蔽主機的ping命令,使別人無法ping你的機器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。 -
/sbin:
s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。 -
/selinux:
這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。 -
/srv:
該目錄存放一些服務啟動之後需要提取的資料。 -
/sys:
sysfs檔案系統集成了下面3種檔案系統的資訊:針對程序資訊的proc檔案系統、針對裝置的devfs檔案系統以及針對偽終端的devpts檔案系統。
這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。該檔案系統是核心裝置樹的一個直觀反映。
當一個核心物件被建立的時候,對應的檔案和目錄也在核心物件子系統中被建立。
-
/tmp:
這個目錄是用來存放一些臨時檔案的。 -
/usr:
這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。 -
/usr/bin:
系統使用者使用的應用程式。 -
/usr/sbin:
超級使用者使用的比較高階的管理程式和系統守護程式。 -
/usr/src:核心原始碼預設的放置目錄。
-
/var:
這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。
在linux系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部檔案。
/etc: 上邊也提到了,這個是系統中的配置檔案,如果你更改了該目錄下的某個檔案可能會導致系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。
目錄的相關操作
我們知道切換目錄的指令是cd,那麼首先得知道如何切換目錄,這個得用心記呀!
. 當前目錄 .. 上一層目錄 - 前一個工作目錄 ~ 當前【使用者】所在的家目錄
需要注意的是,在所有目錄底下都存在兩個目錄,分別是【.】和【..】,分別代表當前目錄,上層目錄!那麼如何證明它的存在呢?
命令: ls -la /
檢視命令解釋:man ls (Linux下的幫助指令)
結論:ls - list directory contens (列出目錄內容)
ls -la / 以豎狀格式化顯示列出/目錄所有內容
接下來看一下常用的目錄處理指令:
cd : (change directory,更改目錄) pwd:(顯示當前目錄) mkdir:(建立一個新目錄) rmdir:(刪除一個空目錄)
cd命令,變換目錄
cd是change directory的縮寫,這是用來變換工作目錄的命令,注意命令和目錄之間有一個空格。
mkdir,建立新目錄
mkdir是make directory的縮寫,用來建立新目錄,在預設情況下,目錄得一級一級的建立。
例如我要建立/home/oldboy/python目錄,我就必須有/home,然後/home/oldboy,最後/home/oldboy/python,如果沒有/home/oldboy,則不能建立python目錄!
可見高效的建立目錄用上-p引數,可以直接執行命令【mkdir -p /home/oldboy/python】,系統會自動新增上/home,/home/oldboy,/home/oldboy/python依次建立目錄,是不是很方便,^ ^
rmdir,刪除空目錄
當我想刪除一個空目錄時,就用rmdir吧,例如我想刪除剛才建立的oldboy目錄,以及/tmp/oldboy/python,那麼可以使用【rmdir oldboy】,但是注意rmdir只能刪除空目錄。
刪除命令可以正確使用【rm -rf】
Linux的路徑PATH
同學們應該都會配置windows下的環境變數(PATH),都知道系統會按照PATH的設定,去每個PATH定義的目錄下搜尋可執行檔案。
那麼如何檢視Linux下的PATH環境變數呢?
執行命令: echo $PATH echo命令是有列印的意思 $符號後面跟上PATH,表示輸出PATH的變數
PATH(一定是大寫的)這個變數是由一堆目錄組成,分隔符是":"號,而不同於windows的";"號。
絕對路徑與相對路徑
Linux中非常重要的概念--路徑,路徑用來定位如何找到某個檔案。
這裡超哥先講個例子,到底什麼是相對路徑,絕對路徑
比如一個老外,要來老男孩教育學習python,但是他找不到地點,因此向你問路,你可以告訴他:
1.先坐飛機來中國北京,從北京機場坐地鐵到沙河地鐵站,然後走路800米到沙河匯德商廈,上四樓,找到超哥,結束尋路。
2. 超哥就在匯德商廈403辦公室,武佩奇後面坐著呢!!!
Linux下特別注意檔名/路徑的寫法,可以將所謂的路徑(path)定義為絕對路徑(absolute)和相對路徑(relative)。這兩種檔名/路徑的寫法依據是這樣的:
- 絕對路徑:由根目錄(/)為開始寫起的檔名或者目錄名稱,如/home/oldboy/test.py;
- 相對路徑:相對於目前路徑的檔名寫法。例如./home/oldboy/exam.py或../../home/oldboy/exam.py,簡單來說只要開頭不是/,就是屬於相對路徑
因此你必須瞭解,相對路徑是:以你當前所在路徑的相對路徑來表示的。
例如你現在在/home 這個目錄下,如要進入/var/log這個路徑,如何寫呢?
- cd /var/log (絕對路徑)
- cd ../var/log(相對路徑)
結果如圖:
因為你在/home底下,因此你要回到上一層(../)之後,才能繼續前往/var,特別注意:
- . :代表當前的目錄,也可以用./ 來表示
- .. :代表上一層的目錄,也可以用../來表示
分割線----
這個.與..目錄概念非常重要,平時經常會看到cd ..或者python ../home/oldboy/exam.py 就是代表進入上一層與執行相對路徑的python程式碼!
1.linux是以 / 開始的樹狀目錄結構,tree檢視 2.常用檔案目錄操作命令是ls,cd,mkdir,rmdir 3.Linux的PATH檢視是 echo $PATH,可以修改/etc/profile檔案永久生效,以冒號分割
4.絕對路徑,相對路徑的檢視
5.檔案許可權chmod chgrp chown
Linux的檔案系統
使用者在硬體儲存裝置中執行的檔案建立,寫入,讀取,修改,轉存與控制等操作都是依賴檔案系統完成的。檔案系統的作用是合理規劃硬碟,保證使用者正常使用。
Linux系統支援數十種檔案系統,常見檔案系統如下。
- Ext3 是一款日誌檔案系統,能夠在系統異常宕機時避免檔案系統資料丟失,並能 自動修復資料的不一致與錯誤。
- Ext4 Ext3 的改進版本,作為 RHEL 6 系統中的預設檔案管理系統,它支援的儲存容 量高達 1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4 檔案系統能夠批量分配 block 塊,從而極大地提高了讀寫效率。
- XFS 是一種高效能的日誌檔案系統,而且是 RHEL 7 中預設的檔案管理系統,它的優勢在發生意外宕機後尤其明顯,即可以快速地恢復可能被破壞的檔案,而且強大的 日誌功能只用花費極低的計算和儲存效能。並且它最大可支援的儲存容量為 18EB, 這幾乎滿足了所有需求。
/etc/fstab是用來存放檔案系統的靜態資訊的檔案
cat /etc/fstab #檢查linux的檔案系統
練習
1.在/home/目錄建立資料夾oldboy,進入oldboy建立helloLinux.txt
2.建立/tmp/chaogeLinux.txt,用絕對路徑方式與相對路徑兩種方法
3.在/tmp/目錄下建立chaogeDir目錄
4.檢視linuxPATH
5.修改chaogeLinux.txt檔案屬主是chaoge,許可權是可讀可寫
Linux檔案系統結構
Linux目錄結構的組織形式和Windows有很大的不同。首先Linux沒有“盤(C盤、D盤、E盤)”的概念。已經建立檔案系統的硬碟分割槽被掛載到某一個目錄下,使用者通過操作目錄來實現磁碟讀寫。
Linux不像Windows那樣的系統目錄,Linux使用正斜槓"/"而不是反斜槓"\"來標識目錄。
Windows目錄:
Linux目錄:
Linux首先是建立一個根"/"檔案系統,所有的目錄也都是由根目錄衍生出來。
登入系統後,在當前命令視窗輸入命令:
ls /
檢視結果如下圖:
在Linux底下,所有的檔案與目錄都是由根目錄開始,是目錄與檔案的源頭,然後一個個的分支下來,如同樹枝狀,因此稱為這種目錄配置為:目錄樹。
目錄樹的特點是什麼呢?
- 目錄樹的起始點是根目錄(/,root);
- 每一個目錄不止能使用本地的檔案系統,也可以使用網路上的檔案系統,可以利用NFS伺服器掛載特定目錄。
- 每一個檔案在此目錄樹中的檔名,包含完整路徑都是獨一無二的。
目錄樹架構示意圖
以下是對這些目錄的解釋:
-
/bin:
bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。 -
/boot:
這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。 -
/dev :
dev是Device(裝置)的縮寫, 該目錄下存放的是Linux的外部裝置,在Linux中訪問裝置的方式和訪問檔案的方式是相同的。 -
/etc:
這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。 -
/home:
使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。 -
/lib:
這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。 -
/lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。 -
/media:
linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。 -
/mnt:
系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。 -
/opt:
這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。 -
/proc:
這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。
這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以通過下面的命令來遮蔽主機的ping命令,使別人無法ping你的機器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。 -
/sbin:
s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。 -
/selinux:
這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。 -
/srv:
該目錄存放一些服務啟動之後需要提取的資料。 -
/sys:
sysfs檔案系統集成了下面3種檔案系統的資訊:針對程序資訊的proc檔案系統、針對裝置的devfs檔案系統以及針對偽終端的devpts檔案系統。
這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。該檔案系統是核心裝置樹的一個直觀反映。
當一個核心物件被建立的時候,對應的檔案和目錄也在核心物件子系統中被建立。
-
/tmp:
這個目錄是用來存放一些臨時檔案的。 -
/usr:
這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。 -
/usr/bin:
系統使用者使用的應用程式。 -
/usr/sbin:
超級使用者使用的比較高階的管理程式和系統守護程式。 -
/usr/src:核心原始碼預設的放置目錄。
-
/var:
這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。
在linux系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部檔案。
/etc: 上邊也提到了,這個是系統中的配置檔案,如果你更改了該目錄下的某個檔案可能會導致系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。
目錄的相關操作
我們知道切換目錄的指令是cd,那麼首先得知道如何切換目錄,這個得用心記呀!
. 當前目錄 .. 上一層目錄 - 前一個工作目錄 ~ 當前【使用者】所在的家目錄
需要注意的是,在所有目錄底下都存在兩個目錄,分別是【.】和【..】,分別代表當前目錄,上層目錄!那麼如何證明它的存在呢?
命令: ls -la /
檢視命令解釋:man ls (Linux下的幫助指令)
結論:ls - list directory contens (列出目錄內容)
ls -la / 以豎狀格式化顯示列出/目錄所有內容
接下來看一下常用的目錄處理指令:
cd : (change directory,更改目錄) pwd:(顯示當前目錄) mkdir:(建立一個新目錄) rmdir:(刪除一個空目錄)
cd命令,變換目錄
cd是change directory的縮寫,這是用來變換工作目錄的命令,注意命令和目錄之間有一個空格。
mkdir,建立新目錄
mkdir是make directory的縮寫,用來建立新目錄,在預設情況下,目錄得一級一級的建立。
例如我要建立/home/oldboy/python目錄,我就必須有/home,然後/home/oldboy,最後/home/oldboy/python,如果沒有/home/oldboy,則不能建立python目錄!
可見高效的建立目錄用上-p引數,可以直接執行命令【mkdir -p /home/oldboy/python】,系統會自動新增上/home,/home/oldboy,/home/oldboy/python依次建立目錄,是不是很方便,^ ^
rmdir,刪除空目錄
當我想刪除一個空目錄時,就用rmdir吧,例如我想刪除剛才建立的oldboy目錄,以及/tmp/oldboy/python,那麼可以使用【rmdir oldboy】,但是注意rmdir只能刪除空目錄。
刪除命令可以正確使用【rm -rf】
Linux的路徑PATH
同學們應該都會配置windows下的環境變數(PATH),都知道系統會按照PATH的設定,去每個PATH定義的目錄下搜尋可執行檔案。
那麼如何檢視Linux下的PATH環境變數呢?
執行命令: echo $PATH echo命令是有列印的意思 $符號後面跟上PATH,表示輸出PATH的變數
PATH(一定是大寫的)這個變數是由一堆目錄組成,分隔符是":"號,而不同於windows的";"號。
絕對路徑與相對路徑
Linux中非常重要的概念--路徑,路徑用來定位如何找到某個檔案。
這裡超哥先講個例子,到底什麼是相對路徑,絕對路徑
比如一個老外,要來老男孩教育學習python,但是他找不到地點,因此向你問路,你可以告訴他:
1.先坐飛機來中國北京,從北京機場坐地鐵到沙河地鐵站,然後走路800米到沙河匯德商廈,上四樓,找到超哥,結束尋路。
2. 超哥就在匯德商廈403辦公室,武佩奇後面坐著呢!!!
Linux下特別注意檔名/路徑的寫法,可以將所謂的路徑(path)定義為絕對路徑(absolute)和相對路徑(relative)。這兩種檔名/路徑的寫法依據是這樣的:
- 絕對路徑:由根目錄(/)為開始寫起的檔名或者目錄名稱,如/home/oldboy/test.py;
- 相對路徑:相對於目前路徑的檔名寫法。例如./home/oldboy/exam.py或../../home/oldboy/exam.py,簡單來說只要開頭不是/,就是屬於相對路徑
因此你必須瞭解,相對路徑是:以你當前所在路徑的相對路徑來表示的。
例如你現在在/home 這個目錄下,如要進入/var/log這個路徑,如何寫呢?
- cd /var/log (絕對路徑)
- cd ../var/log(相對路徑)
結果如圖:
因為你在/home底下,因此你要回到上一層(../)之後,才能繼續前往/var,特別注意:
- . :代表當前的目錄,也可以用./ 來表示
- .. :代表上一層的目錄,也可以用../來表示
分割線----
這個.與..目錄概念非常重要,平時經常會看到cd ..或者python ../home/oldboy/exam.py 就是代表進入上一層與執行相對路徑的python程式碼!
1.linux是以 / 開始的樹狀目錄結構,tree檢視 2.常用檔案目錄操作命令是ls,cd,mkdir,rmdir 3.Linux的PATH檢視是 echo $PATH,可以修改/etc/profile檔案永久生效,以冒號分割
4.絕對路徑,相對路徑的檢視
5.檔案許可權chmod chgrp chown
Linux的檔案系統
使用者在硬體儲存裝置中執行的檔案建立,寫入,讀取,修改,轉存與控制等操作都是依賴檔案系統完成的。檔案系統的作用是合理規劃硬碟,保證使用者正常使用。
Linux系統支援數十種檔案系統,常見檔案系統如下。
- Ext3 是一款日誌檔案系統,能夠在系統異常宕機時避免檔案系統資料丟失,並能 自動修復資料的不一致與錯誤。
- Ext4 Ext3 的改進版本,作為 RHEL 6 系統中的預設檔案管理系統,它支援的儲存容 量高達 1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4 檔案系統能夠批量分配 block 塊,從而極大地提高了讀寫效率。
- XFS 是一種高效能的日誌檔案系統,而且是 RHEL 7 中預設的檔案管理系統,它的優勢在發生意外宕機後尤其明顯,即可以快速地恢復可能被破壞的檔案,而且強大的 日誌功能只用花費極低的計算和儲存效能。並且它最大可支援的儲存容量為 18EB, 這幾乎滿足了所有需求。
/etc/fstab是用來存放檔案系統的靜態資訊的檔案
cat /etc/fstab #檢查linux的檔案系統
練習
1.在/home/目錄建立資料夾oldboy,進入oldboy建立helloLinux.txt
2.建立/tmp/chaogeLinux.txt,用絕對路徑方式與相對路徑兩種方法
3.在/tmp/目錄下建立chaogeDir目錄
4.檢視linuxPATH
5.修改chaogeLinux.txt檔案屬主是chaoge,許可權是可讀可寫