在 Linux 底下,所有的文件與目錄都是由根目錄開始的。
根目錄是所有目錄與文件的源頭,再一個一個的分支下來,有點像是樹枝狀。
因此,我們也稱這種目錄配置方式為:『目錄樹(directory tree)』。
他主要的特性有:
目錄樹的啟始點為根目錄 (/, root);
每一個目錄不止能使用本地端的 partition 的文件系統,也可以使用網絡上的
filesystem 。(NFS)
如果我們将整個目錄樹以圖标的方法來顯示,并且将較為重要的文件數據列出來的話,
那麼目錄樹架構有點像這樣:
除了需要特别注意的 FHS 目錄配置外,在文件名部分我們也要特别注意喔!因為根據
檔名寫法的不同,也可将所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。
1. 絕對路徑
大家都知道,在我們平時使用計算機時要找到需要的文件就必須知道文件的位置,而表
示文件的位置的方式就是路徑。
絕對路徑就是文件或目錄在硬盤上真正的路徑。 絕對路徑名稱表示的文件在文件系統
裡面唯一的名稱。
例如,隻要看到這個路徑:"D:\ORACLE\OCP.doc"我們就知道"OCP.doc"文件是在 D
盤的"ORACLE"目錄中。類似于這樣完整的描述文件位置的路徑就是絕對路徑。
在 linux 裡面一樣,/study/oracle/ocp/test.txt 通過這個目錄呢我們就可以知道 test.txt
在根目錄(/)下的 study 子目錄下的 oracle 目錄。我們可以用 cd /study/oracle/ocp 通過
這個絕對路徑的方式去查看到這個文件。
2. 相對路徑
相對路徑是一個相對性的對于絕對路徑來說的。
絕對路徑其實可以這麼理解,既然我們在目錄下,我要去到本目錄下的其他子目錄可以
直達其他子目錄的名字,而不需要經過本目錄的再回到你想要的目錄裡面。
比如說:我現在在/opt 下。然後/opt 下有個 oracle 目錄,也就是說我現在的絕對目錄是在/opt/oracle 下。然而,在/opt 下也有一個 ocp 目錄就是說 ocp 絕對路徑是/opt/ocp。那麼我現在已經在/etc 目錄下了。然而我們就可以同 cd ocp 去到同在/etc 下的 ocp 而不需要打入常常的一條/etc/ocp 的絕對路徑去進入了。
幾個特殊目錄:
1. FHS
因為利用 Linux 來開發産品或 distributions 的社群/公司與個人實在太多了, 如果每個
人都用自己的想法來配置文件放置的目錄,那麼将可能造成很多管理上的困擾。因此制訂了 Filesystem Hierarchy Standard (FHS)文件系統層次标準。
根據 FHS的官方文件指出, 他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個目錄下, 所以他們希望獨立的軟件開發商、操作系統制作者、以及想要維護系統的用戶,都能夠遵循 FHS 的标準。 也就是說,FHS的重點在于規範每個特定的目錄下應該要放置什麼樣子的數據而已。 這樣做好處非常多,
因為 Linux 操作系統就能夠在既有的面貌下(目錄架構不變)發展出開發者想要的獨特風格。
事實上,FHS 是根據過去的經驗一直再持續的改版的,FHS 依據文件系統使用的頻繁與否與是否允許使用者随意更動, 而将目錄定義成為四種交互作用的形态,用表格來說有點像底下這樣:
事實上,FHS 針對目錄樹架構僅定義出三層目錄底下應該放置什麼數據而已,分别是底下
這三個目錄的定義:
/ (root, 根目錄):與開機系統有關;
/usr (unix software resource):與軟件安裝/執行有關;
/var (variable):與系統運作過程有關
2 Linux 重要的目錄
1. 查看幫助
[root@oracle ~]# man cd //查看 cd 指令的幫助文檔
2. 顯示當前工作目錄
[root@oracle ~]# pwd
/root
3. 列出當前目錄下的内容:ls
[root@oracle ~]# ls [-aAdfFhilnrRSt] 目錄名稱
[root@oracle ~]# ls [--color={never,auto,always}] 目錄名稱
[root@oracle ~]# ls [--full-time] 目錄名稱
選項與參數:
-a :全部的文件,連同隐藏檔( 開頭為 . 的文件) 一起列出來(常用) -A :全部的文件,連同隐藏檔,但不包括 . 與 .. 這兩個目錄 -d :僅列出目錄本身,而不是列出目錄内的文件數據(常用) -l :長數據串列出,包含文件的屬性與權限等等數據;(常用)(ll) -n :列出 UID 與 GID 而非使用者與群組的名稱 (UID 與 GID 會在帳号管理提到!) -r :将排序結果反向輸出,例如:原本檔名由小到大,反向則為由大到小; -R :連同子目錄内容一起列出來,等於該目錄下的所有文件都會顯示出來; -S :以文件容量大小排序,而不是用檔名排序; -t :依時間排序,而不是用檔名。
4. 切換目錄
[root@oracle ~]# cd / //切換到根目錄
5. 創建目錄
[root@oracle ~]# mkdir oracle //在當前目錄下創建 oracle 目錄
選項與參數:
-m :對新建目錄設置存取權限,也可以用 chmod 命令設置 -p :可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統将 自動建立好那些尚不存在的目錄,即一次可以建立多個目錄(級聯創建)
[root@oracle ~]# mkdir -p study/oracle/OC{A,P,M}
//在當前目錄下創建 study 目錄,在 study 目錄下創建 oracle 目錄,oracle 目錄下創建
OCA、OCP、OCM 目錄
6. 删除目錄
[root@oracle ~]# rmdir oracle //删除 oracle 目錄
7. 創建文件
[root@oracle ~]# touch oracle //創建名為 oracle 的文件
8. 删除文件/目錄
[root@oracle ~]# rm oracle //删除名為 oracle 的文件
選項與參數:
-i :删除前逐一詢問确認。 -f :即使原檔案屬性設為唯讀,亦直接删除,無需逐一确認。 -r :将目錄及以下之檔案亦逐一删除。
[root@oracle ~]# rm *.log //删除所有以“.log”結尾的文件
[root@oracle ~]# rm -rf oracle/ //删除 oracle 目錄并級聯删除 oracle 目錄内的檔案
9. 移動文件/目錄
[root@oracle ~]# mv oracle /opt //将檔案 oracle 移動至目錄/opt 下
10. 拷貝文件/目錄
[root@oracle ~]# cp [-adfilprsu] 來源檔(source) 目标檔(destination)
[root@oracle ~]# cp [options] source1 source2 source3 .... directory
選項與參數:
-a :相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用) -d :若來源檔為連結檔的屬性(link file),則複制連結檔屬性而非文件本身; -i :若目标檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用) -p :連同文件的屬性一起複制過去,而非使用默認屬性(備份常用); -r :遞回持續複制,用於目錄的複制行為;(常用)
最後需要注意的,如果來源檔有兩個以上,則最後一個目的檔一定要是『目錄』才行!
11. 打開文件
[root@oracle ~]# more oracle.log
[root@oracle ~]# less oracle.log
[root@oracle ~]# tail -20f oracle.log //文件尾部輸出
[root@oracle ~]# cat oracle.log
後面會分享更多linux運維方面的内容,感興趣的朋友可以關注下!!
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!