Linux常见目录解析

作者: 喵的小可爱呀 | 来源:发表于2019-03-28 21:26 被阅读7次

    1./bin

        bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。

        2./boot

        引导加载器使用的文件。这里存放的是启动Linux时使用的一些核心文件。如grub。核心映像也经常在这里,而不是在根目录。

        3./dev

        dev是device(设备)的缩写。包括所有设备的设备文件。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。

        4./etc 

        这个目录用来存放系统管理所需要的配置文件和子目录。

        其中包含以下子目录:

        (1)/etc/rc、/etc/rc.d、/etc/rc.d

        启动或改变运行级别时运行的scripts或scripts的目录。

        (2)/etc/passwd

        用户数据库,包含用户名、真实姓名、宿主目录、加密的口令和用户的其他信息。

        (3)/etc/fstab

        启动时“mount-a”命令自动mount的文件系统列表。

        (4)/etc/group

        类似于/etc/passwd,但说明的不是用户而是组。

        (5)/etc/inittab

        Init配置文件。

        (6)/etc/issue

        getty在登录提示符前的输出信息,通常包括系统的一段短说明或欢迎信息。

        (7)/etc/magic

        File的配置文件,包含不同文件格式的说明。

        (8)/etc/motd

        成功登录后自动输出,内容由系统管理员确定,经常用于通告信息,如计划关机时间的警告。

        (9)/etc/mtab

        当前安装的文件系统列表,由cripts初始化,并由mount命令自动更新。需要一个当前安装的文件系统列表时使用df命令。

        (10)/etc/shadow

        在安装了影子口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,而后者只对root可读,这使破译口令更困难。

        (11)/etc/login.defs

        login命令的配置文件。

        (12)/etc/printcap

        类似/etc/termcap,但此文件主要针对打印机。

        (13)/etc/profile、/etc/csh.login、/etc/csh.cshrc

        登录或启动时Bourne或Cshells执行的文件,这允许系统管理员为所有用户建立全局缺少环境。

        (14)/etc/securetty

        确认安全终端,即哪个终端允许root登录。一般只列出虚拟控制台,这样用户很难通过网络远程登录。

        (15)/etc/shells

        列出可信任的shell。Chsh命令允许用户在本文件指定范围内改变登录shell。比如FTP服务的服务进程ftpd检查用户shell是否列在/etc/shells文件中,如果不是将不允许该用户登录。

        (16)/etc/termcap

        终端性能数据库,说明不同的终端用什么转义序列控制。写程序时不直接输出转义序列,而是从/etc/termcap中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。

        5./home

        包含用户宿主目录,即系统上的所有实际数据。将宿主目录分到自己的目录树或文件系统中易于备份,其他部分不必经常备份。比如,说有个用户叫wang,那他的主目录就是/home/wang也可以用~wang表示。

        6./lib

        根文件系统上的程序所需的共享库和内核模块。这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

        /lib/modules为核心可加载模块,特别是那些恢复损坏系统时引导所需的模块(例如网络和文件系统驱动)。

        7./lost+found

        这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。对了,有点类似于DOS下的.chk文件。

        8./mnt

        系统管理员临时挂载的安装点。程序并不是自动支持安装到/mnt,/mnt可以分为子目录。这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。

        9./opt

        这是给主机额外安装软件所放的目录。不过,以前的Linux系统中,我们还是习惯放在/usr/local目录下。

        10./proc

        这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

        11./root

        系统管理员(也叫超级用户)的主目录。作为系统的拥有者,总要有些特权啊!比如单独拥有一个目录。

        12./sbin

        s就是SuperUser的意思,也就是说这里存放的是系统管理员使用的管理程序。但只用root用户才能使用。

        13./srv

        一些服务启动之后,这些服务所需要访问的数据目录。例如,WWW服务器需要的网页数据就可以放在/srv/www中。

        14./tmp

        用于存放各种临时文件的地方了。

        15./usr

        包含所有命令、库、man页和其他一般操作中所需的不改变的文件。/usr目录经常很大,因为所有程序都安装在这里。/usr里的所有文件一般来自Linuxdistraibution,本地安装的程序和其他数据在/usr/local下。这样在升级新版系统或新distribution时无须重新安装全部程序。我们要用到的应用程序和文件几乎都存放在这个目录下。

        其中包含以下子目录:

        (1)/usr/X11R6

        存放X-Window系统的所有文件。为简化X的开发和安装,X的文件没有集成到系统中。

        (2)/usr/bin

        几乎所有普通用户的命令都在/bin或/usr/local/bin目录中。存放着许多应用程序。

        (3)/usr/sbin

        根目录下不必要的系统管理命令,例如多数服务程序。给超级用户使用的一些管理程序就放在这里。

        (4)/usr/doc

        这是Linux文档的大本营。

        (5)/usr/include

        Linux下开发和编译应用程序需要的头文件,在这里查找;

        (6)/usr/lib

        程序或子系统的不变的数据文件,包括一些site-wide配置文件。名字lib来源于库,编程的原始库存放在/usr/lib里。存放一些常用的动态链接共享库和静态档案库。

        (7)/usr/local

        本地安装的软件和其他文件存放在这里。这是提供给一般用户的/usr目录,在这里安装软件最适合.

        (8)/usr/man

        man在Linux中是帮助的同义词,这里就是帮助文档的存放目录

        (9)/usr/src

        Linux开放的源代码就存在这个目录.

        (10)/usr/info

        GNU信息文档。

        16./var

        这个目录中存放着那些不断在扩充着的东西,为了保?usr的相对稳定,那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的。顺带说一下系统的日志文件就在/var/log目录中。

        其中包含以下子目录:

        (1)/var/lib

        系统正常运行时要该变的文件。

        (2)/var/local

        /var/local中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使其他/var目录,例如/var/lock。

        (3)/var/lock

        锁定文件。许多程序遵循在/var/lock中产生一个锁定文件的约定,以支持它们正在使用的某个特定的设备文件。其他程序注意到这个锁定文件后,将不使用这个设备或文件。

        (4)/var/log

        各种程序的log文件。/var/log里的文件经常不确定的增长,应该定期清除。

        (5)/var/run

        保存到下次引导前有效的系统的相关信息文件。例如,/var/run/utmp包含当前登录的用户的信息。

        (6)/var/spool

        Mail、news、打印队列和其他队列工作的目录。每个不同的spool在/var/spool下有自己的子目录,例如,用户的邮箱在/var/spool/mail中。

        (7)/var/tmp

        比/tmp允许的大或需要存在较长时间的临时文件。

        二.proc文件系统

        /proc虚拟文件系统是一个较快且高效率执行系统监控的方法,其主要缺点是必须保持代码分析与/proc文件格式改变的同步。事实表明,Linux内核的改变比/proc文件格式的改变更频繁,所以用/proc虚拟文件系统比用内核模块存在的问题少。

        proc文件系统的特点

        Linux系统为管理员提供了非常好方法,使其可以在系统运行时更改内核。而不需要重新引导内核系统,这是通过/proc虚拟文件系统实现的。/proc文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”)。这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(onthefly)改变设置(通过改变内核参数)。与其他文件系统不同,/proc存在于内存而不是硬盘中。不用重新启动查看CMOS即可知道系统信息,这就是/proc的作用之一。/proc目录中的主要文件下面如表所示。

        文件或目录名称

        描述

        apm

        高级电源管理信息

        cmdline

        内核命令行

        cpuinfo

        中央处理器信息

        devices

        可以用到的设备(块设备/字符设备)

        dma

        显示当前使用的DMA通道

        filesystems

        核心配置的文件系统

        ioports

        当前使用的I/O端口

        interrupts

        显示使用的中断

        kcore

        系统物理内存映像

        kmsg

        核心输出的消息,被送到syslog文件

        ksyms

        核心符号表

        loadavg

        系统平均负载均衡

        meminfo

        存储器使用信息,包括物理内存和交换内存

        modules

        当前加载了哪些核心模块

        net

        网络协议状态信息

        partitions

        系统识别的分区表

        pci

        pci设备信息

        scsi

        scsi设备信息

        self

        到查看/proc程序进程目录的符号链接

        stat

        全面统计状态表

        swaps

        交换分区情况

        uptime

        系统启动的时间长度

        version

        核心版本号

        每个Linux系统根据软、硬件不同,/proc虚拟文件系统的内容也有些差异。它有三个重要的目录,即net、scsi和sys。sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。其中还有一些以数字命名的目录,它们是进程目录。net目录包括多个ASCII格式的网络伪文件,描述了网络层的部分情况,可以用arp、netstat及route等命令来查询这些文件,其中还有一些以数字命名的进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。

       三.特殊目录

        1.建议不可与root分区分开的目录

        在Linux安装过程中,最重要的就是根目录/所在的分区了。我们也可以将其他的例如/home放在不同的分区里。那么,是否有“一定”要放在root分区内的目录呢?有,如/etc、/sbin、/bin、/dev以及/lib这几个目录。

        这是为什么呢?因为Linux系统在启动时,开始核心只会载入一个分区,那就是/。但是,启动的时候,会用到很多命令与函数库。举例来说,要载入,就需要mount程序,而且也需要init程序,还需要用到很多设置文件,例如/etc/inittab等。核心的模块也放在/lib里。当然,/dev是所有设备放置的目录,也需要在启动时使用。因此,这些目录都需要跟与/绑在一起。

        2.建议最好独立成为单一分区的目录

        前面提到了最好不要与/分区分离的目录。但有些目录由于其安全性与特殊功能,却希望能够独立一个分区。例如:/home、/usr、/var、/tmp等。

        要知道,系统用户个人家目录在/home里,这个目录可能是使用最频繁的目录之一。为了合理地分配资源,我们可能会限制每个人可以使用的最大硬盘配额(quota)。在这个前提下,必须将/home独立出来,而且最好这个分区能够大一点,尤其是Linux是作为文件服务器(fileserver)的时候,这就更重要了。

        /usr则是一些程序安装的目录,也可以独立出来;/var目录,由于记录了相当多的常用数据,读取很频繁,所以是“很容易出问题的分区”。如果能够将它独立出来,那么当/var一旦毁坏时,就不会影响到其他分区,也确保了安全性。

        3.特别重要的目录

        除了针对分区的概念来谈目录的重要性之外,有几个比较重要的目录也需要了解。

        (1)/etc

        这个目录是系统设置文件放置的地方,其中包括系统上的账号与密码(etc/passwd、/etc/shadow),启动时用到的各项设置值(/etc/sysconfig/*),各主要网络服务的设置文件。如果这个目录下的文件被删除或者损坏,系统可能需要“花功夫”重建了。因此,笔者通常都会定期备份这个目录中所有文件。这个目录不大,约50MB。

        (2)/usr/local

        虽然当前已经将这个目录的重要性移动到/opt了,但是笔者还是比较习惯将自己开发或自行安装的软件放在这个目录下。如果Linux系统是多人共享的话,那么养成良好的操作习惯是必要的。安装软件也要有好习惯,不要随意安装。统一放在/usr/local或是/opt下面。

        (3)/var

        上面提过一次,这里再次强调。这个目录是用于管理系统运行过程中的重要中间暂存数据的,例如,/var/lib与/var/run。此外,最终的数据例如邮件/var/spool/mail也是放在这个目录中。几乎所有服务的登录文件(可以记录谁、什么时候以及由哪里登录主机、做了什么事等信息)。都放在/var/log目录中,因此,这个目录也很重要。记得常常去检查/var/log/messages文件是否存在异常。

        使用任何Linux系统,都要有至少两个分区:一个根分区,用“/”表示;另一个是swap(交换)分区。所以,最简单的分区方法就是:先创建swap分区,剩下的所有空间分配给根分区“/”。

        swap分区的尺寸,最小应该和内存一样大,最大一般不超过内存的两倍大小。

        swap分区就像Windows的虚拟内存交换文件pagefile.sys,系统在需要时会把它当作虚拟内存来使用,比方说在运行大型程序时、在内存优化时,或者在系统休眠时。系统休眠时,把整个内存的数据写入swap分区,这就是为什么你的swap分区的大小至少应该和内存一样大的原因。

        最好把/boot单独创建一个分区上,因为这个目录下的文件比较重要,万一分区损坏,系统可能无法启动。如果单独创建为一个分区,其他分区的损坏就不会影响它,从而提高了系统的稳定性。一般情况下,/boot分区不需要太大,128MB就足够用了。

    相关文章

      网友评论

        本文标题:Linux常见目录解析

        本文链接:https://www.haomeiwen.com/subject/kohhbqtx.html