天天看點

linux 系統目錄詳解

目錄

  • linux 系統啟動流程
  • 系統目錄概要說明
  • 系統詳細介紹
    • /etc 檔案系統
    • /dev 檔案系統
    • /usr 檔案系統
    • /var 檔案系統
    • /proc 檔案系統

在早期的 UNIX 系統中,各個廠家各自定義了自己的 UNIX 系統檔案目錄,比較混亂。Linux 面世不久後,對檔案目錄進行了标準化,于1994年對根檔案目錄做了統一的規範,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 檔案系統層次結構标準。FHS 标準規定了 Linux 根目錄各檔案夾的名稱及作用,統一了Linux界命名混亂的局面。

FHS 定義了系統中每個區域的用途、所需要的最小構成的檔案和目錄同時還給出了例外處理與沖突處理。 FHS 定義了兩層規範。第一層是, /  下面的各個目錄應該要放什麼檔案資料,例如: /etc 應該要放置設定檔案,/bin  與  /sbin  則應該要放置可執行檔案等等。第二層則是針對  /usr 及  /var  這兩個目錄的子目錄來定義,例如: /var/log  放置系統登入檔案、 /usr/share 放置共享資料等等。

FHS 依據檔案系統使用的頻繁與否以及是否允許使用者随意改動,将目錄定義為四種互動作用的形态,如下表所示:

可分享(shareable) 不可分享(unshareable)
靜态的(static)

/usr 存放軟體

/opt 第三方軟體

/etc 配置檔案

/boot 開機及核心檔案

可變的(variable)

/var/mail 使用者郵件信箱

/var/news 新聞討論區

/var/run 程式相關

/var/lock 鎖相關

/:根目錄,一般根目錄下隻存放目錄,不要存放件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中。

linux 系統目錄詳解
  • 系統加電之後,首先進行的硬體自檢,然後是 bootloader 對系統的初始化,加載核心。
  • 核心被加載到記憶體中之後,就開始執行了。一旦核心啟動運作,對硬體的檢測就會決定需要對哪些裝置驅動程式進行初始化。
  • 從這裡開始,核心就能夠挂裝根檔案系統(這個過程類似于Windows識别并存取C槽的過程)。
  • 核心挂裝了根檔案系統,并已初始化所有的裝置驅動程式和資料結構等之後,就通過啟動一個叫 init 的使用者級程式,完成引導程序。
  • Init 程序是系統啟動之後的第一個使用者程序,是以它的 pid (程序編号)始終為1。
  • init 程序上來首先做的事是去讀取 /etc/ 目錄下 inittab 檔案中 initdefault id 值,這個值稱為運作級别(run-level)。它決定了系統啟動之後運作于什麼級别。運作級别決定了系統啟動的絕大部分行為和目的。

運作級别如下表所示:

停機(千萬别把initdefault設定為0,否則系統永遠無法啟動)
1 單使用者模式,可以對系統進行軟體維護。
2 多使用者,沒有 NFS,,啟動網絡工作站服務。 (最後會啟動dtlogin允許圖形界面工作站)
3 完全多使用者模式(标準的運作級)
4 系統保留的
5 X11 (x window)
6 重新啟動 (千萬不要把initdefault 設定為6,否則将一直在重新開機 )

目  錄 全  稱 用  途 說  明
/bin Binary 存放二進制可執行檔案,供所有使用者使用的基本指令一般都在這裡。 常用指令 ls,cat,mkdir,cp,rm,netstat,ping,ip,cat,chmod,chown,less,more 等指令存放于此。系統啟動就會用到,不能關聯至獨立分區。
/sbin Super user Binary 存放二進制可執行檔案,隻有root才能通路。 這裡存放的是系統管理者使用的系統級别的管理指令和程式。如 ifconfig,iptables,mkfs,reboot,shutdown,poweroff 等。
/boot 引導檔案存放目錄 核心檔案(vmlinux)、引導加載器(grub)存放于此目錄。建議單獨分區,分區大小 100M 即可。
/etc

拉丁語全稱etcetera

另一種說法為Editable Text Configuration

存放系統管理所需的配置檔案及目錄 例如:host.conf,adduser.conf 等。重要的配置檔案有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d等
/dev device 裝置檔案及特殊檔案存儲位置 任何裝置與接口裝置都以檔案的形式存放在此目錄,相當于裝置的入口,通過通路該目錄下的檔案,就等于通路對應裝置。例如:null,zero,tty,sd*,cpu,char,bus 等。
/sys system 用于輸出目前系統上硬體裝置相關資訊的虛拟檔案系統 該檔案系統是核心裝置樹的一個直覺反映。當一個核心對象被建立的時候,對應的檔案和目錄也在核心對象子系統中被建立。
/lib library 存放系統最基本的動态連接配接共享庫 類似于Windows裡的DLL檔案
/lib64 64位系統上存放輔助共享庫檔案
/proc process 這是一個虛拟的目錄,它是系統記憶體資料的映射

