認識 Linux 檔案屬性及檔案配置
2024-07-21 02:36:02
供稿:網友
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--』,簡單的可由下面說明之:
[-][rwx][r-x][r--] 1 234 567 890 1 為:代表這個檔名為目錄或檔案(上面為檔案) 234為:擁有人的權限(上面為可讀、可寫、可執行) 567為:同群組使用者權限(上面為可讀可執行) 890為:其他使用者權限(上面為僅可讀)
2.上面的情況代表一個檔案、這個檔案的擁有人可讀可寫可執行、但同群組的人僅可讀與執行,非同群組的使用者僅可讀的意思!
3.第二欄表示有多少檔案在這個目錄(若為1則通常為檔案);
4.第三欄表示這個檔案(或目錄)的『擁有人』;
5.第四欄表示擁有人的群組;
這里解釋一下,在 Linux 中,你的 ID (如 root 或 vbird 等帳號均是 ID)即是你的身份,而且你還有附屬在一個群組之下,例如你有一個團體(即群組)代號為 bird,且這個群體里有四個人,其代號分別是 bird1, bird2, bird3, bird4,則這四個人為同一群組即 bird!若看上面的情況,則代表所有人為 root 且群組為 root (群組與所有人名稱可以相同)
6.第五欄為這個檔案的大小;
7.第六欄為這個檔案的建檔日期,分別為月份、日期及時間;
8.第七欄為這個檔案的檔名,假如檔名之前多一個『 . 』,則代表這個檔案為『隱藏檔』,例如上表第二行的『.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 底下會有顏色來顯示每一種檔案型態,主要有底下幾種檔案型態:
·一般檔案:檔案的第一個屬性顯示 - ;
·目錄: 假如你只輸入 ls -l 來察看檔案的時候,可以看到檔案第一個屬性為 d;
·可執行檔:可以看到檔案屬性會有 x 這個屬性;
·壓縮檔:基本上,只要檔案是 .Z .z .gz .zip .tgz 都是壓縮檔喔!
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 中有稍做改變,但其實也是差不多的!底下針對上面幾個路徑來做說明:
·/bin :這是放例如: ls, mv, rm, mkdir, rmdir, gzip, tar, telnet, 及 FTP 等等常用的執行檔的地方(這些執行檔的執行方法會在后面提到),而通常這個檔案的內容與 /usr/bin 是一樣的(有時候甚至會使用連結檔哩);
·/boot :記得我們在之前的 多重開機設定 那一部份有提到你的開機檔所在位置吧!沒錯,這里就是放置你 Linux 核心與開機相關檔案的地方
·/dev :擺放一些與裝置有關的檔案。
基本上 Unix 或 Linux 系統均把裝置當成是一個檔案來看待,例如 /dev/fd0 代表軟碟,亦即 Windows 系統下的 A 槽,而 /dev/cdrom 則代表光碟,等等!
·/etc :系統在開機過程中需要讀取的檔案均在這個目錄中,例如 Lilo 的參數、人員的帳號與密碼、系統的主要設定、http 架站的參數內容、你所要開啟的服務項目等等都在這個目錄中,所以在這個目錄下工作的時候,請記得一定要備份,否則檔案被改掉了可是很麻煩的!
·/etc/rc.d :這個路徑主要在記錄一些開關機過程中的 scripts 檔案, scripts 有點像是 DOS 下的批次檔(.bat檔名);
·/etc/xinetd.d :這個路徑在 RedHat 7.0 以后的版本才有,由于 RedHat 6.1 用來開啟服務的檔案是 inetd.conf ,但是在 7.0 以后的版本中,開啟服務的項目已經變成使用 xinetd.conf 這個檔案,因此,你若需要啟動一些額外的服務的話,在 7.0 以后就要到 /etc/xinetd.d 這個目錄下了;
·/etc/X11 :這是與 X windows 有關的設定檔;
·/home :基本上,這是系統預設的使用者的家目錄( home Directory ),另外,在 RedHat 6.1 版中,httpd及 ftp 等程式的家目錄也在這個目錄下!
·/lib :在 Linux 執行或編譯核心的時候,均會使用到一些函式庫(library),就在這個目錄下;
·/lost+fount :系統不正常產生錯誤時,會將一些遺失的片段放置于此目錄下,通常這個目錄會自動出現在裝置目錄下。例如你加裝一棵硬碟于 /disk 中,那在這個目錄下就會自動產生一個這樣的目錄 /disk/lost+found,這是砍不掉的目錄喔;
·/mnt :這是軟碟與光碟接掛點的地方;通常軟碟掛在 /mnt/floppy 下,而光碟掛在 /mnt/cdrom 下;
·/proc :系統核心與執行程序的一些資訊;
·/root :系統治理員的家目錄;
·/sbin :放置一些系統治理常用的程式,例如: fdisk, mke2fs, fsck, mkswap, mount 等等;
·/tmp :這是讓一般使用者暫時存放檔案的地方,例如你在安裝 Linux 下的軟體時,可能軟體預設的工作目錄就是 /tmp ,所以你要定期的清理一下,當然,重要資料最好不要放在這里!
·/usr :這是最重要的一個目錄了,里面含有相當多的系統資訊,內有許多目錄,用來存放程式與指令;
·/usr/bin :放置可執行程式,如前所說,這個目