歡迎您光臨本站 註冊首頁

Linux目錄詳解,很詳細的目錄解釋

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

Linux目錄詳解,很詳細的目錄解釋

Linux目錄詳解,很詳細的目錄解釋



Linux目錄詳解(RHEL5.4)

linux有四種基本文件系統類型:
--普通文件:如文本文件、c語言源代碼、shell腳本等,可以用cat、less、more、vi等來察看內容,用mv來改名;
--目錄文件:包括文件名、子目錄名及其指針,可以用ls列出目錄文件;
--鏈接文件:是指向一索引節點的那些目錄條目,用ls來查看時,鏈接文件的標誌用l開頭,而文件后以"->"指向所鏈接的文件;
--特殊文件:如磁碟、終端、印表機等都在文件系統中表示出來,常放在/dev目錄內;
可以用file命令來識別。


linux系統中,所有的文件與目錄都是由根目錄/開始,不是以/開頭的就是相對路徑;
.:表示當前目錄,也可以用./表示;
..:表示上一級目錄,也可以用../表示;
~:代表用戶自己的宿主目錄;

/:處於Linux文件系統樹形結構的最頂端,我們稱它為Linux文件系統的root,它是Linux文件系統的入口。所有的目錄、文件、設備都在/之下,它是Linux文件系統最頂層的唯一的目錄;
         一般建議在根目錄下面只有目錄,不要直接存放文件;根目錄是linux系統啟動時系統第一個載入的分區,所以啟動過程中用到的文件應該都放在這個分區中,其中/etc、/bin、/dev、/lib、/sbin這5個子目錄都應該要與根目錄連在一起,不可獨立成為某個分區;
/bin:存放所有用戶都可以使用的linux基本操作命令;(目錄中多是可執行的二進位文件)
/dev:設備文件目錄,虛擬文件系統,主要存放所有系統中device的相關信息,不論是使用的或未使用的設備,只要有可能使用到,就會在/dev中建立一個相對應的設備文件;設備文件分為2種類型:        字元設備文件和塊設備文件(目錄中基本上都是設備文件,如硬碟設備文件/dev/sda)
         /dev/console:系統控制台,也就是直接和系統連接的監視器;
         /dev/hd:IDE設備文件;
         /dev/sd:sata、usb、scsi等設備文件;
         /dev/fd:軟碟機設備文件;
         /dev/tty:虛擬控制台設備文件;
         /dev/pty:提供遠程虛擬控制台設備文件;
         /dev/null:所謂"黑洞",所有寫入該設備的信息都將消失,如當想要將屏幕上的輸出信息隱藏起來時,只要將輸出信息輸入到/dev/null中即可;
         

/home:默認存放用戶的宿主目錄(除了root用戶)
         /home/~/.bashrc:提供bash環境中所需使用的別名;
         /home/~/.bash_profile:提供bash環境所需的變數;一般先執行.bashrc后,才會再執行.bash_profile;
         /home/~/.bash_history:用戶歷史命令文件,記錄用戶曾經輸入過的所有命令;(默認為1000條,可以通過HISTSIZE變數更改)
         /home/~/.bash_logout:當用戶註銷的同時,系統會自動執行.bash_logout文件,如果管理員需要記錄用戶註銷的一些額外記錄、動作或其他信息,就可以利用這個機制去完成;
/lost+found:當系統在運行時,有時會無法避免宕機、斷電或不正常重啟動,在這樣的情況下,當系統重新啟動時,發現某些文件寫入未完成或其他問題產生,一般會使用fsck進行文件修復,而這些被修復或救回的文件,就會被放在這個目錄下,只要是一個文件系統,系統就會自動在該文件系統所在的目錄下建立"lost+found"目錄
/misc:自動掛載服務目錄,對應autofs服務;
/proc:虛擬文件系統,此目錄是kernel載入后,在內存裡面建立的一個虛擬目錄,有專屬的文件系統,主要提供系統一些實時的信息,此目錄下不能建立和刪除文件;(某些文件可以修改)
         /proc主要作用可以整理為:
         --整理系統內部的信息;
         --存放主機硬體信息;
         --調整系統執行時的參數;
         --檢查及修改網路和主機的參數;
         --檢查及調整系統的內存和性能;
         /proc下常用的信息文件有:
         /proc/cpuinfo:cpu的硬體信息,如類型、廠家、型號和性能等
         /proc/devices:記錄所有在/dev目錄中相關的設備文件分類方式
         /proc/filesystems:當前運行內核所配置的文件系統
         /proc/interrupts:可以查看每一個IRQ的編號對應到哪一個硬體設備
         /proc/loadavg:系統"平均負載",3個數據指出系統當前的工作負載
         /proc/dma:當前正在使用的DMA通道
        /proc/ioports:將目前系統上所有可看到的硬體對應到內存位置的分配表的詳細信息呈現出來
         /proc/kcore:系統上可以檢測到的物理內存,主機內存多大,這個文件就有多大
         /proc/kmsg:在系統尚未進入操作系統階段,把載入kernel和initrd的信息先記錄到該文件中,後續會將日誌信息寫入/var/log/message文件中
         /proc/meminfo:記錄系統的內存信息
         /proc/modules:與lsmod命令查看到的模塊信息完全一致
         /proc/mtrr:負責內存配置的機制
         /proc/iomem:主要用於儲存配置后所有內存儲存的明細信息
         /proc/partitions:這個文件可以實時呈現系統目前看到的分區
         /proc/數字目錄:數字目錄很多,它們代表所有目前正在系統中運行的所有程序
         /proc/bus:有關該主機上現有匯流排的所有信息,如輸入設備、PCI介面、PCMCIA擴展卡及USB介面信息
         /proc/net目錄:存放的都是一些網路相關的虛擬配置文件,都是ASCII文件,可以查看(與ifconfig、arp、netstat等有關)
         /proc/scsi:保存系統上所有的scsi設備信息(包括sata和usb設備的信息)
         /proc/sys目錄:存放系統核心所使用的一些變數,根據不同性質的文件而存放在不同的子目錄中,可以通過/etc/sysctl.conf文件設置和更改其默認值;變數時實時的變更,有很多設置很象是開關,設置后馬上生效;
         /proc/tty:存放有關目前可用的正在使用的tty設備的信息
         /proc/self:存放到查看/proc的程序的進程目錄的符號連接,當2個進程查看proc時,這將會是不同的連接;主要便於程序得到它自己的進程目錄;
         /proc/stat:系統的不同狀態信息;
         /proc/uptime:系統啟動的時間長度;
         /proc/version:系統核心版本;
/sbin:系統管理相關的二進位文件存放在這個目錄下,一些可執行文件普通用戶只具備較小的許可權;(多數管理命令默認只有管理員可以使用)
/srv:默認為空,主要用於存放一些軟體的配置文件,某些軟體可能會把配置文件默認存放在這個目錄下,多數都是/etc目錄下,此目錄沒有被具體的定義;
/tftpboot:遠程啟動tftpserver的根目錄,這個目錄只有安裝了tftp-server軟體后才會產生;
/usr:安裝除操作系統本身外的一些應用程序或組件,一般可以認為linux系統上安裝的應用程序默認都安裝在此目錄中;
         /usr/bin:一般用戶有機會使用到的程序,或者該軟體默認就是要讓所有用戶使用才會放在該目錄中;
         /usr/sbin:一些系統有可能會用到的系統命令,與/sbin比起來,都是一些較次要的文件;
         /usr/etc:自行安裝或非系統主要的配置文件目錄;
         /usr/games:只要是電腦遊戲相關的軟體,就都安裝到這個目錄;
         /usr/include:存放的文件都是一些系統中用戶所會使用到的C語言header文件,保存的都是".h"的文件;
         /usr/kerberos:kerberos是一種安全機制,讓用戶可以直接使用支持kerberos機制系統上的部分資源;
         /usr/lib:存放一些函數庫、執行文件及連接文件,特別的是,存放在這裡面的文件都是不希望直接被用戶或shell腳本所使用的文件,在/usr/lib中有非常多的子目錄,每一個軟體都有其各自所需的函數庫;
         /usr/libexec:這個目錄下的文件及文件夾應該都可以放置在/usr/lib下;
         /usr/local:linux系統中安裝的共享軟體程序最好的方式是安裝在/usr/local下,按照linux標準目錄結構,新建立的軟體都應該放在/usr/local下;
                 /usr/local/bin:存放軟體執行文件的目錄;
                 /usr/local/sbin:同樣存放軟體執行文件的目錄,但此目錄專門針對系統所使用的文件;
                 /usr/local/lib:軟體相關的函數庫;
                 /usr/local/share:當文件性質不好歸屬時就會放在此,man手冊就放在這個目錄下;
                 /usr/local/src:所安裝軟體的源代碼放置在此;
         /usr/share:此目錄都是一些共享信息,最常被用到的就是/usr/share/man這個目錄,/usr/share里的信息時跨平台的;
         /usr/share/doc:放置一些系統幫助文件的地方;
         /usr/share/man:manpage的文件存放目錄,也是使用man查看手冊頁時查詢的路徑;
         /usr/src:主要儲存內核源代碼的文件;
         /usr/X11R6:存放一些X windows系統的相關文件;

/boot:存放開機啟動載入程序的核心文件;(如kernel和grup)
         config-2.6.18-164.el5:系統kernel的配置文件,內核編譯完成後保存的就是這個配置文件;
         lost+found:說明/boot是一個獨立的ext3文件系統;
         vmlinuz-2.6.18-164.el5:系統使用kernel,非常重要;
         grub:多系統啟動管理程序grub的目錄,裡面存放的都是grub在啟動時所需要的畫面、配置及各階段的配置文件;其中grub.conf是grub的配置文件;
         symvers-2.6.18-164.el5.gz
         initrd-2.6.18-164.el5.img:此文件是linux系統啟動時的模塊供應主要來源,initrd的目的就是在kernel載入系統識別cpu和內存等核心信息之後,讓系統進一步知道還有那些硬體是啟動所必須使用的;
         System.map-2.6.18-164.el5:是系統kernel中的變數對應表;(也可以理解為是索引文件)
/etc:主機、系統或網路配置文件存放目錄;
         簡單的將/etc目錄分為以下幾類:
         --基本文件:所有直接放在/etc目錄下的文件歸類為基本文件;
                 aliases:用於設置郵件別名;
                 auto.*:代表的是一系列autofs服務所需要的配置文件,這個服務主要是讓管理員可以事先定義出一些網路、本機或光碟機等默認的路徑;
                 auto.master:負責規劃目錄的分配與使用,目前默認提供三種自動掛載模式;
                 auto.misc:文件中的配置都以實體連接本機的磁碟驅動器為主;
                 auto.net:並不是一個配置文件,而是一個腳本文件,在使用上其實不須做任何調整;;
                 auto.smb:與auto.net一樣,都是以個腳本文件;
                 bashrc:用戶登錄功能配置,全局配置,對所有用戶生效,主要配置別名;
                 profile:與系統環境配置或初始化軟體的相關配置,全局配置,對所有用戶生效,主要配置變數;
                 DIR_COLORS:用於配置ls命令的顏色,主要針對tty登錄的用戶;
                 DIR_COLORS.xterm:用於配置ls命令的顏色,主要針對xterm登錄的用戶;
                 fstab:系統啟動時自動掛載文件系統的配置文件;
                 inittab:啟動時系統所需要的第一個配置文件;也即是init進程的配置文件;
                 issue:用戶本機登錄時,看到的歡迎信息;
                 issue.net:用戶網路登錄時,看到的歡迎信息;
                 ld.so.conf:包含ld.so.conf.d/*.conf配置;主要是ld.so.conf.d/*.conf目錄的作用;
                 localtime:系統所使用的時區對應的配置文件;對應的時區文件都存在於/usr/share/zoneinfo/
                 motd:登錄成功的用戶顯示的信息對應的配置文件;
                 mtab:可以當做是檢查當前文件系統掛載情況的配置文件;與mount命令結果一致;
                 prelink.conf:定義哪些執行文件和函數庫是需要預先連接的;
                 securetty:主要是login程序在使用的,只要是列在該文件中的介面,就表示是可以使用的介面,相反,若從列表中刪除,則無法使用該介面;
                 shells:記錄目前系統所擁有shell種類的路徑,通過cssh命令使用;
                 sudoers:sudo命令對應的配置文件,用於配置許可權的分配方式;
                 sysctl.conf:主要是幫助用戶配置/proc/sys目錄下所有文件的值,與sysctl命令對應;
                 syslogd.conf:是syslogd服務的配置文件
                 host.conf:主機名解析配置文件,主要說明解析的方式及順序;
                 hosts:主機名解析配置文件,主要列出所有需要本地解析的主機名與IP地址的對應關係;
                 hosts.allow和hosts.deny:linux網路安全機制TCP Wrapper對應的配置文件;
                 nsswitch.conf:主要記錄系統應如何查詢主機名、密碼、用戶組、網路等,或是查詢順序的編排;
                 resolv.conf:記錄DNS伺服器地址,用於DNS域名解析;
                 services:定義了網路服務的默認埠號;
                 xinetd.conf:xinetd的主配置文件,目的是為xinetd.d下的所有子服務建立一個標準的規範使其可以遵循;
                 anacrontab:屬於一種任務計劃軟體的配置文件,anacrontab軟體和crond其實有點相輔相成,crond負責任務計劃,而anacrontab則是負責以"間隔多久"為主要的目標;
                 at.deny:該文件屬於拒絕列表,只要被記錄在其中的用戶,就無法使用at所提供的任務計劃服務;
                 at.allow:與at.deny剛好相反;
                 crontab:crontab的主配置文件,crond默認會執行的文件可以參考此配置文件;
                 cron.deny:該文件屬於拒絕列表,只要被記錄在其中的用戶,就無法使用crond所提供的任務計劃服務;
                 cron.allow:與cron.deny剛好相反;
                 exports:是NFS服務的主配置文件,主要目的就是將本機的目錄共享到網路上,供其他人使用;
                 group與gshadow:用戶組配置文件,group主要保存用戶組信息,gshadow主要保存群組密碼;
                 login.defs:設置系統在建立賬號時所參考的配置;
                 passwd:主要保存系統用戶賬號的信息;
                 shadow:linux系統通常包經過"hash"處理后的密碼存儲在這個文件中;
                 protocols:通信協議對應埠號的一個對照表,包含協議名稱、協議號碼、註釋等;
                 wgetrc:wget程序對應的配置文件,其中有quota、mail header、重傳文件的預設次數、firewall和proxy等相關設置;
                 init.d:RHEL中所有服務的默認啟動腳本都存放在這裡;這個是鏈接文件,鏈接到/etc/rc.d/init.d;
                 csh.cshrc和csh.login: 用戶啟動c shells執行的初始化配置文件;
                 printcap:linux系統中印表機設備對應的配置文件;
         --伺服器目錄:如samba、http、vsftpd等伺服器配置相關目錄;
                 cups:linux下的印表機伺服器,目錄下存放的是印表機服務的配置文件;
                 dnsmasq.d:dnsmasq是一種DNS的"輕薄機種",轉為區域或小型網路所設計,擁有比一般DNS更為方便簡易的配置;
                 httpd:apache網頁伺服器的配置文件所在目錄;
                 mail:Mail Server組件的主要配置目錄,如sendmail;
                 ntp:網路時間伺服器的配置目錄,其主要配置文件為/etc/ntp.conf;
                 openldap:目錄明顯是LDAP的配置目錄,軟體名稱為OpenLDAP;
                 postfix:postfix組件所提供的主要配置文件目錄;
                 samba:文件共享服務samba的主要配置文件目錄;
                 smrsh:這是sendmail為了限制用戶可使用的命令設計的程序,將原本用戶所使用的/bin/sh替換為/usr/sbin/smrsh;
                 snmp:簡單網路管理軟體的配置文件目錄,存在snmpd.conf主配置文件;
                 squid:這是linux下的代理伺服器squid的配置文件目錄,主配置文件是squid.conf;
                 ssh:SSH服務的主要配置目錄,主配置文件是sshd_config;
                 vsftpd:vsftpd伺服器的主要配置目錄,主配置文件是vsftpd.conf;
                 xinetd.d:xinetd是一個管理多個服務的daemon,這個目錄下列出的服務都是由xinetd進程管理的,其主配置文件是/etc/xinetd.conf;
         --系統目錄:如sysconfig、xen或網路配置等與系統運行相關的目錄;
                 blkid:此目錄所存放的其實是一個塊設備ID的臨時文件,主要是記錄系統中所有區塊設備的標籤名稱、硬體的唯一識別碼、文件系統的格式等基本信息;
                 bluetooth:linux下使用藍牙設備所需的配置文件;啟動藍牙檢測的主要服務仍是/etc/rc.d/init.d/bluetooth,該程序使用的是hcid.conf配置文件;
                 cron.X:cron.X的目錄都是給cron軟體存放其需要任務計劃的文件所使用的,按任務計劃時間的長短及配置特性分為cron.d、cron.daily、cron.hourly、cron.monthly、cron.weekly五個主要目錄;
《解決方案》

謝謝分享  希望於樓主多多交流

[火星人 ] Linux目錄詳解,很詳細的目錄解釋已經有312次圍觀

http://coctec.com/docs/service/show-post-1432.html