CentOS(七)--Linux文件類型及目錄配置


這篇隨筆將會對Linux系統的文件類型以及Linux的目錄結構進行詳細補充(linux中目錄管理和權限非常重要,特別是在linux安裝數據庫類軟件)。

一、Linux更改文件權限的兩種方式

在之前的一篇隨筆里面已經詳細講解了在Linux系統下更改文件權限的一種方式。Linux 文件的基本屬性就有九個,分別是 owner/group/others 組別的 read/write/execute 屬性,  -rwxrwxrwx   這9個屬性中3個位一組,其中可以使用數字來表示各個屬性:

復制代碼
r:4
w:2
x:1

同一組 (owner/group/others) 的三個屬性 (r/w/x) 是需要累加的,例如當屬性為 [-rwxrwx---] 則是:
owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0
復制代碼

因此我們如果要更改一個文件的權限時可以使用這種數字的方式,例如:

復制代碼
[root@xiaoluo home]# touch test.txt
[root@xiaoluo home]# ls -l
-rw-r--r--.  1 root    root            0 4月  20 19:47 test.txt

我們可以看到我們剛創建的這個test.txt文件其權限分別是 owner=rw、group=r、other=r , 如果我們需要將其權限更改成 owner=rwx、group=rw-、other=rw-
此時我們可以輸入下面命令進行修改

[root@xiaoluo home]# chmod 766 test.txt
[root@xiaoluo home]# ls -l
-rwxrw-rw-.  1 root    root            0 4月  20 19:47 test.txt
這時我們發現該文件權限就變成了我們剛需要的了 owner=rwx、group=rw-、other=rw-
復制代碼

上面的這種方式來修改文件的權限比較簡單,但是如果不知道r、w、x這三個權限所對應的數字所代表的含義,估計就有點難理解了,所以這里再補充一個改變文件權限的另一種方法——通過符號類型來改變文件權限

在上面的介紹中,我們知道文件共有9個屬性,基本上就9個屬性分別是(1)user (2)group (3)others 這3各組!那么我們可以通過 u, g, o 來代表這3各組的屬性!此外, a 則代表 all 亦即全部的3個組!那么讀寫的屬性就可以寫成了 r, w, x !

chmod

u

g

o

a

+(加入)

-(除去)

=(設定)

r

w

x

檔案或目錄

 假如我們要改變一個文件的屬性為【-rwxr-xr-x】時,基本上就是:

  • user (u):具有可讀、可寫、可執行的權限; u=rwx
  • group 與 others (g/o):具有可讀與執行的權限。 go=rx
[root@xiaoluo home]# chmod u=rwx,go=rx test.txt
[root@xiaoluo home]# ls -l

-rwxr-xr-x.  1 root    root            0 4月  20 19:47 test.txt

我們看到通過這樣的方式也可以來更改一個文件的權限。【: 第一行命令的 u=rwx,go=rx 中間那里是沒有空格的】

如果我們事先不知道原先文件的屬性,但又想增加test.txt文件的每個人都可以寫入的權限,我們可以這樣做:

[root@xiaoluo home]# chmod a+w test.txt
[root@xiaoluo home]# ls -l

-rwxrwxrwx.  1 root    root            0 4月  20 19:47 test.txt

同樣如果我們希望取消所有用戶對該文件的可執行權限,就可以使用下面這方法:

[root@xiaoluo home]# chmod a-x test.txt
[root@xiaoluo home]# ls -l

-rw-rw-rw-.  1 root    root            0 4月  20 19:47 test.txt

上面介紹了兩種改變文件權限的兩種方法,我更傾向於第一種方式的修改,大家可以根據自己的喜好來選擇相應的方式進行對文件權限的修改

二、Linux文件類型與擴展名

在Linux系統中,任何硬件設備或者其他設備都是以文件的形式存在,就連數據通信的接口這些也是由專門的文件來負責的,因此Linux的文件種類就非常多,出了之前我們常見的 - 或者 d 表示一般文件與目錄文件之外,還有哪些種類的文件呢?

1.文件種類

