Linux目录结构

来源:互联网 发布:阿里云服务器优势 编辑:程序博客网 时间:2024/05/20 12:24

一、Linux系统目录结构

      |--------/bin 

      |--------/boot-------- /grub

      |--------/dev

      |--------/etc-------- /rc.d-------- /cron.d

      |--------/home

      |--------/lib

      |--------/mnt

      |--------/media-------- /cdrom-------- /floppy

"/"  |--------/misc

      |--------/net

      |--------/opt

      |--------/proc------ /net------- /sys------ /tty

      |--------/sbin

      |--------/srv

      |--------/sys----- /block---- /bus------- /devicess

      |--------/usr-------- /bin------- /sbin--------- /src

      |--------/tmp

      |--------/var

      /bin   bin就是二进制(Binary)英文缩写。在这里存放前面Linux常用操作命令的执行文件,如mv、ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。

      /boot  这个目录下存放操作系统启动时所要用到的程序,包括一些链接文件以及镜像文件,如启动grub就会用到其下的/boot/grub子目录。

      /dev  dev是Device(设备)的缩写。该目录包含所有Linux系统中使用的外部设备,注:这里并不是存放外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。由于在Linux中,所有的设备都当作文件一样进行了操作,比如:/dev/cdrom代表光驱,用户可以非常方便地像访问文件、目录一样对其进行访问。在Linux中访问设备的方式和访问文件的方式是相同的。

      /etc   这个目录用来存放所有的系统管理时要用到的各种配置文件和子目录

      /etc/rcd 该目录主要存放Linux启动和关闭时要用到的脚本文件

      /etc/rcd/init  该目录存放所有Linux服务默认的启动脚本(在新版本的Linux中还用到的是/etc/xinetd.d目录下内容)。 

      /home   用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,执行adduser命令后系统会在/home目录下为对应账号建立一个名为同名的主目录。

      /lib   这个目录里存放系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。因此,千万不要轻易对这个目录进行操作,该目录下存放从DOS下进行安装的实用工具,一般为空该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下。

     /lost+found   这个目录一般情况下是空的,当系统非法关机后或产生异常时,会将一些遗失的片段放在此目录下,这里就存放了一些文件。

     /media   该目录下是光驱和软驱的挂载点。

      /opt   表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure-prefix=/opt/目录。

     /proc  这个目录是一个虚拟的目录,用于放置系统核心与执行程序所需的一些信息,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,这些信息是在内存中由系统产生的,故不占用硬盘空间,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping 命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all。

     /root   该目录为系统管理员,也称作超级权限者的用户主目录。

     /sbin  s就是Super User的意思,该目录存放的是系统管理员使用的系统管理程序

     /tmp   这个目录是用来存放不同程序执行时产生的一些临时文件。一般Linux安装软件的默认安装路径就是这里。

     /usr  这是个非常重要的目录用户的很多应用程序和文件都存放在这个目录下,类似于Windows下的Program Files的目录,包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,比如,Netscape。

     /usr/bin   系统用户使用的应用程序

     /usr/sbin  超级用户使用的比较高级的管理程序和系统守护程序

     /usr/src   内核源代码默认的放置目录。

     /srv  该目录存放一些服务启动之后需要提取的数据。

     /sys   该目录下安装了2.6内核中新出现的一个文件系统sysfs。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    /var  这个目录非常重要,很多服务的日志信息都存放在这里,该目录的内容是经常变动的,目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log这是用来存放日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,比如MySQL的,以及MySQL的数据库的存放地。

 

注区别:/bin目录一般存放对于用户和系统来说都是必须的二进制文件

                /sbin 目录要存放的是只针对系统管理的二进制文件,该目录的文件将不会被普通用户使用

                /usr/bin 存放那些不是必要的用户二进制文件。

                /usr/sbin 存放不是非常必要的系统管理工具。

     此外,对于一些本地的库也非常类似,对于那些要求启动系统和运行的必须命令要存放在/lib目录下,

               而对于其他不是必须的库存放在/usr/lib目录就可以。

             

二、Linux文件系统的目录结构

        Linux有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件,可用file命令来识别。

                  普通文件:如文本文件、C语言源代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来查看内容,用mv来改名。

                  目录文件:包括文件名、子目录名及其指针。它是Linux储存文件名的唯一地方,可用ls列出目录文件。

                  连接文件:是指向同一索引节点的那些目录条目。用ls来查看,连接文件的标志用1开头,而文件后以"->"指向所连接的文件。

                  特殊文件:Linux的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内。

                                      例如:软驱A称为/dev/fd0。Linux无C:的概念,而是用/dev/had来自第一硬盘。

        Linux文件系统结的结构是树形结构,其入口从/开始。

1、什么是文件系统(Filesystem)?

 

三、Linux内核的目录结构

arch目录

       arch是architecture的缩写。包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、ARM、PowerPC、MIPS等。

       arch目录的子目录清单:

                     alpha/          HP的alpha处理器

                     arm/            ARM微处理器

                     arm26/        ARM26位处理器

                     cris/             axis communication的CRIS体系结构

                     h8300/        Lauterbach公司的微处理器

                     i386/             lntel i386系列的微处理器

                     ia64             intel 64位ltanium微处理器

                    m68k             摩托罗拉MC680 x 0系列微处理器

                    m68knommu/     没有MMU的MC680 x 0系列微处理器

                    mips/          MIPS微处理器

                    parisc/        HP9000 Parisc 工作站

                    ppc/            摩托罗拉-IBM Power PC微处理器

                    ppc64/       64位Power PC 微处理器

                    s390/       IBM ESA/390 z系列

                    sh/            SupwerH微处理器

                    sparc/        Sun Sparc微处理器

                    sparc64    64位Sun Sparc微处理器

                    um/         用户模式内核

                    v850/      NEC的V850系列微处理器

                   X86_64/       64位i386系列微处理器

 

block:块设备驱动程序I/O高度

crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。

documentation:内核各部分的通用解释和注释。

drivers:设备驱动程序,每一个不同的驱动占用一个子目录,如char、block、net、mtd、i2c等

fs:支持的各种文件系统,如EXT、FAT、NTFS、JFFS2等。

include:头文件,与系统相关的头文件被放置在include/linux子目录下。

init:内核初始化代码。

ipc:进程间通信的代码。

kernel:内核的最核心部分,包括进程调度、定时器等,而和平台有关的一部分代码放在arch/*/kernel目录下。

lib:库文件代码

mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下

net:网络相关代码,实现了各种常见的网络协议

samples:

scripts:包含用于配置内核的脚本文件

security:主要包含SELinux模块

sound:ALSA、OSS音频设备的驱动核心代码和常用设备驱动。

usr:实现了用于打包和压缩cpio等。

virt: