認識 Linux 檔案屬性及檔案配置
最近更新日期:2001/09/02
Linux 檔案屬性
Linux 檔案配置
需要注意的目錄
一般主機可能會分配的磁碟情況
問題討論


Linux 檔案屬性:
認識檔案

如果您已經安裝好了 Linux ,並且已經以 root 的身份登入了這架主機,那接下來要做些啥?我想,你應該先試著瞭解一下 Linux 的主要檔案屬性,以免不小心砍了一些重要的檔案,或者當以一般使用者身份登入時,產生無法進入一些沒有權限之目錄的情況!

首先,進入 Linux 之後,你可以如下輸入一個可以觀看檔案屬性的指令: ls  -al
 
[root @tsai root]# ls -al
-rw-r--r--   1 root     root         1422 Jun 18 17:20 .Xdefaults
-rw-r--r--   1 root     root           24 Jun 18 17:20 .bash_logout
-rw-r--r--   1 root     root          230 Jun 18 17:20 .bash_profile
-rw-r--r--   1 root     root          124 Jun 18 17:20 .bashrc
drwxr-xr-x   3 root     root         4096 Jun 18 17:20 .kde
-rw-r--r--   1 root     root          435 Jun 18 17:20 .kderc
-rw-r--r--   1 root     root         3394 Jun 18 17:20 .screenrc
drwxr-xr-x   5 root     root         4096 Jun 18 17:20 Desktop
lrwxrxwrwx  1 root     root           10 Jun 18 17:21 link_file -> /home/vbird/test
-rw-rw-rw-   1 root     root          238 Jun 18 17:22 test.txt

第一欄      二  三       四            五      六        七 
[檔案屬性][檔案數][擁有者][所有者群組][大小][建檔日期][檔名]

ls 是『list』的意思,而參數『-al』則表示列出所有的檔案(包含隱藏檔)。如上所示,在你第一次登入 Linux 時,如果你輸入指令後,應該有上列的幾個東西,先解釋一下上面七個欄位個別的意思:

  1. 第一欄代表這個檔案的屬性,仔細看的話,你應該可以發現這一欄其實共有十個屬性,第一個屬性代表這個檔案是『目錄、檔案或連結檔』當為[d]則是目錄;為[-]則是檔案,若是[l]則表示為連結檔(link file)。接下來的屬性中,三個為一組,且均為『rwx』的三個參數的組合。其中,[r]代表可讀、[w]代表可寫、[x]代表可執行,而第一組為『所有人的權限』、第二組為『同群組的權限』、第三組為『其他非本群組的權限』,若有一個檔案的屬性為『-rwxr-xr--』,簡單的可由下面說明之:

  2.  
    [-][rwx][r-x][r--]
     1  234  567  890
         1 為:代表這個檔名為目錄或檔案(上面為檔案)
        234為:擁有人的權限(上面為可讀、可寫、可執行)
        567為:同群組使用者權限(上面為可讀可執行)
        890為:其他使用者權限(上面為僅可讀)

    上面的情況代表一個檔案、這個檔案的擁有人可讀可寫可執行、但同群組的人僅可讀與執行,非同群組的使用者僅可讀的意思!
     

  3. 第二欄表示有多少檔案在這個目錄(若為1則通常為檔案);

  4.  
  5. 第三欄表示這個檔案(或目錄)的『擁有人』;

  6.  
  7. 第四欄表示擁有人的群組;

  8. 這裡解釋一下,在 Linux 中,你的 ID (如 root 或 vbird 等帳號均是 ID)即是你的身份,而且你還有附屬在一個群組之下,例如你有一個團體(即群組)代號為 bird,且這個群體裡有四個人,其代號分別是 bird1, bird2, bird3, bird4,則這四個人為同一群組即 bird!若看上面的情況,則代表所有人為 root 且群組為 root (群組與所有人名稱可以相同)
     
  9. 第五欄為這個檔案的大小;

  10.  
  11. 第六欄為這個檔案的建檔日期,分別為月份、日期及時間;

  12.  
  13. 第七欄為這個檔案的檔名,如果檔名之前多一個『 . 』,則代表這個檔案為『隱藏檔』,例如上表第二行的『.Xdefaults』檔名即是隱藏檔,由於我們有下一個參數為 ls -al,所以連隱藏檔都列出來,如果你只輸入 ls 則檔名有加『 . 』的檔案就不會被顯示出來!
舉個例子來說,如果有下面的兩個檔案:
 
-rw-r--r--   1 root     root          238 Jun 18 17:22 test.txt
-rwxr-xr--   1 bird1    bird         5238 Jun 19 10:25 ping_tsai

則檔案『 test.txt 』只有 root 可以讀寫,其他人僅可以讀;而另一個檔案『 ping_tsai 』所有人 bird1 可讀可寫可執行,而 bird2, bird3, bird4 這三個與 bird1 同樣是 bird 群組的僅可讀可執行但不能寫(亦即不能修改),至於非 bird 這一個群組的人則僅可以讀,不能寫也不能執行!

連結檔

另一個比較有趣的檔案是連結檔。如果你常常將應用程式捉到桌面來的話,你就應該知道在 Windows 底下有所謂的『捷徑』,你可以將 linux 下的連結檔簡單的視為一個檔案或目錄的捷徑。但是基本上這兩個東西是不一樣的!在 Windows 系統的捷徑中,你將無法修改主程式,但是在 Linux 中,連結檔可以直接連結到主程式,因此你只要改了這個連結檔,則主程式亦被改變了!

一些檔案的分別

通常在 Linux 底下會有顏色來顯示每一種檔案型態,主要有底下幾種檔案型態:



Linux 檔案配置:
如果你是以系統管理員(root)的身份登入這部 Linux 機器,則你的路徑應該是在  [root@tsai root]# 底下,這時你可以輸入:
[root @tsai root]#  cd ..
會回到根目錄『/』下,再輸入剛剛學過的指令『ls  -al』則會看到如下的畫面:
 
[root@tsai /]$ ls -al
total 117
drwxr-xr-x   2 root     root         4096 May 10 06:50 bin
drwxr-xr-x   3 root     root         1024 Mar 16 18:37 boot
drwxr-xr-x   7 root     root        36864 Jul  8 04:02 dev
drwxr-xr-x  42 root     root         4096 Jul  9 15:21 etc
drwxr-xr-x  35 root     root         4096 Jul  9 15:20 home
drwxr-xr-x   4 root     root         4096 Jan 29 22:55 lib
drwxr-xr-x   2 root     root        16384 Jan 29 22:52 lost+found
drwxr-xr-x   6 root     root         4096 Mar 27 19:10 mnt
drwxr-xr-x   2 root     root         4096 Aug 24  1999 opt
dr-xr-xr-x  60 root     root            0 Jul  1 12:52 proc
drwxr-x---  12 root     root         4096 Jun  7 14:21 root
drwxr-xr-x   3 root     root         4096 May 10 06:50 sbin
drwxrwxrwt   6 root     root         4096 Jul 11 01:04 tmp
drwxr-xr-x  23 root     root         4096 Sep 16  2000 usr
drwxr-xr-x  23 root     root         4096 Jan 29 17:11 var
drwxr-xr-x   6 root     root         4096 Jan  1  1970 win98se
要說明的是,這裡的目錄為 RedHat 6.1 的配置,在 RedHat 7.0 中有稍做改變,但其實也是差不多的!底下針對上面幾個路徑來做說明:


需要注意的目錄
在 Linux 系統中,有幾個目錄是特別需要注意的,以下提供幾個需要注意的目錄,以及預設相關的用途:


一般主機可能會分配的磁碟情況
通常一般的大型主機都不會將所有的資料放置在一個磁碟中(就是只有一個『 / 』根目錄),這有幾個目的:
  1. 安全性考量:你的系統通常是在 /usr/ 中,而資料庫則可能放置在 /home 當中,至於一些開機資料則放置在 /etc 當中。如果將所有的資料放在一起,當你的系統不小心被駭客破壞,或者不小心自己砍了一個小東西,則所有的咚咚也都跟著不見了.....這對於我們市井小民或許無所謂,再安裝一次就好了,但是對於一些大型企業可不行這樣!因此需要將資料分別放置於不同的磁碟中,會比較保險些。
  2. 便利性:如果你需要升級你的系統的話,是否需要重新 format 安裝呢?有些資料例如 /home 裡面的資料為個人用戶的資料,似乎與系統無關!所以如果你將這些資料分別放置於不同的磁碟,則你要升級或者進行一些系統更動時,將比較有彈性。
你或許可以將你的系統做成這樣的分佈: 這是比較常見的磁碟分佈情況,其中,
  1. / 根目錄可以分配約 256 MB 以內;
  2. /boot 大概在 50 MB 就可以了,因為開機檔案並不大;
  3.  /var 就至少需要 1GB 以上,因為你的 mail 、 proxy 預設的儲存區都在這個目錄中,除非你要將一些設定改變!
  4. /home /usr 通常是最大的,因為你所安裝的資料都是在 /usr/ 當中,而用戶資料則放置在 /home 當中,因此通常書上都會建議你將所剩下的磁碟空間平均分配給這兩個目錄說!
2002/ 01/01以來統計人數


本章問題討論:
  1. Q:Xwindows 的設定檔為 XF86Config,請問這個檔案在 RedHad 的哪裡?

  2. A
    這個檔案放置在 /etc/X11 底下,通常我們在設定 X-Windows 時,比較喜歡用 Xconfigurator 來做簡單的設定,也可以使用 XF86Setup 來做設定;
     
  3. 等待加入新討論: