◎cifs:網絡共享文件係統。
采用這些文件係統格式化的存儲設備掛載到Linux文件係統中,就可以直接在其上進行文件的存取操作。
2.Linux係統的文件
在Linux係統中,文件不僅僅是指存儲在硬盤等存儲介質上的數據集合,所有外部設備也是作為文件來對待的。
(1)Linux文件常用類型。
普通文件 與Windows中的文件概念相同,即數據文件
純文本文件 完全由字符組成的文件,Linux係統的所有配置文件都是純文本文件,可以直接讀取
二進製文件 程序文件,是可以執行的程序
文檔文件 由應用程序生成的具有一定格式的數據文件
目錄文件 用於組織和管理其他文件的特殊文件
鏈接文件 指向實際文件的特殊文件,與Windows中的文件快捷方式類似
設備文件 代表外部設備的文件,存儲在/etc目錄中
塊設備文件 指存儲設備,如硬盤、光盤等
字符設備文件 指串行設備,如鍵盤、鼠標等
(2)文件的名稱。
Linux係統根據名稱存取文件,Linux係統中文件的命名規則如下:
◎文件名最多由255個字符組成;◎在文件名中禁用* ? < > ; & [ ] | \ ` ‘ “ ( ) { },它們在係統中有特殊意義;◎以小數點開始命名的文件是隱藏文件;◎文件名的開始字符避免使用字符-和+;◎文件名中可以使用以小數點分隔的後綴名,用於指示文件類型。
學藝錦囊
◎文件係統決定了文件的存取方法、訪問效率、安全性、存儲空間利用率等多種係統管理要素。采用何種文件係統,取決於管理員的決策。
◎設備文件是係統中的重要文件,不能修改這類文件,否則會導致設備不能正常工作。
◎Linux文件的後綴名沒有特別意義,但仍建議命名後綴名來反映文件的用途。
二、認識Linux係統的目錄配置
1.Linux係統的目錄結構
Linux係統安裝後,將在硬盤上建立如下表所示的目錄結構。
從安全性和管理維護方便性考慮,一般不會把所有目錄放在一個分區中,目錄與分區的關聯原則是把係統程序和數據、應用程序和用戶數據的相關目錄分別放在獨立的分區中。Linux啟動開始時隻掛載了根目錄/所在的分區即根分區,而啟動所用的命令和函數分別存儲在/etc、/sbin、/bin、/dev、/bin等目錄中,因此,這幾個目錄不要與根目錄/分開,而要與根目錄/一起劃分在同一分區中。存儲操作係統核心的目錄/boot、應用程序目錄/var、/usr、/tmp各劃分到一個分區,用戶數據目錄/home獨占一個分區。
2.認識文件路徑
在樹型目錄結構的文件係統中,要定位一個文件在文件係統中的存儲位置,你需要在目錄樹中從根目錄開始依次指出到存儲該文件通路上的所有目錄,這種由目錄名組成描述文件存儲位置的字符串被稱為文件的路徑(PATH)。
(1)文件路徑(PATH)。
文件smb.conf的路徑是/home/hungws/conf_bak。文件路徑是由目錄樹中到指定文件所在位置通路上所經過的目錄名組成,文件路徑中目錄名用正斜線(/)分隔。根據定位文件的起點不同,文件路徑分為絕對路徑和相對路徑兩種。
◎絕對路徑:從根目錄開始的路徑,如/home/hungws/conf_bak。
◎相對路徑:從當前目錄開始的路徑。例如當前目錄是/root,../home/hungws/conf_bak就是文件smb.conf的一個相對路徑。當前目錄也稱為工作目錄,是指在存取文件時默認訪問的目錄。
(2)切換與顯示當前目錄。
①顯示當前目錄。
[root@vm ~]pwd
②改變當前目錄。
把/home/pub作為當前目錄:
[root@vm ~]cd /home/pub
返回用戶主目錄:
[root@vm ~]cd ~
或
[root@vm ~]cd
返回上一層目錄:
[root@vm ~]cd..
(3)設置執行文件的搜索路徑。
為了訪問一個文件,必須給出文件的完整文件名。在執行管理操作時,給每個命令程序文件加上路徑將使管理工作量大而低效。通過設置環境變量PATH,把管理命令程序文件的路徑添加到PATH中,在執行管理操作時就不需輸入命令的完整文件名,讓管理工作更輕鬆、高效。
①顯示當前PATH的設置值。
$PATH代表環境變量PATH的值,命令echo的作用是顯示。
[root@vm ~]echo $PATH
/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/local/sbin
②把路徑/home/hws/usr/bin添加到PATH中。
[root@vm ~]PATH=$PATH:/home/hws/usr/bin
學藝錦囊
◎在文件路徑中起始的斜線(/)是根目錄的名稱,其餘的斜線起分隔作用。
◎與Windows不同,在環境變量PATH中各路徑之間用冒號(:)分隔,在執行命令時默認不搜索當前目錄。
◎在切換當前目錄時需要用到的幾個特殊目錄:. :當前目錄。
.. :當前目錄的上一層目錄。
~ :當前用戶的主目錄。
~username:賬戶username的主目錄。
三、文件的訪問權限
Linux是多用戶操作係統,操作文件的用戶有三種角色:擁有者(Owner,創建文件的用戶)、組用戶(Group,與擁有者同屬於一個用戶組的用戶)、其他人(Others)。配置文件訪問權限就是為這三種角色指定文件的操作權,文件的訪問權限關係到係統信息的安全性。
1.認識文件的訪問權限以長格式顯示出文件的詳細屬性信息,其中包括文件的訪問權限。
(1)查看文件的安全相關信息。
[root@vm ~]ls -l /home/hungws/mytest.c
①文件類型。
-:文件,包括純文件和二進製文件。
d:目錄。
l:鏈接(link)。
b:塊設備文件。
c:字符設備文件。
②文件權限。
r:可讀(read)。
w:可寫(write)。
x:可執行(execute)。
-:不具備對應位置上的權限。
③鏈接點(i-node)數。
如果是文件,則表示鏈接到此文件的鏈接數;如果是目錄,則是其下的子目錄數。
④擁有者。
該文件的創建者,擁有文件的最大控製權。
⑤擁有者用戶組。
擁有該文件的組。一個用戶可以屬於多個組。
⑥文件大小。
⑦文件的創建或最後修改時間。
⑧文件名。
(2)文件的訪問權限。
文件的訪問權限分成三個組,依次對應於擁有者、用戶組和其他人對該文件的操作權限。每組權限嚴格按讀(r)、寫入(w)、執行(x)排列,當某位為(-)時,表示該角色不具有該種操作權限。
(3)用數字表示權限。
文件的每個角色的權限由三個位組成,擁有權限的位用1表示,不具有的權限位用0表示,則每組權限可視為一個3位二進製數,然後轉換成相應的十進製數表示,這樣文件的權限可表示為一個三位的十進製整數。
四、認識鏈接文件的類型
在ext2文件係統中,存儲在分區中的文件包括一個inode記錄和若幹數據塊Block。文件的inode記錄描述了文件的各種屬性信息,包括文件數據在數據塊中的存儲地址,而文件的內容數據則存儲在數據區的若幹個Block中。目錄文件與普通文件類似,但在其數據塊中存儲的是該目錄下所有文件和子目錄的文件名以及它們的inode地址。
當存取文件時,首先獲取文件所在目錄的inode,就可以訪問在該目錄中的數據塊,在目錄的數據中通過文件名查詢到文件的inode地址,接著根據inode中的記錄去訪問Block區中存儲的實際數據。因此,訪問文件的關鍵是獲取文件的inode記錄。可以為一個文件創建多個訪問該文件indoe的途徑來達到訪問該文件數據的能力,實現這一要求的文件就是鏈接文件。按創建方式的不同,鏈接分為硬鏈接和符號鏈接兩種。
硬鏈接就是為文件在目錄的數據區再建一條指向該文件inode的記錄,這條記錄包括一個新的文件名和指向這個文件inode的地址。通過新創建的文件名也可以訪問源文件,而源文件的存儲不發生任何改變。在目錄的數據區中指向一個文件inode記錄的個數稱為文件的鏈接數。硬鏈接會增加文件的鏈接數。不同文件係統的inode結構是不相同的,因此硬鏈接不能跨文件係統使用,也不能建立目錄的硬鏈接。
符號鏈接是指建立一個獨立的文件指向要鏈接的源文件,該文件存儲了訪問源文件的路徑和文件名。符號鏈接可以跨文件係統使用,還能為目錄建立符號鏈接。
五、文件管理相關命令
1.文件操作命令
(1)建立子目錄。
[root@vm ~]mkdir [-mp] 目錄名
-p:自動建立目錄名中不存在的目錄,否則需要逐層建立目錄。
-m:在其後指定新建目錄的權限,而不采用默認權限。
(2)刪除空子目錄。
[root@vm ~]rmdir [-p] 目錄名
-p:同時刪除指定目錄的上層空子目錄,否則需要逐層刪除空目錄。
(3)顯示文件。
[root@vm ~]ls [-aAdfhilRSt] 目錄名
-a:顯示全部文件。
-A:顯示全部文件,但不包括.和..兩個目錄文件。
-d:隻顯示目錄。
-f:不對結果排序,默認以文件名排序。
-h:顯示文件大小。
-i:顯示inode記錄。
-l:長顯示格式,除文件名外,還包括文件的屬性。
-R:同進顯示子目錄的內容。
-S:顯示結果按文件大小排序。
-t:顯示結果按時間排序。
(4)複製文件。
[root@vm ~]cp [-dfilprsua] 源文件 目標文件
-d:若源文件是鏈接文件,則隻複製鏈接文件。無此選項則複製鏈接文件的源文件。
-f:強製複製,當目標文件與源文件重複時不詢問用戶。
-i:當目標文件與源文件重複時詢問用戶以確認操作。
-l:建立源文件的硬鏈接。
-p:把源文件的屬性一起複製,否則目標文件采用默認屬性。
-r:複製時包括目錄。
-s:建立符號鏈接。
-u:源文件比目標文件新或目標文件不存在時才複製。
-a:等價於-pdr。
(5)刪除文件。
[root@vm ~]rm [-fir] 文件名|目錄名-f:不詢問用戶,強製執行刪除。
-i:刪除前詢問用戶。
-r:刪除指定目錄下的文件和子目錄。
(6)移動文件。
[root@vm ~]mv [-fiu] 源文件 目標文件
-f:強製執行。
-i:若目標文件存在,則詢問用戶確認操作。
-u:目標文件存在時,源文件較新才移動。