檢視 Linux 的原始碼
←
Linux
跳轉到:
導覽
、
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
您剛才的請求只有這個使用者組的使用者才能使用:
使用者
你可以檢視並複製本頁面的原始碼。
[[分類:作業系統]] ==ls -l== <pre>總計 152 -rw-r--r-- 1 root root 2915 08-03 06:16 a -rw------- 1 root root 1086 07-29 18:35 anaconda-ks.cfg</pre> 第1行:總計(total) Total後面的數字是指當前目錄下所有檔案所佔用的空間總和。使用ls –lh可查看,也可使用ls –alh查看 ===每節點列表說明:=== <pre>-rw-r--r-- 1 root root 762 07-29 18:19 exit</pre> ====第1字段:檔案屬性字段==== 共由四組 4bit 構成,用10個字母組成。 *第一個字符表示 inode 類型,由第一組 4bit 構成,第一bit代表檔案,第二bit代表目錄,第三bit代表設備,第四bit代表命名管道: *#「1000」,8,-表示該檔案是一個普通檔案 *#「1100」,12,s表示該檔案為sock檔案。與shell編程有關的檔案 *#「1010」,10,l表示該檔案是一個連接檔案。字母"l"是link(連接)的縮寫,類似於windows下的捷徑方式 *#「0100」,4,d表示該檔案是一個目錄,字母"d",是dirtectory(目錄)的縮寫 *#「0110」,6,b的表示塊設備檔案(block),一般置於/dev目錄下,設備檔案是普通檔案和程序訪問硬件設備的入口,是很特殊的檔案。沒有檔案大小,只有一個主設備號和一個輔設備號。一次傳輸數據為一整塊的被稱為塊設備,如硬盤、光盤等。最小數據傳輸單位為一個數據塊(通常一個數據塊的大小為512字節) *#「0010」,2,c表示該檔案是一個字符設備檔案(character),一般置於/dev目錄下,一次傳輸一個字節的設備被稱為字符設備,如鍵盤、字符終端等,傳輸數據的最小單位為一個字節 *#「0001」,1,p(FIFO pipe)表示該檔案為命令管道檔案。與shell編程有關的檔案 *:連接檔案分為硬連接或符號連接兩種。 *:#硬連接:多個指向同一檔案。硬連接檔案大小完全相同,如有多個硬連接,所連接的檔案只是一個檔案大小。<br/>同一個檔案所有的硬連接都是等價的,作業系統不區分硬連接創建的先後順序,若一個檔案存在兩個硬連接,那麼除去一個,檔案還可以通過另外一個連接來訪問該檔案,也可以除去創建連接時用到的檔案,但只要還有一個連接存在,就可通過該連接訪問檔案。 *:#符號連接(軟連接):建立一個獨立的檔案,這個檔案會讓數據的讀取指向它連接的檔案內容。類似windows的捷徑。 *第1字段後9個字母表示該檔案或目錄的權限位。共 12bit 分成四段,每段 3bit 。 *#第一組 3bit ,對應到擁有者、群組、其他用戶的第三個字母,設置與對應字母如下: *#:SUID SGID sticky 二進制 八進制 說明 *#:- - - 000 0 不設置特殊權限 *#:- - t 001 1 只設置sticky *#:- s - 010 2 只設置SGID *#:- s t 011 3 只設置SGID和sticky *#:s - - 100 4 只設置SUID *#:s - t 101 5 只設置SUID和sticky *#:s s - 110 6 只設置SUID和SGID *#:s s t 111 7 設置三種特殊權限 *#第二組 3bit 表示檔案擁有者的權限,r表示讀(Read,4)、w表示寫(Write,2)、x表示執行(eXecute,1)。 *#第三組 3bit 表示檔案所屬群組擁有的權限,r表示讀(Read,4)、w表示寫(Write,2)、x表示執行(eXecute,1)。 *#第四組 3bit 表示其他用戶擁有的權限,r表示讀(Read,4)、w表示寫(Write,2)、x表示執行(eXecute,1)。 SUID和GUID解析:數值寫在最左一位 sticky:1;GUID:2;SUID:4 4777即rwsrwxrwx。6777即rwsrwsrwx ====第2字段:檔案硬連接數==== <pre>-rw-r--r-- 1 root root 762 07-29 18:19 exit</pre> 如果一個節點不是目錄,此時這一字段表示這個檔案所具有的硬連接數 第2字段的值為1,說明檔案exit只有exit這一個檔案名。即只有一個指向該連接的硬連接。 如果使用ln,做一個指向該檔案的硬連接再查看該檔案,該檔案的第2字段就會變成2 <pre>[root@localhost ~]# ln exit aexit [root@localhost ~]# ls -l 總計 160 -rw-r--r-- 2 root root 762 07-29 18:19 aexit -rw-r--r-- 2 root root 762 07-29 18:19 exit</pre> 此時exit和aexit互為硬連接。同指向一個檔案,無論是修改哪一個檔案,另一個裡也做相應的變化,即同一檔案的不同檔案名。 互為硬連接的檔案具有相同的檔案節點。 <pre>[root@localhost ~]# ls -i aexit exit 162302 aexit 162302 exit</pre> 軟連接設置語法: <pre>Ln –s 源檔案 目標連接檔案</pre> <pre># ln -s exit bexit # ls -l lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit -rw-r--r-- 1 root root 762 07-29 18:19 exit</pre> 注意:軟連接時檔案節點號不一樣; <pre>[root@localhost ~]# ls -i bexit exit 161765 bexit 162302 exit</pre> 如果知道一個檔案有多個檔案名(連接檔案)如何查找他的其他檔案名的路徑? 使用ls -i 獲得其節點號,find查找。 <pre>[root@localhost ~]# ls -i /etc/sysconfig/network-scripts/ifcfg-eth0 452946 /etc/sysconfig/network-scripts/ifcfg-eth0 #節點號為 452946 [root@localhost ~]# find /etc -inum 452946 /etc/sysconfig/network-scripts/ifcfg-eth0</pre> ====第2字段:連接佔用的節點數==== <pre>lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit</pre> 該字段檔案佔用一個節點,屬於軟連接(符號連接) 如果是目錄,則第2字段表示該目錄所含子目錄的個數 新建空目錄,此目錄的第二字段就是2,表示該目錄下有兩個子目錄。 因為每一個目錄都有一個指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",此預設子目錄是隱藏的。 每次在目錄下新建一個子目錄,該目錄第2字段的值就增1,但是新建一個普通檔案該字段值不增加。 ====第3字段:檔案(目錄)擁有者==== <pre>lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit</pre> 該字段表示該檔案擁有者是誰。只有檔案的擁有者才具有改動檔案屬性的權利。root具有改動任何檔案屬性的權利。對於目錄,只有擁有該目錄的用戶,或者具有寫權限的用戶才有在目錄下創建檔案的權利。 如果某一用戶被刪除,而該用戶家目錄還存在,ls -l 查看該檔案將顯示一個代表用戶存在前ID號的數字。 創建用戶test,將其加入wang用戶組,su切換: <pre>[root@localhost ~]# useradd test [root@localhost ~]# usermod -g wang test #創建用戶test,並將其加入到用戶組wang中 [root@localhost ~]# su test [test@localhost root]$ cd /home/test [test@localhost ~]$ touch testing [test@localhost ~]$ ls -l testing -rw-r--r-- 1 test wang 0 08-03 18:02 testing #最後用ls -l 看到第三字段的檔案擁有者為test [test@localhost ~]$ su root [root@localhost ~]# userdel test #刪除用戶test [root@localhost ~]# cd /home/test #進入test的家目錄,查看剛剛創建的檔案testing。 [root@localhost test]# ls -l 總計 4 -rw-r--r-- 1 504 wang 0 08-03 18:02 testing</pre> 第三字段變成數字,此數字是原用戶test的ID號。因為檔案系統對每個檔案記錄檔案所有者的ID,而非用戶名。 ====第4字段:檔案(目錄)擁有者所在的群組==== <pre>lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit</pre> 一個用戶可以加入很多個群組,但是其中有一個是主群組,就是顯示在第4字段的名稱。 useradd -g指定該用戶所在的主群組,-G指定其他群組 Useradd –g 群組名 用戶名 ====第5字段:檔案所佔用的空間(以字節為單位)==== <pre>lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit</pre> 第5字段表示檔案大小,如果是目錄,表示該目錄大小。注意是目錄本身大小,而非目錄及其下面的檔案的總大小。 ====第6字段:檔案(目錄)最近訪問(修改)時間==== <pre>lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit</pre> 可通過touch修改創建時間: <pre># touch exit</pre> 把exit創建時間修改當前時間,檔案還有最後訪問時間,最後修改時間等屬性。 可以用ls其它參數顯示出來。 ====第7字段:檔案名==== <pre>lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit</pre> 如果是符號連接,會有"->"符號,跟著它指向的檔案名
返回到
Linux
。
導航
個人工具
登入
名字空間
頁面
討論
變換
檢視
閱讀
檢視原始碼
檢視歷史
動作
搜尋
導覽
首頁
近期變動
隨機頁面
使用說明
工具箱
連入頁面
相關頁面修訂記錄
特殊頁面
頁面資訊