這個目錄的内容不在硬碟上而是在記憶體裡,可以通過直接通路這個目錄來擷取系統資訊。例如:核心、程序、外部裝置的狀态,網絡狀态等。

比較重要的目錄有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/ 等。

/usr Unix System Resource 系統應用程式存放目錄,例如 ftp,telnet 等等。

/bin 目錄存放系統使用者使用的應用程式,所有使用者可通路。例如:who,whoami,sudo,users,attr,clear,ssh,gcc,perl,Python等。

/sbin 目錄存放超級使用者使用的比較進階的管理程式和系統守護程式。例如:arp,arpd,adduser,useradd,addgroup,groupdel,chroot,chpasswd等。

/lib 目錄存放應用程式的庫或封包件。例如:Apache,gcc,Python 等程式的庫檔案。

/lib64 目錄存放64位系統的程式和軟體包的庫檔案。

/include 目錄存放C程式的頭檔案即 .h 檔案。

/share 目錄存放共享資料。/usr/share/doc: 系統說明檔案存放目錄。/usr/share/man: 程式說明檔案存放目錄

/local 目錄是第三方應用程式的安裝位置,包括 bin,sbin,lib,lib64,etc,include等子目錄。

/src 目錄存放源代碼,linux核心的源代碼就放在/usr/src/linux裡。

/doc 目錄存放 linux 文檔。

/opt 第三方應用程式的安裝位置 以前的 Linux 系統中,習慣放置在 /usr/local 目錄下。一般情況下,我們可以把 tomcat 等都安裝到這裡。
/var variable data file 存放經常變動的檔案

/cache 目錄是應用程式緩存目錄。

/local 目錄是專用于 /usr/local 下應用的可變資料

/opt 目錄專用于 /opt 目錄下的程式存儲可變資料。

/lock 目錄用于存放鎖檔案。

/log 目錄用于存放日志目錄及檔案。/var/log/wtmp記錄系統登入和登出日志,/var/log/message記錄核心和系統程式的資訊。

/run 目錄存放運作中的程序相關資料,通常用于存儲程序的 pid 檔案。

/tmp 目錄儲存系統兩次重新開機之間産生的臨時資料。

/lib 目錄存放系統正常運作時随時會改變的檔案。

/spool 目錄為應用程式資料池。

/mail 目錄存放使用者郵件檔案。

建議單獨分區,設定較大的磁盤空間

/root 管理者的根目錄 最好将 /root和 /放置在一個分區下。
/home 普通使用者的根目錄 建議單獨分區,并設定較大的磁盤空間,友善使用者存放資料。
/mnt mount 用于臨時挂載其它檔案系統 例如可以将光驅挂載在/mnt/上,然後進入該目錄就可以檢視光驅裡的内容
/tmp temp 用來存放一些臨時檔案 任何人都可以通路,重要資料不可放置在此目錄下
/media 用于将識别的裝置挂載到這個目錄下 linux系統會自動識别一些裝置,例如U盤、光驅等等,當識别後,linux會把識别的裝置挂載到這個目錄下。
/srv service 存放一些服務啟動之後需要提取的資料 如 www 服務需要通路的網頁資料存放在 /srv/www 内