我們使用 ls -l 這個命令時,可以觀察到第一欄那十個字符中,第一個字符為文件的類型。 除了常見的一般文件(-)與目錄文件(d)之外,還有哪些種類的文件類型呢?

  • 普通文件(regular file ): 就是一般我們在進行存取的類型的文件,在由 ls -al 所顯示出來的屬性方面,第一個字符為 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的內容,又大略可以分為:
    • 純文本檔(ASCII):這是Linux系統中最多的一種文件類型, 稱為純文本檔是因為內容為我們人類可以直接讀到的數據,例如數字、字母等等。 幾乎只要我們可以用來做為設定的文件都屬於這一種文件類型。 舉例來說,你可以下達『 cat ~/.bashrc 』就可以看到該文件的內容。 (cat 是將一個文件內容讀出來的指令)
    • 二進制文件(binary):,我們的系統其實僅認識且可以執行二進制文件(binary file) 在Linux當中的可執行文件(scripts, 文字型批處理文件不算)就是這種格式的 舉例來說,我們經常使用的 cat 命令就是一個binary file。
    • 數據格式文件(data): 有些程序在運作的過程當中會讀取某些特定格式的文件,那些特定格式的文件可以被稱為數據文件 (data file)。舉例來說,我們的Linux在使用者登入時,都會將登錄的數據記錄在 /var/log/wtmp那個文件內,該文件是一個data file,他能夠透過last這個指令讀出來! 但是使用cat時,會讀出亂碼 因為它是屬於一種特殊格式的文件。
  • 目錄(directory): 就是目錄 第一個屬性為 [ d ],例如 [drwxrwxrwx]。
  • 連接文件(link): 就是類似Windows系統底下的快捷方式! 第一個屬性為 [ l ](英文L的小寫),例如 [lrwxrwxrwx] ;
  • 設備與裝置文件(device): 與系統周邊及儲存等相關的一些文件, 通常都集中在/dev這個目錄之下!通常又分為兩種:
    • 區塊(block)設備檔 :就是一些儲存數據, 以提供系統隨機存取的接口設備,舉例來說,硬盤與軟盤等就是! 你可以隨機的在硬盤的不同區塊讀寫,這種裝置就是成組設備!你可以自行查一下/dev/sda看看, 會發現第一個屬性為[ b ]!
    • 字符(character)設備文件:亦即是一些串行端口的接口設備, 例如鍵盤、鼠標等等!這些設備的特色就是『一次性讀取』的,不能夠截斷輸出。 舉例來說,你不可能讓鼠標『跳到』另一個畫面,而是『滑動』到另一個地方啊!第一個屬性為 [ c ]。
  • 數據接口文件(sockets): 既然被稱為數據接口文件, 想當然,這種類型的文件通常被用在網絡上的數據承接了。我們可以啟動一個程序來監聽客戶端的要求, 而客戶端就可以透過這個socket來進行數據的溝通了。第一個屬性為 [ s ], 最常在/var/run這個目錄中看到這種文件類型了。
  • 數據輸送文件(FIFO, pipe): FIFO也是一種特殊的文件類型,他主要的目的在解決多個程序同時存取一個文件所造成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性為[p] 。

除了設備文件是我們系統中很重要的文件,最好不要隨意修改之外(通常只有root用戶才可以修改!), 另一個比較有趣的文件就是連結文件。如果你常常將應用程序捉到桌面來的話,你就應該知道在 Windows底下有所謂的『快捷方式』。同樣的,你可以將 linux下的連結檔簡單的視為一個文件或目錄的快捷方式。 至於socket與FIFO文件比較難理解,因為這兩個玩意與程序(process)比較有關系, 這個等到后面學習到時再研究!此外, 你也可以透過man fifo及man socket來查閱系統上的說明!

2.Linux文件擴展名:

基本上,Linux的文件是沒有所謂的『擴展名』的,一個Linux文件能不能被執行,與他的第一欄的十個屬性有關, 與檔名根本一點關系也沒有。這個觀念跟Windows的情況不相同喔!在Windows底下, 能被執行的文件擴展名通常是 .exe .bat等等,而在Linux底下,只要你的權限當中具有x的話,例如[ -rwx-r-xr-x ] 即代表這個文件可以被執行喔!

不過,可以被執行跟可以執行成功是不一樣的~舉例來說,在root家目錄下的install.log 是一個純文本檔,如果經由修改權限成為 -rwxrwxrwx 后,這個文件能夠真的執行成功嗎? 當然不行~因為他的內容根本就沒有可以執行的數據。所以說,這個x代表這個文件具有可執行的能力, 但是能不能執行成功,當然就得要看該文件的內容

雖然如此,不過我們仍然希望可以藉由擴展名來了解該文件是什么東西,所以, 通常我們還是會以適當的擴展名來表示該文件是什么種類的。底下有數種常用的擴展名:

  • *.sh : 腳本或批處理文件 (scripts),因為批處理文件為使用shell寫成的,所以擴展名就編成 .sh ;
  • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 經過打包的壓縮文件。這是因為壓縮軟件分別為 gunzip, tar 等等的,由於不同的壓縮軟件,而取其相關的擴展名!
  • *.html, *.php:網頁相關文件,分別代表 HTML 語法與 PHP 語法的網頁文件! .html 的文件可使用網頁瀏覽器來直接開啟,至於 .php 的文件, 則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運算后的網頁結果!

基本上,Linux系統上的文件名真的只是讓你了解該文件可能的用途而已, 真正的執行與否仍然需要權限的規范才行!例如雖然有一個文件為可執行文件, 如常見的/bin/ls這個顯示文件屬性的指令,不過,如果這個文件的權限被修改成無法執行時, 那么ls就變成不能執行!

3.Linux文件長度與文件名的限制

在Linux底下,使用預設的Ext2/Ext3文件系統時,針對文件的檔名長度限制為:

  • 單一文件或目錄的最大容許文件名為 255 個字符;
  • 包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個字符。

由於Linux在文字接口下的一些指令操作關系,一般來說,你在設定Linux底下的文件名時, 最好可以避免一些特殊字符比較好!例如底下這些:

* ? > < ; & ! [ ] | \ ' " ` ( ) { }

因為這些符號在文字接口下,是有特殊意義的!另外,文件名的開頭為小數點『.』時, 代表這個文件為『隱藏文件』!同時,由於指令下達當中,常常會使用到 -option 之類的選項, 所以最好也避免將文件檔名的開頭以 - 或 + 來命名!

三、Linux目錄結構

在之前的一篇隨筆里面就初步的分析了Linux的目錄結構,在Linux系統中,所有的文件與目錄都是由根目錄【/】開始。它是所有目錄與文件的源頭,然后再一個分支下來,有點像樹狀。我們通常稱這種目錄配置方式為: ”目錄樹“(directory tree) 。這個目錄樹的主要特性有:

  • 目錄樹的啟始點為根目錄 (/, root);
  • 每一個目錄不止能使用本地端的 partition 的文件系統,也可以使用網絡上的 filesystem 。舉例來說, 可以利用 Network File System (NFS) 服務器掛載某特定目錄等。
  • 每一個檔案在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。

因為 Linux 的開發者實在太多了,如果每個人都發展出屬於自己的目錄配置方法, 那么將可能會造成很多管理上的困擾。所以,就有一個叫做Filesystem Hierarchy Standard (FHS) 標准的出來了。

