2011年11月16日 星期三

linux系統目錄

系統目錄
  • /bin    放置的是在單人維護模式下還能夠被操作的指令,可被root與一般帳號所使用
  • /boot   放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機設定檔。 Linux kernel常用的檔名為vmlinuz,若使用grub開機管理程式, 則會有 /boot/grub/目錄
  • /cdrom CDROM的內容,連結到 /media/cdrom 
  • /dev 硬體裝置檔,比要重要的檔案有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
  • /etc 本機特定的系統設定檔,這個目錄下的各檔案屬性是可以讓一般使用者查閱的, 但是只有root有權力修改。FHS建議不要放執行檔在這個目錄中。比較重要的檔案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/
  • 其下重要的目錄有
    • /etc/init.d/:放置所有服務的預設啟動 script ,例:/etc/init.d/iptables start、/etc/init.d/iptables stop
    • /etc/xinetd.d/:super daemon管理的各項服務的設定檔目錄
    • /etc/X11/:與 X Window 有關的各種設定檔,xorg.conf 是 X Server 的設定檔
    • /etc/sysconfig 系統設定檔
    • /etc/sgml SGML以及xml的設定檔
  • /home 使用者家目錄,~:代表目前使用者家目錄,而~abc :則代表abc 的家目錄!
  • /lib 放置在開機時會用到的函式庫, 以及在/bin或/sbin底下的指令會呼叫的函式庫,/lib/modules/目錄, 會放置核心相關的模組(驅動程式)
  • /lost+found 檔案系統檢查之後,所回復的檔案
  • /media 可移動裝置的掛接點,如:/media/floppy, /media/cdrom
  • /mnt 暫時性掛接點,用途與/media相同,有了/media之後,/mnt就用來暫時掛載用。
  • /opt 額外的軟體或是套件,給第三方協力軟體放置的目錄,還可放置自行安裝額外的軟體(非原本的distribution提供的),不過自行安裝的軟體習慣放置在/usr/local目錄下!
  • /proc 核心狀態目錄,這個目錄本身是一個『虛擬檔案系統(virtual filesystem)』,放置的資料都是在記憶體中,本身不佔任何硬碟空間, 例如系統核心、行程資訊(process)、周邊裝置的狀態及網路狀態。例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*
  • /root 系統管理者的根目錄,進入單人維護模式僅會掛載根目錄,因此root的家目錄與根目錄須放置在同一個分割槽中。
  • /sbin 必要的系統執行檔,僅提供給管理者使用,放在/sbin目錄為開機過程中所需要的,裡面包括了開機、修復、還原系統所需要的指令。至於某些伺服器軟體程式,一般則放置到/usr/sbin/當中。至於本機自行安裝的軟體所產生的系統執行檔(system binary), 則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
  • /selinux SELinux系統的目錄,預設為空
  • /sys  核心系統中對裝置的即時資訊,是一個虛擬的檔案系統,主要記錄與核心相關的資訊。包括目前已載入的核心模組與核心偵測到的硬體裝置資訊,不佔硬碟容量!
  • /tmp 暫存區
  • /usr 系統工具所在的目錄,是Unix Software Resource的縮寫,系統預設的軟體(distribution發佈者提供的軟體)都會放置到/usr底下,系統剛安裝完畢時,這個目錄會佔用最多的硬碟容量。/usr的次目錄建議有底下這些:
    • /usr/X11R6/ 為X Window System重要資料的目錄,X11表示最後的X版本為第11版,R6表示第6次釋出之意。
    • /usr/bin/   放置使用者可使用的指令,與/bin的不同之處在是否與開機過程有關
    • /usr/include/  c/c++等程式語言的檔頭(header)與包含檔(include)
    • /usr/lib/  包含各應用軟體的函式庫、目標檔案(object file),以及不被一般使用者慣用的執行檔或腳本(script)。 某些軟體會提供一些特殊的指令來進行伺服器的設定,這些指令也不會經常被系統管理員操作, 那就會放到這個目錄。如果使用X86_64的Linux系統, 那可能會有/usr/lib64/目錄產生
    • /usr/local/ 系統管理員安裝自己下載的軟體(非distribution預設),建議安裝到此,這樣會便於管理。舉例來說,distribution提供的軟體較舊,想安裝較新的軟體又不想移除舊版,可以將新版軟體安裝於/usr/local/目錄下,與原先的舊版軟體區別,該目錄下也是具有bin, etc, include, lib...的次目錄! 
    • /usr/sbin/ 非系統正常運作所需要的系統指令。最常見的就是某些網路伺服器軟體的服務指令(daemon)!
    • /usr/share/ 放置共享文件的地方,在這個目錄下放置的資料幾乎是不分硬體架構均可讀取的資料, 因為幾乎都是文字檔案!在此目錄下常見次目錄:
      • /usr/share/man:線上說明文件 
      • /usr/share/doc:軟體雜項的文件說明 
      • /usr/share/zoneinfo:與時區有關的時區檔案 
      • /usr/share/misc/ 不需要在/usr/share/中建立子目錄者
    • /usr/src/ 一般原始碼,核心原始碼則建議放置到/usr/src/linux/目錄下
  • /var 變動的資料,包括快取(cache)、登錄檔(log file)以及某些軟體運作所產生的檔案, 包括程序檔案(lock file, run file),或者MySQL資料庫的檔案。常見的次目錄有:
    • /var/cache/ 應用程式本身運作過程中會產生的一些暫存檔;
    • /var/lib/ 程式本身執行的過程中,需要使用到的資料檔案放置的目錄。各自的軟體應該要有各自的目錄,如:MySQL的資料庫放置到/var/lib/mysql/,rpm的資料庫則放到/var/lib/rpm去! 
    • /var/lock/ 某些裝置或者是檔案資源一次只能被一個應用程式所使用,因此就得要將該裝置上鎖(lock)
    • /var/log/ 登錄檔!如/var/log/messages, /var/log/wtmp(記錄登入者的資訊)等。 
    • /var/mail/ 電子郵件信箱目錄,這個目錄也放置到/var/spool/mail/,通常這兩個目錄是互為連結檔
    • /var/run/ 某些程式或者是服務啟動後,會將他們的PID放置在這個目錄
    • /var/spool/ 放置一些佇列資料,這些資料被使用後通常都會被刪除。如:新信會放置到/var/spool/mail/中, 暫時寄不出去會被放到/var/spool/mqueue/中, 工作排程資料(crontab),就會被放置到/var/spool/cron/中 。
開機過程中僅有根目錄會被掛載,以下五個目錄千萬不可與根目錄分開在不同的分割槽!
  • /etc:設定檔
  • /bin:重要執行檔
  • /dev:所需要的裝置檔案
  • /lib:執行檔所需的函式庫與核心所需的模組
  • /sbin:重要的系統執行檔

參考資料:鳥哥的linux私房菜

沒有留言:

張貼留言