/etc 目錄包含各種系統配置檔案,下面說明其中的一些。其他的你應該知道它們屬于哪個程式,并閱讀該程式的man頁。許多網絡配置檔案也在 /etc 中。

  1. /etc/rc 或 /etc/rc.d 或 /etc/rc?.d

    rc.d 是runlevel control directory的縮寫。

    /etc/rc.d/rc0.d - rc6.d 各啟動級别的啟動腳本,這些檔案夾下的 init 腳本都有一些特别的名字,命名都以S(start)、K(kill)或 D(disable)開頭,後面跟一個數字。當init進入一個運作等級的時候,它會按照數字順序運作所有以 K 開頭的腳本并傳入 stop 參數,除非對應的 init 腳本在前一個運作等級中沒有啟動。然後 init 按照數字順序運作所有以 S 開頭的腳本并傳入 start 參數。任何以 D 開頭的 init 腳本都會被忽略—這讓你可以在指定的運作等級禁止一個腳本,或者你也可以僅僅移除全部符号連結。是以如果你有兩個腳本,S01foo 和 S05bar, init 首先會運作 S01foo start,當它進入特定的運作等級後再執行 S05bar start。

    /etc/rc.d/rcS.d 單使用者模式啟動腳本。

    /etc/rc.d/rc.local 通常它是一個留給使用者修改的shell腳本。一般會在init程序結束的時候運作它,是以你可以在這裡放一些想要運作的額外腳本,而不用再建立自己的init腳本。

    /etc/rc.d/rc.sysinit 檔案主要做在各個運作模式中相同的初始化工作,包括設定 PATH、設定網絡配置(/etc/sysconfig/network)、啟動 swap 分區、設定 /proc 等等。

    /etc/rc.d/rc 檔案當運作級别改變時,負責啟動/停止各種服務。

  2. /etc/init 或 /etc/init.d

    init 檔案夾包含所有服務在各個運作等級中的全部啟動腳本。一般來說,它們都是标準的 shell 腳本,遵守最基本的标準。每個腳本最少接受兩個參數 start 和 stop,它們分别代表啟動和停止服務 (如網頁服務)。除此之外,init腳本通常還會接受一些額外的選項,如 restart(重新開機伺服器)、status(傳回服務目前狀态)、reload(告知服務從配置檔案中重新載入配置)以及 force-reload(強制服務重載它的配置)。當用不帶參數的方式運作腳本的時候,一般應該傳回一個它會接受的參數清單。

    init.d 目錄存放的是一些腳本,一般是 linux 以 rpm 包安裝時設定的一些服務的啟動腳本。系統在安裝時裝了好多rpm 包,這裡面就有很多對應的腳本。執行這些腳本可以用來啟動,停止,重新開機這些服務。前面說到,init.d 這個目錄下的腳本就類似與 windows 中的系統資料庫,在系統啟動的時候執行。

  3. /etc/inittab

    init 程序的配置檔案。

  4. /etc/passwd

    使用者資料庫,其中的域給出了使用者名、真實姓名、使用者起始目錄、加密密碼和使用者的其 他資訊。

  5. /etc/fdprm

    軟碟參數表,用以說明不同的軟碟格式。可用 setfdprm 進行設定。

  6. /etc/fstab

    指定啟動時需要自動安裝的檔案系統清單。啟動時 mount -a 指令(在 /etc/rc 或等效的啟動檔案中)自動 mount 的檔案系統清單也包括用 swapon -a 啟用的 swap 區的資訊。

  7. /etc/group、/etc/adduser.conf、/etc/deluser.conf、/etc/sudoers

    類似 /etc/passwd ,但說明的不是使用者資訊而是組的資訊。包括組的各種資料。

    添加的使用者資訊,删除使用者資訊。

    具有sodu執行權限的使用者資訊。

  8. /etc/issue

    包括使用者在登入提示符前的輸出資訊。通常包括系統的一段短說明或歡迎資訊。具體内容由系統管理者确定。

  9. /etc/magic

    “file” 的配置檔案。包含不同檔案格式的說明,“file” 基于它猜測檔案類型。

  10. /etc/motd

    motd 是 message of the day 的縮寫,使用者成功登入後自動輸出。内容由系統管理者确定。常用于通告資訊,如計劃關機時間的警告等。

  11. /etc/mtab

    目前安裝的檔案系統清單。由腳本( scritp )初始化,并由 mount 指令自動更新。當需要一個目前安裝的檔案系統的清單時使用(例如 df 指令)。

  12. /etc/shadow

    在安裝了影子( shadow )密碼軟體的系統上的影子密碼檔案。影子密碼檔案将 /etc/passwd 檔案中的加密密碼移動到 /etc/shadow 中,而後者隻對超級使用者( root )可讀。這使破譯密碼更困難,以此增加系統的安全性。

  13. /etc/login.defs

    login 指令的配置檔案。

  14. /etc/printcap

    類似 /etc/termcap ,但針對列印機。文法不同。

  15. /etc/profile 、/etc/csh.login、/etc/csh.cshrc

    /etc/profile 系統全局環境變量設定,裡面可以添加對所有使用者有效的環境變量,系統配置等。

    登入或啟動時 bourne 或 c shells執行的檔案。這允許系統管理者為所有使用者建立全局預設環境。

  16. /etc/securetty

    确認安全終端,即哪個終端允許超級使用者( root )登入。一般隻列出虛拟控制台,這樣就不可能(至少很困難)通過數據機( modem )或網絡闖入系統并得到超級使用者特權。

  17. /etc/shells

    列出可以使用的 shell。chsh 指令允許使用者在本檔案指定範圍内改變登入的 shell。提供一台機器 ftp 服務的服務程序 ftpd 檢查使用者 shell 是否列在 /etc/shells 檔案中,如果不是,将不允許該使用者登入。

  18. /etc/termcap

    終端性能資料庫。說明不同的終端用什麼“轉義序列”控制。寫程式時不直接輸出轉義序列(這樣隻能工作于特定品牌的終端),而是從 /etc/termcap 中查找要做的工作的正确序列。這樣,多數的程式可以在多數終端上運作。

  19. /etc/bash.bashrc  bash 的環境變量配置,裡面添加啟動bash時讀取的環境。
  20. /etc/hosts   主機域名的配置。
  21. /etc/ld.so.cof  ldconfig指令讀取的系統庫目錄配置檔案。/etc/ld.so.cache  ldconfig指令讀取的系統庫路徑生成的緩存檔案。
  22. /etc/sysctl.conf  系統核心的配置檔案。
  23. /etc/protocols   系統支援的ip協定簇。
  24. /etc/timezone  系統的時間時區設定。