這個 FHS ( http://www.pathname.com/fhs/ ) 事實上僅是規范出在根目錄 ( / ) 底下各個主要的目錄應該是要放置什么樣的檔案而已。 FHS 定義出兩層規范出來,第一層是 / 底下的各個目錄應該要放置什么樣內容的檔案數據,例如 /etc 應該要放置配置文件, /bin 與 /sbin 則應該要放置可執行文件等等。第二層則是針對 /usr 及 /var 這兩個目錄的次目錄來定義的。 例如 /var/log 放置系統注冊表檔、 /usr/share 放置共享數據等等。
事實上,FHS是根據過去的經驗一直再持續的改版的,FHS依據文件系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:

  可分享的(shareable) 不可分享的(unshareable)
不變的(static) /usr (軟件放置處) /etc (配置文件)
  /opt (第三方協力軟件) /boot (開機與核心檔)
可變動的(variable) /var/mail (使用者郵件信箱) /var/run (程序相關)
  /var/spool/news (新聞組) /var/lock (程序相關)
  • 可分享的:可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據, 是能夠分享給網絡上其他主機掛載用的目錄;
  • 不可分享的:自己機器上面運作的裝置文件或者是與程序有關的socket文件等, 由於僅與自身機器有關,所以當然就不適合分享給其他主機了。
  • 不變的:有些數據是不會經常變動的,跟隨着distribution而不變動。 例如函式庫、文件說明文件、系統管理員所管理的主機服務配置文件等等;
  • 可變動的:經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等。

此外,根據文件名寫法的不同,也可將所謂的路徑 (path) 定義為絕對路徑 (absolute) 與相對路徑 (relative)。 絕對路徑為:由根目錄 (/) 開始寫起的文件名或目錄名稱, 例如 /home/xiaoluo/.bashrc;相對路徑為相對於目前路徑的文件名寫法。 例如 ./home/xiaoluo 或 http://www.cnblogs.com/home/xiaoluo/ 等等。反正開頭不是 / 就屬於相對路徑的寫法, 而您必須要了解,相對路徑是以【您當前所在路徑的相對位置】來表示的。舉例來說,當前在 /home 這個目錄下, 如果想要進入 /var/log 這個目錄時,就可以采用下面兩種方式來寫:

  • cd /var/log (absolute)
  • cd ../var/log (relative)

因為您在 /home 底下,所以要回到上一層 (../) 之后,才能繼續往 /var 來移動的! 特別注意這兩個特殊的目錄:

  • . :代表當前的目錄,也可以使用 ./ 來表示;
  • .. :代表上一層目錄,也可以 ../ 來代表。

我們可以通過ls -l / 這個命令來看一下【/】根目錄下的目錄配置結構:

復制代碼
[root@xiaoluo home]# ls -l /
總用量 102
dr-xr-xr-x.   2 root root  4096 3月  30 12:00 bin
dr-xr-xr-x.   5 root root  1024 3月  31 21:34 boot
drwxr-xr-x.  10 root root  4096 3月  30 11:20 cgroup
drwxr-xr-x.  19 root root  3800 4月  20 12:58 dev
drwxr-xr-x. 157 root root 12288 4月  20 12:59 etc
drwxr-xr-x.   8 root root  4096 4月  20 20:16 home
dr-xr-xr-x.  14 root root  4096 3月  31 21:28 lib
dr-xr-xr-x.  11 root root 12288 4月   5 20:52 lib64
drwx------.   2 root root 16384 3月  30 10:27 lost+found
drwxr-xr-x.   3 root root  4096 4月  20 12:59 media
drwxr-xr-x.   2 root root     0 4月  20 12:54 misc
drwxr-xr-x.   3 root root  4096 3月  31 21:40 mnt
drwxr-xr-x.   2 root root     0 4月  20 12:54 net
drwxr-xr-x.   3 root root  4096 3月  31 15:28 opt
dr-xr-xr-x. 191 root root     0 4月  20 12:52 proc
dr-xr-x---.  31 root root  4096 4月  19 20:40 root
dr-xr-xr-x.   2 root root 12288 4月   5 12:26 sbin
drwxr-xr-x.   7 root root     0 4月  20 12:52 selinux
drwxr-xr-x.   2 root root  4096 9月  23 2011 srv
drwxr-xr-x.  13 root root     0 4月  20 12:52 sys
drwxrwxrwt.  36 root root  4096 4月  20 13:50 tmp
drwxr-xr-x.  13 root root  4096 3月  30 10:37 usr
drwxr-xr-x.  25 root root  4096 4月   5 20:57 var
復制代碼

現在看到前面那些個屬性我們是不是已經非常熟悉了呢?

如果要以較為完整的樹狀目錄來看,整個Linux系統的樹狀目錄可以用下圖來表示:

我們可以看到,所有的這些目錄都是依附在了【/】根目錄下面,這也就是我們俗稱的"樹狀目錄"。根據FHS定義,每個目錄內應該放置的文件內容應如下所示:

目錄 應放置文件內容
/bin 系統有很多放置執行文件的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。
/boot 這個目錄主要在放置開機會使用到的文件,包括Linux核心文件以及開機選單與開機所需配置文件等等。 Linux kernel常用的檔名為:vmlinuz,如果使用的是grub這個開機管理程序, 則還會存在/boot/grub/這個目錄!
/dev 在Linux系統上,任何裝置與接口設備都是以文件的型態存在於這個目錄當中的。 你只要透過存取這個目錄底下的某個文件,就等於存取某個裝置 比較重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
/etc 系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務的啟始檔等等。一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的, 但是只有root有權力修改。FHS建議不要放置可執行文件(binary)在這個目錄中喔。比較重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有:
  • /etc/init.d/:所有服務的預設啟動 script 都是放在這里的,例如要啟動或者關閉 iptables 的話:『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』
  • /etc/xinetd.d/:這就是所謂的super daemon管理的各項服務的配置文件目錄。
  • /etc/X11/:與 X Window 有關的各種配置文件都在這里,尤其是 xorg.conf 這個 X Server 的配置文件。
/home 這是系統默認的用戶家目錄(home directory)。在你新增一個一般使用者賬號時, 默認的用戶家目錄都會規范到這里來。比較重要的是,家目錄有兩種代號: ~:代表目前這個用戶的家目錄,而 ~xiaoluo :則代表 xiaoluo 的家目錄!
/lib 系統的函式庫非常的多,而/lib放置的則是在開機時會用到的函式庫, 以及在/bin或/sbin底下的指令會呼叫的函式庫而已。 什么是函式庫呢?你可以將他想成是『外掛』,某些指令必須要有這些『外掛』才能夠順利完成程序的執行之意。 尤其重要的是/lib/modules/這個目錄, 因為該目錄會放置核心相關的模塊(驅動程序)!
/media media是『媒體』的英文,顧名思義,這個/media底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD等等裝置都暫時掛載於此。常見的檔名有:/media/floppy, /media/cdrom等等。(我們的光盤鏡像文件通常都是掛載在了media這個目錄下)
/mnt 如果你想要暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中。 在古早時候,這個目錄的用途與/media相同啦!只是有了/media之后,這個目錄就用來暫時掛載用了。
/opt 這個是給第三方協力軟件放置的目錄。什么是第三方協力軟件啊? 舉例來說,KDE這個桌面管理系統是一個獨立的計划,不過他可以安裝到Linux系統中,因此KDE的軟件就建議放置到此目錄下了。 另外,如果妳想要自行安裝額外的軟件(非原本的distribution提供的),那么也能夠將你的軟件安裝到這里來。 不過,以前的Linux系統中,我們還是習慣放置在/usr/local目錄下呢!
/root 系統管理員(root)的家目錄。之所以放在這里,是因為如果進入單人維護模式而僅掛載根目錄時, 該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄放置在同一個分割槽中。
/sbin Linux有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來『設定』系統,其他用戶最多只能用來『查詢』而已。 放在/sbin底下的為開機過程中所需要的,里面包括了開機、修復、還原系統所需要的指令。 至於某些服務器軟件程序,一般則放置到/usr/sbin/當中。至於本機自行安裝的軟件所產生的系統執行文件(system binary), 則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
/srv srv可以視為『service』的縮寫,是一些網絡服務啟動之后,這些服務所需要取用的數據目錄。 常見的服務例如WWW, FTP等等。舉例來說,WWW服務器需要的網頁數據就可以放置在/srv/www/里面。
/tmp 這是讓一般使用者或者是正在執行的程序暫時放置文件的地方。 這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。當然,重要數據不可放置在此目錄啊! 因為FHS甚至建議在開機時,應該要將/tmp下的數據都刪除唷
/lost+found 這個目錄是使用標准的ext2/ext3文件系統格式才會產生的一個目錄,目的在於當文件系統發生錯誤時, 將一些遺失的片段放置到這個目錄下。這個目錄通常會在分割槽的最頂層存在, 例如你加裝一顆硬盤於/disk中,那在這個系統下就會自動產生一個這樣的目錄『/disk/lost+found』
/proc 這個目錄本身是一個『虛擬文件系統(virtual filesystem)』喔!他放置的數據都是在內存當中, 例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的數據都是在內存當中, 所以本身不占任何硬盤空間!比較重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
/sys 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與核心相關的信息。 包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等。這個目錄同樣不占硬盤容量
 usr  由 FHS 規范的第二層內容,在 /usr 此目錄下,包含系統的主要程序、 圖形接口所需要的檔案、額外的函式庫、本機端所自行安裝的軟件,以及共享的目錄與文件等等, 都可以在這個目錄當中發現。事實上,他有點像是 Windows 操作系統當中的『Program files』與 『WinNT』這兩個目錄的結合!在此目錄下的重要次目錄有:
  • /usr/bin, /usr/sbin:一般身份用戶與系統管理員可執行的檔案放置目錄;
  • /usr/include:c/c++等程序語言的檔頭 (header) 與包含檔(include)放置處, 當我們以 tarball 方式 (*.tar.gz 的方式安裝軟件) 安裝某些數據時,會使用到里頭的許多包含檔喔!;
  • /usr/lib:各應用軟件的函式庫檔案放置目錄;
  • /usr/local:本機端自行安裝的軟件默認放置的目錄。目前也適用於 /opt 目錄。 在你安裝完了 Linux 之后,基本上所有的配備你都有了,但是軟件總是可以升級的, 例如你要升級你的 proxy 服務,則通常軟件默認的安裝地方就是在 /usr/local (local 是『當地』的意思),同時,安裝完畢之后所得到的執行文件,為了與系統原先的執行文件有分別, 因此升級后的執行檔通常擺在 /usr/local/bin 這個地方。
  • /usr/share:共享文件放置的目錄,例如底下兩個目錄:
  • /usr/share/doc:放置一些系統說明文件的地方,例如你安裝了 grub 了,那么在該目錄底下找一找,就可以查到 grub 的說明文件了!很是便利!
  • /usr/share/man:manpage 的文件檔案目錄;在使用 man 的時候,會去查詢的路徑!例如你使用 man ls 這個指令時,就會查出 /usr/share/man/man1/ls.1.gz 這個說明檔的內容!
  • /usr/src:Linux 系統相關的程序代碼放置目錄,例如 /usr/src/linux 為核心原代碼!
  • /usr/X11R6:系統內的 X Window System 所需的執行檔幾乎都放在這!
 /var  這個目錄也很重要,也是 FHS 規范的第二層目錄內容。他主要放置的是針對系統執行過程中, 常態性變動的檔案放置的目錄。舉例來說,例如緩存文件 (cache) 或者是隨時變更的登錄文件 (log file) 都是放在這個目錄中的。此外,某些軟件執行過程中會寫入的數據庫檔案, 例如 MySQL 數據庫,也都寫入在這個目錄中!底下的重要目錄有:
  • /var/cache:程序檔案在運作過程當中的一些暫存盤;
  • /var/lib:程序本身執行的過程中,需要使用到的數據文件放置的目錄, 舉例來說, locate 這個數據庫與 MySQL 及 rpm 等數據庫系統,都寫在這個目錄內。
  • /var/log:登錄文件放置的目錄。很重要啊!例如 /var/log/messages 就是總管所有登錄檔的一個檔案!
  • /var/lock:某些裝置具有一次性寫入的特性,例如 tab (磁帶機), 此時,為了擔心被其他人干擾而破壞正在運作的動作,因此,會將該裝置 lock (鎖住)起來, 以確定該裝置只能被單一個程序所使用!
  • /var/run:某些程序或者是服務啟動后,會將他們的 PID 放置在這個目錄下!
  • /var/spool:是一些隊列數據存放的地方。舉例來說,主機收到電子郵件后, 就會放置到 /var/spool/mail 當中,若信件暫時發不出去,就會放置到 /var/spool/mqueue 目錄下, 使用者工作任務分配 (cron) 則是放置在 /var/spool/cron 當中!

特別重要的幾個目錄

  • /etc:這個目錄是系統配置文件放置的地方, 包括您系統上的賬號與密碼 (/etc/passwd, /etc/shadow),還有開機時所要用到的各項設定值 (/etc/sysconfig/*) ,還有各主要的網絡服務的配置文件,都在這個目錄中。 意思就是說,如果這個目錄底下的檔案被刪除或者是死掉了, 我們就要花費大量的時間來恢復這個目錄的文件。因此,一般建議將這個目錄進行備份!
  • /usr/local:雖然說目前已經將這個目錄的重要性移動到 /opt 了, 但我還是是比較習慣將我自己開發或自行額外安裝的軟件放置在這個 /usr/local 目錄下。 如果你的 Linux 系統是多人共管的話,那么,養成一個良好的操作習慣是有必要的。 那么安裝軟件的習慣也要好好建立起來啊~不要隨意安裝呢! 統一放置在 /usr/local 或者是 /opt 底下吧!
  • /var: 這個目錄是在管理系統運作過程中的重要中間暫存數據的,例如 /var/lib 與 /var/run 。 此外,最終的數據例如郵件 /var/spool/mail 也是放置在這個目錄中  另外,幾乎所有服務的登錄文件 (可以記錄誰、什么時候、由哪里登入主機、做了什么事等等信息!) 都放在 /var/log 這個目錄下,因此,這個目錄也很重要。

     感謝作者此篇隨筆作者!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM