Linux系统各文件、目录介绍

Linux操做系统中,以文件来表示全部的逻辑实体与非逻辑实体。逻辑实体系指文
件与目录; 非逻辑实体则泛指硬盘、终端机、打印机等。
通常而言,Linux文件名称的组成除由连续字母、标点符号、数字等构成外,中间不
能有空格符、路径名称符号 / 或 # * % & {} [] ……..等与Shell有关的特殊字
符。
Linux文件系统中,结构上以root file system 位最上位也最为重要,所谓root
file system乃于开机时将root partition挂载在 / 的目录,若没法mount / 则开
机时没法进入Linux系统中此时仅能remount / 的目录。该目录下有/etc、/dev
、/boot、/home、/lib、/lost+found、/mnt、/opt、/proc、/root、/bin
、/sbin、/tmp、/var、/usr等重要目录,如下兹分别介绍之。
2、目录与文件简介
1./etc:本目录下存放着许多系统所需的重要设定与管理文件,有一些为纯档名,有
些是以.conf的型态出现另亦有一些自成单一目录:固然亦有些设定文件并不是放
在/etc目录下,例如使用者家目录之.bashrc、.bash_profile等文件;一般祇要更
动过/etc目录下之设定档内容必须从新激活设定档使设定生效,且通常亦无须重开
机。如下谨胪列主要文件如后:
(1) HOSTNAME
本文件内容仅记载主机+网域名称,在系统提示符号下输入hostname能够显
示HOSTNAME之文件内容。如:
www.webrj.com www.webrj.net www.e0797.com
www.ok138.com 等。(2) XF86Config本文件内容为X Window System的主要设定档,Caldera的版本放在/etc目录下,RedHat版本则放在/etc/X11目录下,有关显示卡、鼠标、键盘都可在此加以设定。(3) aliases本文件内容用来设定邮件别名及邮件清单可让特定的地址转寄给不一样的使用者或群组;编辑完/etc/aliases后须下newaliases指令使之生效,对于由远程寄送至local端的邮件具备备份功能,为mail server重要的设定档之一。(4) amd.conf本文件为一常驻服务程序(daemon),全名为automatically mount file system,Caldera的版本称为am.d;是一个能自动mount和umount cdrom和floppy的文件系统。(5) at.deny本文件为对可否使用at指令的使用者加以限制, at 是一个很是有用的工具,能够让使用者指定在特定时刻执行某个程序或指令,一般只执行一次。若是你想定时按期的执行某项工做,应该使用cron工具而非at。(6) crontab本文件可以让系统定时执行排程工做为系统管理上极为重要之文件,Cron是一个常驻程序 (daemon),在开机时激活cron的daemon时,它会自动去检查/var/spool/cron 目录下面看看是否有任何cron文件。每个user的能够去设定本身所要排定执行的工做。在这一个目录底下,每个user会有一个属于他loginid名称的cron文件,crond会自动将这些user的cron文件加载至内存中,并按期去执行每一个user的cron文件。另外,crond也会去读取 /etc/crontab 的内容。这是属于系统的cron工做设定文件,主要系统会按期去执行 /etc/cron.d/ 目录下面四个cron.daily、cron.hourly、cron.weekly、cron.monthly目录下(RedHat版本则集中放在/etc目录下)的命令。(7) dhcpd.conf本文件为DHCP Server的设定档,可烤贝/usr/doc/dhcp-serial number目录下的dhcpd.conf.sample至/etc目录下,该文件内容通常有记载着subnet、netmask、routers、domain-name、default-lease-time、max-lease-time及 IP range;亦可一并指派固定IP给特定主机。(8) dosemu.conf本文件为Dos仿真器的设定文件能够在Linux上仿真Dos环境,用Dos 指令。(9) dumpdatedump指令可对Linux ext2文件系统进行检查备份(例如dumpe2fs /etc 对/etc目录做备份),dumpdate则是存放dump指令的执行日期。(10) exports本文件为NFS(Network File System)设定档,NFS主要是运用在UNIX 系统上,用来使UNIX系统可以在几部计算机间作文件的分享。其功能相似windows的网络磁盘驱动器,能够mount的方式,分享其它linux或UNIX主机的目录或文件。exports文件内则分别记载着分享目录、分享对象及权限等项目。(11) fdprm本文件为软盘机参数表,含有各大小格式扇区磁道等资料。(12) fstab本文件包含了开机时需加载的文件系统,每一行都表示一个文件系统,各字段分别有特定的装置或远程的文件系统、挂载点、加载的文件型态、挂载选项、dump设定及fsck设定。此文件可供Linux于开机时加载到系统上,并于关机时卸载。(13) ftp*以ftp开头的文件如ftpaccess(主要设定档)、ftpconversions(文件的相关压缩规定)、ftpgroups、ftphosts、ftpusers(分别为ftp群组、主机、使用者拒绝存取设定)等均为ftp server相关的设定档。(14) group 本文件为群组的资料文件,可使每一个使用者均拥有本身的群组;一般而言新的使用者创建后的的同时会产生相同于使用者名称的群组名称(RedHatDistribution)(Caldera Distribution 则会随adduser 或useradd 指令的不一样而会归入users群组或相同于使用者名称的群组名称);在GNOME环境中可用LinuxConf设定,在KDE环境中可用User Manger加以设定之。(15) host*在/etc目录下以host开头的文件有host.conf、hosts、hosts.allow、host.deny等目录,兹分述以下:host.conf本文件设定网络搜寻顺序系依hosts或DNS之前后顺序定之;同时亦可一并设定是否将多重IP指定给一台主机与否。hosts本文件设定主机的IP及网域名称,利用此文件可加速特定主机的搜寻速度无须借助DNS之功能,早期未有DNS前便是依赖hosts档做名称查寻。hosts.allow本文件记载着容许那些主机联机到你的主机,在系统安全上为Tcpwrapper机制的存取控制文件。一般是维护主机安全或做测试用。hosts.deny本文件记载着拒绝那些主机联机到你的主机,在系统安全上为Tcpwrapper机制的存取控制文件。一般是维护主机安全或做测试用。通常而言,常与hosts.allow檔原则上先deny ALL 再设定allow,被allow赞成的存取便不会再被deny否决。(16) httpd本目录下置放有conf目录、log 及module等文件其中尤以conf目录下的httpd.conf(主要设定档) 、access.conf(网页目录及资料来源路径文件)、srm.conf(设定apache的存取控制檔),目前Apache 1.3.9之后版本已整合成httpd.conf加以设定便可;/etc/httpd为Apache Server重要目录所在。(17) inetd.conf一般当系统激活时,有部份的service是并无在开机时被激活的,以节省系统资源。他们是利用inetd( internet daemon)--来监控网络服务的要求,再激活适当的daemon。inetd 是用来监控各类service的daemon,依不一样的port提供不一样的监控。/etc/inetd.conf即为其设定档,并由tcpd来提供监控。例如将telnet加上#,系统便不提供telnet的服务。本文件最常与Tcpwrapper机制的存取控制文件hosts.allow及 hosts.deny搭配负责网络安全的监控;举ftp为例,当inetd接收到使用ftp的请求时,便会激活tcpd,tcpd先纪录这项ftp的请求,而后检查hosts.allow、host.deny这二个存取设定控制档,若是赞成存取,就会激活。另外,Tcpwapper只能影响inetd激活,而且在inetd.conf里面通过编辑,由tcpd呼叫的服务,因此并不能为其它服务提供安全保障(如sendmail、NFS等)。管理者能够看log文件知道系统是否有被别人侵入。(18) inittab通常Linux系统激活时,LILO 执行后加载kernel,kernel激活后呼initprogram(/sbin/init)激活系统必备程序,init为parent process(呼叫后fork 许多child process),接着便检视/etc/inittab,视/etc/inittab以runlevel? 启动再执行/etc/rc.d/rc.?d/下全部s开头之shell script,直到完成(ex.s10network ; s40cron)是以inittab文件乃在规范使用者要以那一种runlevel登入Linux系统,咱们亦可直接在系统提示符号下输入init 或telinit 后加上欲豋入之第几层runlevel,例如init 3 或telinit 5,便可进入该环境模式。(19) isapnp.gone本文件包含ISA适配卡所使用的资源,可用来设定硬件所需的内存、I/O Base、IRQ及DMA。(20) issue(net)本文件是记载使用者在登入本机时所出现的一段文字讯息,例如「Red HatLinux release 6.2 (Zoot) + CLE V0.9P1 (Yami) Kernel 2.2.17-4CLE on ani586」而issue.net则用于远程登入时之文字讯息显示之用。issue文件可加以修改为你须要出现的内容, 但需同时将/etc/rc.d/rc.local文件中「echo “” >/etc/issue至echo >> /etc/issue」等几行加上批注起来,始能生效。(21) ldso.conf本文件存放了系统中共享函式库(shared libraries)的路径;Linux提供了两种形式函式库:shared及static,而Unix只提供shared libraries。当程序被编译时,程序便会去连结该程序所需用到的函式库。有时候程序为了便于侦错,或是为了某些考量,咱们不但愿程序去使用共享函式库,而是把会用到的连接库所有连结进程序的执行文件,让程序自己拥有一份函式库中函式的副本,这种方式称为静态连结程序(static linked),而依赖共享函式库所创建的程序称动态连结程序(Dynamically Linked)。系统安装了library后,必须告诉程序library放置于何处,使用共享函式库的好处是免除不一样的程序里重复使用静态函数库(staticlibraries),与其在每一个呼叫这些函式的程序里都储存一份copy,不如把函式库集中在系统的文件里,让执行的程序均可以读到这个程序。当编辑完ldso.conf文件增长新的函式库或新安装某个套件以后(可能会安装某个新的共享函式库),后须下ldconfig -v,使之生效。(22) lilo.conflilo即linux loader,本文件lilo.conf内容能够分为两部分: Global及per-p_w_picpath,负责指定开机时所使用的kernel及开机时所要读取的lilo是放在哪一个装置,另亦有设定多重开机功能,使多个操做系统并存;若是对本文件进行修改,须下lilo –v –v –v 的指令重改设定因为lilo并不是为一Daemon,仅为一内部程序,一般须重开机后设定始能生效。(23) mediaprm本文件用来定义磁盘驱动器位于Linux下的代号ex. /dev/fd0、/dev/cdrom(24) modules.conf本文件为模块的主要设定文件,在Red Hat 版本之名称命名为conf.modules,Modules通常来讲大部分为一些装置、网络、文件系统等的驱动程序,传统上,驱动程序是核心的一部份,由于几乎全部的核心都须要藉由成为核心码的一部份来取得使用硬件的能力,至于模块化程序则是一种可加载之式驱动程序(Loadabledevice driver),在系统执行时是直接由加载内存或从内存卸载;而使用module的方式,能够不用从新创建kernel,同时也能够节省时间及内存空间。(25) motd本文件为系统显示与user的提示讯息提示的时机则在user login并输入账号及密码后出现之讯息,例如:「Last login: Mon Dec 18 10:19:15 on tty1」。(26) mtab本文件记载着已挂载(mount)的文件系统,当你下mount指令时所显现以内容与mtab内容常相一致。(27) ntp.confNTP全名为Network Time Protocol(网络对时协议),系client端针对NTP Server做同步化对时所使用之协议,为达到NTP同步化获致正确而可信赖时间。ntp.conf则为主要设定文件提供模式的选择和使用的servers设定。(28) pam.dPAM(Pluggable Authentication Modules)便可插拔的认证模块;当login时,必需提供username和password,而后系统根据所给予的username和password来验证能否login,确认使用者身份,PAM容许设置多种认证方式,不须再从新编译核心要进行认证的程序。使用PAM,可编辑配置文件动态的去读取配置模块,而后再去执行验证;pam.d目录下则放置与PAM相关的文件。(29) passwd每一位使用者皆有使用者名称供以辨识身份,亦必须一并设定密码在/etc/passwd文件中能够root身份来加入新的使用者,一般user输入username及密码,系统会先将输入之密码加密成13位码,再与 / etc / passwd做一比对,无误与否。至于实际的密码则放在/etc/shadow文件中。(30) protocols通信协议号码是IP数据段表头中的一个字节,藉以显示出数据应该传给IP层以上的何种协议;至于协议号码则规范在本文件中,protocols内容是一个对照表,包含协议名称及协议号码和批注等栏项,利用协议号码与协议名称的对照即可知使用何种协议。(31) rc.d本目录下以etc/rc.d/rc0.d ~ /etc/rc.d/rc6.d里的文件表明各类不一样runlevel所激活的daemon尤其重要,K表明kill,S表明start。在渠等目录下的文件一般为一连结档link至/etc/rc.d/init.d 里的daemon以供激活。/etc/inittab文件乃在规范使用者要以那一种runlevel登入Linux系统,至于本文件案则视以runlevel?登入,表明激活rc?.d目录下依序激活各连结档的shellscript(/etc/rc.d/init.d 里的daemon)。(32) resolv.confBIND的伺服端透过daemon(/etc/rc.d/init.d/named)来执行;BIND的客户端则透过resolver,它是一个程序函式库组成,会发出名称查询,而由/etc/resolv.conf设定之(即将nameserver加入该文件中),例如echo “nameserver 172.17.0.10” >> /etc/resolv.conf 或者手动vi编辑之。(33) rpcrpc全名为remote procedure call即远程程序呼叫,一般系指local 端程序对位于远程系统中的程序进行呼叫,俟其完成任务并将该任务传回给local端;/etc/rpc文件内存rpc程序号码数据库,含有使用者可识别之替代rpc程序号码的名称基本格式则含有rpc程序的server名称、rpc程序号码、别名等记载栏项。(34) samba.d/smb.conf:Samba(Server Message Block protocol)使用来将linux system与windowssystem透过网络上的芳邻做沟通整合之用,而/etc/samba.d/smb.conf 则为samba的重要设定档,该档中主要分global与share defini tions二大项;/etc/samba.d/ smbpasswd则是samba password的设定档。(35) securetty本文件定义了root可login的terminal,通常而言预设为tty1至tty8,root只能从定义中的terminal登入。(36) sendmail.cf本文件为mail server的重要设定档,sendmial是一种MTA,目前在unix或linux上使用至关普遍,由柏克莱大学大学生所写的程序,功能强大,但sendmail.cf内容由宏指令写成较为艰涩难懂,所以通常除假装名称、主机的别名、收信的主机位置名称等少数项目由sendmail.cf文件直接于其中设定外,通常而言,均另用m4产生sendmail.cf的宏定义档,RedHat版本名称为/etc/sendmail.mc ,OpenLinux版本则放在/usr/share/sendmail/cf/cf/gerneric-col2.2.mc;此外/etc/aliases、/etc/access、/etc/mail/relay-domains亦为sendmail的相关设定檔。(37) services通常而言Linux或Unix的操做系统port号码常定义在/etc/services文件中由port号码可辨示出application process(应用程序行程)即网络服务例如ftp、telnet;在services文件中256如下port号码保留给经常使用的网络服务,256到1024的port号码则由特定的Linux服务使用,另不一样的Transport Layer(传输层)能够共享相同的port号码;port号码必须与协议号码共同搭配始能将资料导引到正确的网络服务。(38) shadowShadow passwording将密码移到另外一个文件,本文件即属密码文件而与/etc/passwd搭配;权限上则较为严格,通常而言,仅有root有读写(Calderadistribution)或读(RedHat distribution)的权利。(39) skel本目录下之文件内容例如:.bash_logout、.bash_profile、.bashrc、.kde、.kderc、.netscape、.screenrc、Destop等便是用来在创建一新的使用者时在/home/目录下的使用者名称目录的内容即烤贝至skel此目录下之文件内容。(40) sysconfig/network-sccripts/ifcfg-eth?本文件为网络卡的设定档内容有设备名称、IP地址、屏蔽、广播地址、网段、开机激活设定等项目。(41) wgetrcwget乃使用来将World wide web上之文件取回之工具指令,wgetrc文件则是wget初始化的文件其中有quota、mail header、重传文件的预设次数、firewall及proxy的相关设定。(42) z*如下z开头的文件均为zshell相关的设定档zlogin系指z shell的登入设定;zlogout系指z shell的注销设定;zprofile系指z shell的使用者设定;zshenv系指z shell的使用环境设定;zshrc系指z shell的资源档设定。2./dev:本目录中存放了device file(装置文件),使用者能够经由核心用来存取系统中之硬设备,当使用装置文件时 核心会辨识出I/O Request传递到相对应装置的驱动程序以便完成特定的动做;每一个装置在/dev目录下均有一个相对应的项目;另/dev目录下尚有一些项目是没有的装置这一般是安装系统时所创建的,它不一定对应到实体的硬件装置;此外亦有一些虚拟的装置,不对应到任何实体装置,例如俗称黑洞装置的/dev/null,任何写入该档的请求均会被执行但被写入的资料均会如进入黑洞般的消失无踪。在/dev目录下第一栏的文件型态会发现常存有既非directory亦非file而是“b”或”c”,”b”指block device file(区块装置文件),”c”指characterdevice(字符装置文件);区块装置(例如硬盘)一般是外接装置,资料的读写都是以整个区块的形式进行读写,字符装置(例如串行端口),资料的读写都是以一个byte来进行读写。(1) /dev/fd*fd0、fd1--------等指第几个软盘支持的装置驱动接口,fd0表示第一个fd1表示第二个。(2) /dev/hd系指IDE硬盘的装置驱动接口,在/dev/lilo.conf设定中boot=/dev/hda即指整颗硬盘,/dev/hda1则指硬盘中的第一个partition。(3) /dev/sd系指SCSI磁盘的装置驱动接口。(4) /dev/console系指系统的操做控制台乃实际链接到Linux操做系统的屏幕。(5) /dev/tty系指提供使用者不一样的terminal操做控制台的装置驱动接口,并有virtualconsole的功能切换上可以使用ctrl+alt+F1~F6。(6) /dev/ttyS?ttyS系指串行端口接口ttyS0即为COM1,ttyS1即为COM23./boot:本目录下放置有系统激活的相关文件例如initrd.img、vmlinuz、System.map,均为重要的文件,是以本目录不可任意删除。initrd.img为系统激活时最早加载的文件。Vmlinuz即为kernel的p_w_picpath文件。System.map包括了kernel的功能及位置。top、ps指令会去读此文件来显示系统目前的信息状态。所以System.map必须对应到相同的kernel,否则会显示错误的信息。4./home:通常而言,使用者的家目录就($HOME)是放在/home这个目录下,而以使用者名称做为/home目录下各个目录的名称例如使用者col的家目录路径即为/home/col目录下当使用者col login时,其所在的目录即为/home/col,此外ftp站台目录(ftp)及web站台目录(httpd)亦置于/home目录下。5./lib:许多系统激活时所须要用到重要的共享函式库shared libraries均放于此,包含最重要的GNU C library在内,凡档名为library.so.version的共享函式库,一般放在/lib目录下。/usr/lib/:本目录与/lib目录不一样的是/lib乃系统激活时所须要用到重要的共享函式库而/usr/lib乃关于应用软件常置放函式库之处;例如放置一些其它应用程序(如Netscape、X server)等的share libraries。其中,最重要的函式库为libc或glibc (glibc 2.x即是libc 6.x版本,标准C语言函式库)。几乎全部程序都会用到libc或glibc,由于这两个程序提供了对于Linux kernel的标准接口。又档名为library.a的静态函式库,一般亦放在/usr/lib目录下。6./lost+found:通常重启或关闭system,可下sync;sync.避免有些message会留在硬盘之cache上,此时dirty bit为1,当再开机时,system会去检查每个dirtybit是否为0,如果为1则会执行fsck。做fsck时,常会问要否删除dirtybit,如选yes时,会把inode集中放在lost+found?用file 指令去查寻,不重要再行删除便可(inode number)。简单言之,本目录乃记录硬盘上的partition于资料流失时做fsck寻找回来的遗失文件片断。7./mnt:本目录为系统内定的mount point(挂载点),预设则有/nnt/cdrom和/mnt/floppy,使用自动的挂载程序例如KDE桌面上的cdrom与floppy或者GNOME的Drive MountApplet,均会自动地把光驱和软盘机挂载至这二个目录。若是要挂加载额外的文件系统,通常而言咱们都会将/mnt目录看成挂载点,而后在该目录下创建任一目录名称做为挂载目录;家目录把同一颗硬盘上的另外一个Window 2000操做系统mount到本机Linux操做系统上则可用此法。8./proc:本目录为一个虚拟的文件系统,其功能乃在统一文件与行程,它不占用任何硬盘空间,由于该目录下的文件均放置于内存内;每当你存取/proc文件系统时kernel会拦截你的存取动做撷取相关信息再动态的产生目录与文件内容。本目录下主要有二大形态的文件;其一是以PID数字为文件名,/proc会记录系统每一个行程,有助于系统的管理于与除错;其二乃kernel所搜集到的系统使用的硬件信息例如/proc/ioports、/proc/dma、/proc/meminfo、/proc/interrupts均属之。9./root:本目录为系统管理者 root的家目录。10./bin:bin为binary的简写主要放置一些系统的必备执行文件例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。/usr/bin:主要放置一些应用软件工具的必备执行文件例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、gzip、htpasswd、kfm、ktop、last、less、locale、m四、make、man、mcopy、ncftp、newaliases、nslookuppasswd、quota、smb*、wget等。/sbin:主要放置一些系统管理的必备程序例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、runlevel、shutdown等。/usr/sbin:放置一些网络管理的必备程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。11./tmp:本目录乃供全体使用者暂时放文件的目录,有时某些应用程序执行中产生的临时文件亦会暂放至此目录;然而系统预设本目录权限为可读、写、执行但没法删除之1777(drwxrwxrwt)亦即多加上save program text on swap device即t 的权限;以免有人任意删除他人存放于/tmp目录的文件。12./var:Linux操做系统常常须要变更的或暂存的资料常放在固定的目录然后系统新产生的资料都会在这个文件中做更新;在这个目录下有几个重要的目录例如:/var/log;/var/spool;/var/run等如下兹分别介绍之:(1) /var/loglog文件乃记载着Linux操做系统运做过程的记录分别有激活纪录(boot)、网站存取、错误、安全记录(httpd/access_log、httpd/error_log、httpd/ssl*)、邮件记录(maillog)、登入讯息(secure)、FTP讯息(xferlog)。(2) /var/spoolspool乃Linux操做系统将工做暂放置于内存特定区域或硬盘上特定设备,/var/spool是一个队列目录提供spool服务,其底下最为重要的目录即为lpd、mail、squid等三个目录;打印文件的print queue会在/var/spool/lpd。
相关文章
相关标签/搜索