/dev 目錄包括所有裝置的裝置檔案。裝置檔案用特定的約定命名,這在裝置清單中說明。裝置檔案在安裝時由系統産生,以後可以用 /dev/makedev 描述。/dev/makedev.local 是系統管理者為本地裝置檔案(或連接配接)寫的描述文稿(即如一些非标準裝置驅動不是标準 makedev 的一部分)。下面簡要介紹 /dev 下一些常用檔案。

  1. /dev/console

    系統控制台,也就是直接和系統連接配接的螢幕。

  2. /dev/hd[a-t]

    ide 硬碟驅動程式接口。如:/dev/hda 指的是第一個硬碟,had1 則是指 /dev/hda 的第一個分區。如系統中有其他的硬碟,則依次為 /dev/hdb、/dev/hdc、. . . . .;如有多個分區則依次為 hda1、hda2 . . . . . .

  3. /dev/sd[a-z]

    scsi 磁盤驅動程式接口。如有系統有 scsi 硬碟,就不會通路 /dev/had,而會通路 /dev/sda。

  4. /dev/fd[0-7]

    軟驅裝置驅動程式。如:/dev/fd0 指系統的第一個軟碟,也就是通常所說的 a:盤,/dev/fd1 指第二個軟碟,. . . . . .而 /dev/fd1h1440 則表示通路驅動器1中的4.5高密盤。

  5. /dev/st

    scsi 錄音帶驅動器驅動程式。

  6. /dev/tty

    提供虛拟控制台支援。如:/dev/tty1 指的是系統的第一個虛拟控制台,/dev/tty2 則是系統的第二個虛拟控制台。

  7. /dev/pty

    提供遠端登陸僞終端支援。在進行 telnet 登入時就要用到 /dev/pty 裝置。

  8. /dev/ttys

    計算機串行接口,對于 dos 來說就是“ c o m 1”口。

  9. /dev/cua

    計算機串行接口,與數據機一起使用的裝置。

  10. /dev/null

    “黑洞”,所有寫入該裝置的資訊都将消失。例如:當想要将螢幕上的輸出資訊隐藏起來時,隻要将輸出資訊輸入到 /dev/null 中即可。

  11. /dev/zero

    該裝置無窮盡地提供空字元(ASCII NUL, 0x00),可以使用任何你需要的數目。它通常用于向裝置或檔案寫入字元串0,用于初始化資料存儲。(當然,也可作為輸出流的接受容器)

  12. /dev/lp[0-3]

    并口

  13. /dev/loop[0-7]

    本地回環裝置

  14. /dev/md[0-31]

    軟raid裝置

  15. /dev/random、/dev/urandom

    随機數裝置。

  16. /dev/shm

    這個目錄不在硬碟上,而是在記憶體裡。預設系統就會加載/dev/shm ,它就是所謂的tmpfs。是以在 linux下,就不需要大費周折去建 ramdisk,直接使用 /dev/shm/ 就可達到很好的優化效果。它預設最大為記憶體的一半大小,使用df -h指令可以看到。但它并不會真正的占用這塊記憶體,如果/dev/shm/下沒有任何檔案,它占用的記憶體實際上就是0位元組;如果它最大為 1G,裡頭放有 100M 檔案,那剩餘的900M 仍然可為其它應用程式所使用,但它所占用的 100M 記憶體,是絕不會被系統回收重新劃分的。象虛拟磁盤一樣,tmpfs 可以使用您的 RAM,但它也可以使用您的交換分區來存儲。而且傳統的虛拟磁盤是個塊裝置,并需要一個 mkfs 之類的指令才能真正地使用它,tmpfs 是一個檔案系統,而不是塊裝置;您隻是安裝它,它就可以使用了。

