轉自http://hi.baidu.com/yzzcheng/item/1a2141878447891dc31627f5node
以root的家目錄爲例:
linux
能夠看到,用ls -l命令查看某一個目錄會獲得一個7個字段的列表。shell
第1行:總計(total)編程
Total後面的數字是指當前目錄下全部文件所佔用的空間總和。可使用ls –lh查看,也可以使用ls –alh查看。windows
第1字段: 文件屬性字段網絡
-rw-r--r-- 1 root root 762 07-29 18:19 exitsocket
文件屬性字段總共有10個字母組成;第一個字符表明文件的類型。spa
字母「-」表示該文件是一個普通文件.net
字母「d」表示該文件是一個目錄,字母"d",是dirtectory(目錄)的縮寫指針
注意:目錄或者是特殊文件,這個特殊文件存放其餘文件或目錄的相關信息
字母「l」表示該文件是一個連接文件。字母"l"是link(連接)的縮寫,相似於windows下的快捷方式
字母「b」的 表示塊設備文件(block),通常置於/dev目錄下,設備文件是普通文件和程序訪問硬件設備的入口,是很特殊的文件。沒有文件大小,只有一個主設備號 和一個輔設備號。一次傳輸數據爲一整塊的被稱爲塊設備,如硬盤、光盤等。最小數據傳輸單位爲一個數據塊(一般一個數據塊的大小爲512字節)
字母爲「c」表示該文件是一個字符設備文件(character),通常置於/dev目錄下,一次傳輸一個字節的設備被稱爲字符設備,如鍵盤、字符終端等,傳輸數據的最小單位爲一個字節。
字母爲「p」表示該文件爲命令管道文件。與shell編程有關的文件。
字母「s」表示該文件爲sock文件。與shell編程有關的文件。
在此重申下文件連接這個重要概念:
連接文件的概念相似於windows裏的快捷方式。多個連接文件同時指向一個「源文件」。連接文件分爲硬連接或符號連接兩種。
在 Linux的文件系統中,保存在磁盤分區中的文件不論是什麼類型都給它分配一個編號,稱爲索引節點號inode 。軟鏈接,其實就是新創建一個文件,這個文件就是專門用來指向別的文件的(那就和windows 下的快捷方式的那個文件有很接近的意味)。軟鏈接產生的是一個新的文件,但這個文件的做用就是專門指向某個文件的,刪了這個軟鏈接文件,那就等於不須要這 個鏈接,和原來的存在的實體原文件沒有任何關係,但刪除原來的文件,則相應的軟鏈接不可用(cat那個軟連接文件,則提示「沒有該文件或目錄「)
硬 鏈接是不會創建inode的,他只是在文件原來的inode link count域再增長1而已,也所以硬連接是不能夠跨越文件系統的。相反都是軟鏈接會從新創建一個inode,固然inode的結構跟其餘的不同,他只是 一個指明源文件的字符串信息。一旦刪除源文件,那麼軟鏈接將變得毫無心義。而硬連接刪除源文件的時候,系統調用會檢查inode link count的數值,若是他大於等於1,那麼inode不會被回收,所以文件的內容不會被刪除,至關於刪除了一個索引。
硬連接其實是爲文件建一個別名,連接文件和原文件其實是同一個文件。能夠經過ls -i來查看一下,這兩個文件的inode號是同一個,說明它們是同一個文件;而軟連接創建的是一個指向,即連接文件內的內容是指向原文件的指針,它們是兩個文件。
軟 連接能夠跨文件系統,硬連接不能夠;軟連接能夠對一個不存在的文件名(filename)進行連接(固然此時若是你vi這個軟連接文件,linux會自動 新建一個文件名爲filename的文件),硬連接不能夠(其文件必須存在,inode必須存在);軟連接能夠對目錄進行鏈接,硬連接不能夠。兩種連接都 能夠經過命令 ln 來建立。ln 默認建立的是硬連接。使用 -s 開關能夠建立軟連接
第1字符的後面9個字母表示該文件或目錄的權限位。
r表是讀 (Read) 、w表示寫 (Write) 、x表示執行 (eXecute)
其中前三個表示文件擁有者的權限,中間三個表示文件所屬組擁有的權限,最後三個表示其餘用戶擁有的權限。
好比:
-rw-r--r-- 1 root root 762 07-29 18:19 exit
表示文件的擁有者root對文件有讀寫權限,其餘人(同組用戶和其餘用戶只有讀的權限)
另外,權限組還有一些特殊的表示法:
[root@localhost ~]# ll /usr/X11R6/bin/XFree86
-rws--x--x 1 root root 1960262 2003-02-28 /usr/X11R6/bin/XFree86
s表示這個是網絡接口程序"s"是socket的縮寫。該程序在運行過程當中會打開一個網絡接口。
其餘UNIX類系統如FreeBSD中還有t權限,表示一個臨時(temporary)文件
#ls -l /tmp能夠看到這樣的權限:drwxrwxrwt 它的最後一位是字母"t"
第2字段:文件硬連接數
-rw-r--r-- 1 root root 762 07-29 18:19 exit
若是一個文件不是目錄,此時這一字段表示這個文件所具備的硬連接數,
第2字段的值爲1,說明這個文件只有exit這一個文件名。即只有一個指向該連接的硬連接。。
若是使用ln,作一個指向該文件的硬連接再查看該文件,該文件的第2字段就會變成2
此時exit 和aexit稱爲互爲硬連接。他們指向同一個文件,不管是修改哪個文件,另外一個裏也作相應的變化,由於實際上他們指向同一個文件(即同一文件的不一樣文件名)
互爲硬連接的文件具備相同的文件節點。
能夠看出,這兩個文件具備相同的文件節點號:162302
能夠設置符號連接(軟連接),格式以下
Ln –s 源文件 目標連接文件
注意:軟連接時文件節點號不同;
若是知道一個文件有多個文件名(連接文件)如何查找他的其餘文件名分佈在什麼地方呢?
能夠先用ls -i 得到它的節點號,而後用find查找,如/etc/sysconfig/networking/ifcfg-eth0就具備多個文件名,要查找與它互爲硬連接的文件
獲得它的節點號爲 452946
再用find查找:
這樣就獲得了同一個文件的不一樣文件名的位置。
第2字段: 連接佔用的節點
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
該字段文件佔用一個節點,屬於軟連接(符號連接)
若是是一個目錄,則第2字段表示該目錄所含子目錄的個數。
新建一個空目錄,這個目錄的第二字段就是2,表示該目錄下有兩個子目錄。爲何新建的目錄下面會有兩個子目錄呢?
由於每個目錄都有一個指向它自己的子目錄"。" 和指向它上級目錄的子目錄"。。",這兩個默認子目錄是隱藏的。ls -a能夠看到
每次在目錄下新建一個子目錄,該目錄第2字段的值就增1,可是新建一個普通文件該字段值不增長。
第3字段:文件(目錄)擁有者
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
該字段表示此文件是屬 於哪一個用戶。linux類系統都是多用戶系統,每一個文件都有它的擁有者。只有文件的擁有者才具備改動文件屬性的權利。固然, root用戶具備改動任何文件屬性的權利。對於一個目錄來講,只有擁有該目錄的用戶,或者具備寫權限的用戶纔有在目錄下建立文件的權利
若是某一個用戶由於某種緣由,被刪除,而該用戶的文件還存在,那麼用ls -l 查看該文件將顯示一個表明用戶存在前ID號的數字。
先建立一個用戶test,將其加入wang用戶組,並用su切換,使用ls –l查看文件擁有者,隨即刪除用戶test,用root進入test家目錄,查看剛剛建立的文件testing。
能夠看到,第三字段成了一個數字,這個數字是原test用戶的ID號。由於文件系統對每一個文件記錄文件全部者的ID,而非用戶名。
第4字段:文件(目錄)擁有者所在的組
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
一個用戶能夠加入不少個組,可是其中有一個是主組,就是顯示在第4字段的名稱。
能夠在useradd的時候用-g指定該用戶所在的主組,用-G指定其餘組
格式以下:Useradd –g 組名 用戶名
第5字段: 文件所佔用的空間(以字節爲單位)
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
第5字段表示文件大小,若是是一個文件夾(目錄),則表示該文件夾的大小。請注意是文件夾自己的大小,而不是文件夾以及它下面的文件的總大小。
不少人不能理解文件夾是一個特殊的文件的含義,這樣的話理解文件夾大小的含義就比較困難了。
第6字段:文件(目錄)最近訪問(修改)時間
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
文件建立的時間能夠經過touch命令來修改。如:
[root@localhost ~]# touch exit
能夠把exit的建立時間修改成當前時間,另外,一個文件還有最後訪問時間,最後修改時間等屬性。
這些屬性能夠用ls 的其它參數顯示出來。
第7字段:文件名
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
若是是一個符號連接,那麼會有一個 「->" 箭頭符號,後面根一個它指向的文件名