tty是teletypewriter的縮寫  [ 轉自:http://blog.chinaunix.net/uid-8194676-id-2513202.html ]

  揭秘 TTY 見:http://www.linusakesson.net/programming/tty/

getty 是 get teletypewriter 的縮寫

  終端是一種字元型裝置,它有多種類型,通常使用 tty 來簡稱各種類型的終端裝置。tty 是 teletypewriter 的縮寫。Teletype 是最早出現的一種終端裝置,很象電傳打字機,是由 Teletype 公司生産的。裝置名放在特殊檔案目錄 /dev/ 下,終端特殊裝置檔案一般有以下幾種:

  1.  串行端口終端(/dev/ttySn)

  串行端口終端(Serial Port Terminal)是使用計算機串行端口連接配接的終端裝置。計算機把每個串行端口都看作是一個字元裝置。有段時間這些串行端口裝置通常被稱為終端裝置,因為那時它的最大用途就是用來連接配接終端。這些串行端口所對應的裝置名稱是 /dev/tts/0(或/dev/ttyS0)、/dev/tts/1(或 /dev/ttyS1)等,裝置号分别是(4,0)、(4,1)等,分别對應于 DOS 系統下的 COM1、COM2 等。若要向一個端口發送資料,可以在指令行上把标準輸出重定向到這些特殊檔案名上即可。例如,在指令行提示符下鍵入:echo test > /dev/ttyS1 會把單詞 ”test” 發送到連接配接在 ttyS1(COM2)端口的裝置上。

  2.  僞終端(/dev/pty/)

  僞終端(Pseudo Terminal)是成對的邏輯終端裝置,例如 /dev/ptyp3 和 /dev/ttyp3(或着在裝置檔案系統中分别是 /dev/pty/m3和/dev/pty/s3)。它們與實際實體裝置并不直接相關。如果一個程式把 ttyp3 看作是一個串行端口裝置,則它對該端口的讀/寫操作會反映在該邏輯終端裝置對的另一個上面( ttyp3 )。而 ttyp3 則是另一個程式用于讀寫操作的邏輯裝置。這樣,兩個程式就可以通過這種邏輯裝置進行互相交流,而其中一個使用 ttyp3 的程式則認為自己正在與一個串行端口進行通信。這很象是邏輯裝置對之間的管道操作。

  對于 ttyp3(s3),任何設計成使用一個串行端口裝置的程式都可以使用該邏輯裝置。但對于使用 ptyp3 的程式,則需要專門設計來使用 ptyp3(m3)邏輯裝置。

  例如,如果某人在網上使用 telnet 程式連接配接到你的計算機上,則telnet程式就可能會開始連接配接到裝置ptyp2(m2)上(一個僞終端端口上)。此時一個 getty 程式就應該運作在對應的 ttyp2(s2)端口上。當telnet 從遠端擷取了一個字元時,該字元就會通過 m2、s2 傳遞給 getty 程式,而 getty 程式就會通過 s2、m2 和 telnet 程式往網絡上傳回 ”login:” 字元串資訊。這樣,登入程式與 telnet 程式就通過“僞終端”進行通信。通過使用适當的軟體,就可以把兩個甚至多個僞終端裝置連接配接到同一個實體串行端口上。

  在使用裝置檔案系統(device filesystem)之前,為了得到大量的僞終端裝置特殊檔案,HP-UX AIX等使用了比較複雜的檔案名命名方式。

  3.  控制終端(/dev/tty)

  如果目前程序有控制終端(Controlling Terminal)的話,那麼 /dev/tty 就是目前程序的控制終端的裝置特殊檔案。可以使用指令”ps –ax”來檢視程序與哪個控制終端相連。對于你登入的 shell,/dev/tty 就是你使用的終端,裝置号是(5,0)。使用指令”tty”可以檢視它具體對應哪個實際終端裝置。/dev/tty 有些類似于到實際所使用終端裝置的一個聯接。

  4.  控制台終端(/dev/ttyn, /dev/console)

  在 UNIX 系統中,計算機顯示器通常被稱為控制台終端(Console)。它仿真了類型為Linux的一種終端(TERM=Linux),并且有一些裝置特殊檔案與之相關聯:tty0、tty1、tty2等。當你在控制台上登入時,使用的是 tty1。使用 Alt+[F1—F6] 組合鍵時,我們就可以切換到 tty2、tty3 等上面去。tty1 –tty6 等稱為虛拟終端,而 tty0 則是目前所使用虛拟終端的一個别名,系統所産生的資訊會發送到該終端上。是以不管目前正在使用哪個虛拟終端,系統資訊都會發送到控制台終端上。

  你可以登入到不同的虛拟終端上去,因而可以讓系統同時有幾個不同的會話期存在。隻有系統或超級使用者root 可以向 /dev/tty0 進行寫操作,

  5.  其它類型

  還針對很多不同的字元裝置存在有很多其它種類的終端裝置特殊檔案。例如針對 ISDN 裝置的 /dev/ttyIn 終端裝置等。這裡不再贅述。

tmpfs 的優勢:

  1,動态檔案系統的大小。

  2,tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs 檔案系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。

  3,tmpfs 資料在重新啟動之後不會保留,因為虛拟記憶體本質上就是易失的。是以有必要做一些腳本做諸如加載,綁定的操作。

一、修改 /dev/shm 大小

  預設的最大一半記憶體大小在某些場合可能不夠用,并且預設的 inode 數量很低一般都要調高些,這時可以用mount 指令來管理它。

  #mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

  在 2G 的機器上,将最大容量調到 1.5G,并且 inode 數量調到 1000000,這意味着大緻可存入最多一百萬個小檔案。

  如果需要永久修改 /dev/shm 的值,需要修改 /etc/fstab

  tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

  #mount -o remount /dev/shm

二、/dev/shm 應用

  首先在 /dev/shm 建個 tmp 檔案夾,然後與實際 /tmp 綁定

  #mkdir /dev/shm/tmp

  #chmod 1777 /dev/shm/tmp

  #mount –bind /dev/shm/tmp /tmp(–bind )

  在使用 mount –bind olderdir newerdir指令來挂載一個目錄到另一個目錄後,newerdir 的權限和所有者等所有資訊會發生變化。挂載後的目錄繼承了被挂載目錄的所有屬性,除了名稱。Oracle 11g 的 amm 記憶體管理模式就是使用 /dev/shm,是以有時候修改 MEMORY_TARGET 或者 MEMORY_MAX_TARGET 會出現 ORA-00845 的錯誤。

/usr 是個很重要的目錄,通常這一檔案系統很大,因為所有程式安裝在這裡。/usr 裡的所有檔案一般來自 linux 發行版( distribution);本地安裝的程式和其他東西在 /usr/local 下,因為這樣可以在更新新版系統或新發行版時無須重新安裝全部程式。/usr 目錄下的許多内容是可選的,但這些功能會使使用者使用系統更加有效。/usr 可容納許多大型的軟體包和它們的配置檔案。下面列出一些重要的目錄(一些不太重要的目錄被省略了)。

  1. /usr/x11r6

    包含 x window 系統的所有可執行程式、配置檔案和支援檔案,之是以取名為 X11R6 是因為最後的X版本為第11版,且該版的第6次釋出之意。為簡化 x 的開發和安裝,x 的檔案沒有內建到系統中。x window 系統是一個功能強大的圖形環境,提供了大量的圖形工具程式。使用者如果對 microsoft windows 或 machintosh 比較熟悉的話,就不會對 xwindow 系統感到束手無策了。

  2. /usr/x386

    類似 /usr/x11r6,但是是專門給 x 11 release 5 的。

  3. /usr/bin

    集中了幾乎所有使用者指令,是系統的軟體庫。另有些指令在 /bin 或 /usr/local/bin 中。

  4. /usr/sbin

    包括了根檔案系統不必要的系統管理指令,例如多數服務程式。

  5. /usr/man、/usr/info、/usr/doc

    這些目錄包含所有手冊頁、gnu 資訊文檔和各種其他文檔檔案。每個聯機手冊的“節”都有兩個子目錄。例如:/usr/man/man1 中包含聯機手冊第一節的源碼(沒有格式化的原始檔案),/usr/man/cat1 包含第一節已格式化的内容。聯機手冊分為以下九節:内部指令、系統調用、庫函數、裝置、檔案格式、遊戲、宏軟體包、系統管理和核心程式。

  6. /usr/include

    包含了 c 語言的頭檔案,這些檔案多以 . h 結尾,用來描述 c 語言程式中用到的資料結構、子過程和常量。為了保持一緻性,這實際上應該放在 /usr/lib 下,但習慣上一直沿用了這個名字。

  7. /usr/lib

    lib 是 library 的簡寫。存放的是各應用軟體的動态連結庫以及一些不被一般使用者慣用的執行檔或腳本(script)。程式設計的原始庫也存在 /usr/lib 裡。當編譯程式時,程式便會和其中的庫進行連接配接。也有許多程式把配置檔案存入其中。

  8. /usr/local

    系統管理者在本機安裝下載下傳的軟體(非 distribution 預設提供者),建議安裝到此目錄, 這樣會比較便于管理。舉例來說,你的 distribution 提供的軟體較舊,你想安裝較新的軟體但又不想移除舊版, 此時你可以将新版軟體安裝于 /usr/local/ 目錄下,可與原先的舊版軟體有分别啦。 你可以自行到 /usr/local 去看看,該目錄下也是具有 bin, etc, include, lib...的次目錄。

  9. /usr/share

    放置共享檔案的地方,在這個目錄下放置的資料幾乎是不分硬體架構均可讀取的資料, 因為幾乎都是文本檔案。在此目錄下常見的還有這些次目錄:/usr/share/man:聯機幫助檔案;/usr/share/doc:軟體雜項的檔案說明;/usr/share/zoneinfo:與時區有關的時區檔案。

  10. /usr/src

    src 是 source 的縮寫,一般原始碼建議放置到這裡。至于核心原始碼則建議放置到 /usr/src/linux/ 目錄下。

/var 包含系統一般運作時要改變的資料。通常這些資料所在的目錄的大小是要經常變化或擴充的。原來 /var 目錄中有些内容是在 /usr 中的,但為了保持 /usr 目錄的相對穩定,就把那些需要經常改變的目錄放到 /var 中了。每個系統是特定的,即不通過網絡與其他計算機共享。下面列出一些重要的目錄(一些不太重要的目錄省略了)。

  1. /var/catman

    包括了格式化過的幫助( man )頁。幫助頁的源檔案一般存在 /usr/man/man 中;有些 man 頁可能有預格式化的版本,存在 /usr/man/cat 中。而其他的 man 頁在第一次看時都需要格式化,格式化完的版本存在 /var/man 中,這樣其他人再看相同的頁時就無須等待格式化了。( /var/catman 經常被清除,就像清除臨時目錄一樣。)

  2. /var/lib

    程式執行的過程中,需要使用到的資料檔案放置的目錄。在此目錄下各自的軟體應該要有各自的目錄。 舉例來說,MySQL 的資料庫放置到 /var/lib/mysql/ 而 rpm 的資料庫則放到 /var/lib/rpm 中。

  3. /var/local

    存放 /usr/local 中安裝的程式的可變資料(即系統管理者安裝的程式)。注意,如果必要,即使本地安裝的程式也會使用其他 /var 目錄,例如 /var/lock 。

  4. /var/lock

    鎖檔案。許多程式遵循在 /var/lock 中産生一個鎖定檔案的約定,以用來支援他們正在使用某個特定的裝置或檔案。其他程式注意到這個鎖定檔案時,就不會再使用這個裝置或檔案。

  5. /var/log

    各種程式的日志( log )檔案,尤其是 login( /var/log/wtmp log紀錄所有到系統的登入和登出) 和 syslog ( /var/log/messages 紀錄存儲所有核心和系統程式資訊)。/var/log 裡的檔案經常不确定地增長,應該定期清除。

  6. /var/run

    儲存在下一次系統引導前有效的關于系統的資訊檔案。例如, /var/run/utmp 包含目前登入的使用者的資訊。某些程式或者是服務啟動後,會将他們的PID放置在這個目錄下。

  7. /var/spool

    放置“假脫機( spool )”程式的目錄,如mail、news、列印隊列和其他隊列工作的目錄。每個不同的 spool 在 /var/spool 下有自己的子目錄,例如,使用者的郵箱就存放在 /var/spool/mail 中。

  8. /var/tmp

    比 /tmp 允許更大的或需要存在較長時間的臨時檔案。注意系統管理者可能不允許 /var/tmp 有很舊的檔案。

  9. /var/cache

    應用程式運作過程中會産生的一些暫存檔。

/proc 檔案系統是一個僞檔案系統,它并不存在磁盤上,隻存在記憶體當中。它以檔案系統的方式為通路系統核心資料的操作提供接口。使用者和應用程式可以通過 proc得到系統的資訊,并可以改變核心的某些參數。下面說明一些最重要的檔案和目錄( /proc 檔案系統在 proc man 頁中有更詳細的說明)。

  1. /proc/cmdline

    這個檔案給出了核心啟動的指令行。它和用于程序的cmdline項非常相似。

  2. /proc/x

    關于程序x的資訊目錄,這一x是這一程序的辨別号。每個程序在/proc 下有一個名為自己程序号的目錄。

  3. /proc/cpuinfo

    存放處理器(CPU)的資訊,如 cpu 的類型、制造商、型号和性能等。

  4. /proc/meminfo

    這個檔案給出了記憶體狀态的資訊。它顯示出系統中空閑記憶體,已用實體記憶體和交換記憶體的總量。它還顯示出核心使用的共享記憶體和緩沖區總量。這些資訊的格式和free指令顯示的結果類似。

  5. /proc/devices

    目前運作的核心配置的裝置驅動的清單。

  6. /proc/dma

    這個檔案列出由驅動程式保留的DMA通道和保留它們的驅動程式名稱。

  7. /proc/filesystems

    這個檔案列出可供使用的檔案系統類型,一種類型一行。雖然它們通常是編入核心的檔案系統類型,但該檔案還可以包含可加載的核心子產品加入的其它檔案系統類型。

  8. /proc/interrupts

    顯示被占用的中斷資訊和占用者的資訊,以及被占用的數量。這個檔案的每一行都有一個保留的中斷。每行中的域有:中斷号,本行中斷的發生次數,可能帶有一個加号的域(SA_INTERRUPT标志設定),以及登記 這個中斷的驅動程式的名字。可以在安裝新硬體前,像檢視 /proc/dma和/proc/ioports 一樣用 cat 指令手工檢視手頭的這個檔案。這個檔案列出了目前投入使用的資源(但是不包括那些沒有加載驅動程式的硬體所使用的資源)。

  9. /proc/ioports

    目前使用的 i/o 端口。這個檔案列出了諸如磁盤驅動器,以太網卡和聲霸卡裝置等多種裝置驅動程式登記的許多I/O端口範圍。

  10. /proc/kcore

    系統實體記憶體映像。與實體記憶體大小完全一樣,然而實際上沒有占用這麼多記憶體;它僅僅是在程式通路它時才被建立。(注意:除非你把它拷貝到什麼地方,否則 /proc 下沒有任何東西占用任何磁盤空間。)

  11. /proc/kmsg

    這個檔案用于檢索用 printk 生成的核心消息。任何時刻隻能有一個具有超級使用者權限的程序可以讀取這個檔案。也可以用系統調用syslog檢索這些消息。通常使用工具dmesg或守護程序klogd檢索這些消息。

  12. /proc/ksyms

    核心符号表。這個檔案列出了已經登記的核心符号;這些符号給出了變量或函數的位址。每行給出一個符号的位址,符号名稱以及登記這個符号的子產品。程式ksyms,insmod和kmod使用這個檔案。它還列出了正在運作的任務數,總任務數和最後配置設定的PID。

  13. /proc/loadavg

    這個檔案給出以幾個不同的時間間隔計算的系統平均負載,這就如同uptime指令顯示的結果那樣。前三個數字是平均負載。這是通過計算過去1分鐘,5分鐘,15分鐘裡運作隊列中的平均任務數得到的。随後是正在運作的任務數和總任務數。最後是上次使用的程序号。

  14. /proc/modules

    存放目前加載了哪些核心子產品資訊。

  15. /proc/mounts

    這個檔案以 /etc/mtab 檔案的格式給出目前系統所安裝的檔案系統資訊。這個檔案也能反映出任何手工安裝進而在 /etc/mtab 檔案中沒有包含的檔案系統。

  16. /proc/misc

    這個檔案報告用核心函數misc_register登記的裝置驅動程式。

  17. /proc/net

    此目錄下的檔案描述或修改了聯網代碼的行為。可以通過使用arp,netstat,route和ipfwadm指令設定或查詢這些特殊檔案中的許多檔案。

  18. /proc/self

    存放到檢視 /proc 的程式的程序目錄的符号連接配接。當2個程序檢視 /proc 時,這将會是不同的連接配接。這主要便于程式得到它自己的程序目錄。

  19. /proc/stat

    這個檔案包含的資訊有 CPU 使用率,磁盤,記憶體頁,記憶體對換,全部中斷,接觸開關以及啟動時間(自1970年1月1日起的秒數)。

  20. /proc/uptime

    系統啟動的時間長度。

  21. /proc/version

    核心版本

  22. /proc/locks

    這個檔案包含在打開的檔案上的加鎖資訊。檔案中的每一行描述了特定檔案和文檔上的加鎖資訊以及對檔案施加的鎖的類型。核心也可以需要時對檔案施加強制性鎖。

  23. /proc/pci

    這個檔案給出PCI裝置的資訊。用它可以友善地診斷PCI問題。你可以從這個檔案中檢索到的資訊包括諸如IDE接口或USB控制器這樣的裝置,總線,裝置和功能編号,裝置延遲以及IRQ編号。

  24. /proc/scsi
下一篇: 句柄

繼續閱讀