Linux系统介绍(二)文件系统结构
来源:互联网 发布:yum 不支持python 2.7 编辑:程序博客网 时间:2024/05/14 23:35
Linux系统介绍(二)文件系统结构http://blog.csdn.net/Walkerhau/article/details/78583287
概述
多数Linux发行版本都是遵循文件系统结构标准(Filesystem Hierarchy Standard, 简称FHS)
,可以在这里找到该标准。本文对Linux的文件系统结构进行简单的介绍。
根目录/
所有的Linux系统都有根目录,由/
表示。Linux系统的所有内容都在该目录下。
二进制目录
/bin/cat
跟/bin/date
文件/sbin包括了系统的二进制文件,通过需要root权限,用来配置系统/lib包括了/bin
所依赖的库/lib/modulesLinux将从/lib/modules/$kernel-version/
目录下载入内核模块/lib32和/lib64顾名思义,分别存放不同位数的库/opt该目录用来存放一些可选的软件,通常情况下,很多第三方的客户软件会选择安装在该目录下配置文件目录
/boot/grub/grub.cfg
/etc几乎大部分配置文件都放在改目录下。历史上etc
的全称是etcetera
,不过,现在一般认为是Editable Text Configuration
的缩写/etc/init.d存放daemon启动、停止等的脚本文件。不过在引入systemd之后,启动脚本有所变化/etc/skel存放创建新用户之后所需的配置文件的模板,如.bashrc
文件,默认会从该目录拷贝到用户目录/etc/sysconfig一般出现在RedHat系列的Linux系统中,存放系统有关配置,如IP的配置文件等数据目录
/home/<username>
的目录用来存放个人数据。/root该目录被很多Linux系统用来存放root用户的个人数据/srv可以被解释为served by your system
。FHS允许rsync
,ftp
,www
等数据存放在改目录/media该目录通常被用来挂载可移除设备,如CD-ROM,U盘等/mnt根据FHS,该目录通常被用来作为短期的挂载点/tmp该目录用来存放一些短期的文件,不要再该目录下存放重要文件,该目录下的文件有可能会被系统回收内存目录
Linux系统中,几乎所有的东西都被映射成文件,文件有的是对应着硬盘、设备(CD-ROM等)等,有的则被Linux映射到内存中。这一节介绍映射到内存中的目录。
/dev目录
/dev
目录映射了各种设备文件,这些文件由系统启动的时候扫描硬件生成。
物理设备文件
物理设备包括很多种,如硬盘,CD-ROM等。不同的物理设备映射为/dev
目录下不同的文件。如SATA/SCSI设备或USB通常被映射为/dev/sd*
,其中*
可以为[a-z]
中的任意字符;而IDE设备通常被映射为/dev/hd*
,其中*
为[a-z]
中任意字符。
/dev/tty跟/dev/pts
首先需要搞清楚tty
设备跟pts
设备的区别。这两者都是终端设备,所谓终端设备通常指的是能够接受命令输入,并可能同时能够输出的设备,但是这两者是有本质的不同的:
tty设备
tty
是Teletype
的简称,表示原生的终端设备,通常指的是物理终端设备如串口,键鼠接口等,以及系统内核模拟的终端设备。pts设备
pts
是Pseudo Terminal Slave
的简称,表示伪终端设备,通常由应用进程模拟出来,如ssh开启的终端等。
tty
设备通常被映射为/dev/tty*
,其中*
代表数字,如/dev/tty1
等。而pts
设备被映射为/dev/pts/*
,其中*
表示数字,如/dev/pts/1
。
/dev/null
该文件在Linux中有着特殊的意义,是一个只有输入的文件,且文件有无限的大小,你不能从该文件读出任何东西,任何写入的内容逻辑上相当于消失了。从实现的角度,实际上任何写入的内容都被系统丢弃了。
/proc目录
该目录用来记录内核以及内核进程的实时信息,可以通过它轻而易举的实现对内核状态的获取甚至改变。
/proc/*
,其中<id>
代表进程的ID。该目录记录的该进程的几乎所有的状态信息。/proc/cpuinfo记录了系统的CPU信息,通常通过该文件可以知道系统有多少个CPU(核数)。/proc/meminfo记录了系统的内存信息,可以通过它知道系统有多少内存/proc/sys在/proc
目录下的绝大部分文件都是只读的文件,但是在该目录下有些文件是可写的,可以通过它们改变内核状态/proc/interrupts记录了当前系统的中断信息/proc/kcore这个文件代表了系统的物理内存,其大小就是物理内存的大小,因此千万不要用cat
来试图显示该文件内容/usr目录
/usr
目录估计是被误解最多的目录,一般大家都以为它是user
的简写,感觉应该存放的是用户相关的东西,但是实际上完全不是这样。它其实是Unix System Resources
的简写,表示Unix系统资源。通常情况下,该目录以只读的权限被挂载。
/bin
目录实际上只是一个软连接,连接到此目录/usr/include存放大量的头文件,可能会被C代码引用/usr/lib存放库文件,同样,在Centos跟Solaris系统中,/lib
其实就是软连接到此目录/usr/lib64存放64位的库文件,在Centos中,/lib64
也是软连接到此目录/usr/sbin很多daemon程序都是放在此目录下,在Centos中,/sbin
也是软连接到此目录/usr/local此目录通常用来安装一些本地的应用/usr/share此目录通常用来存放各种体系无关的数据。/usr/share/man
就是用来存放man
命令用到的帮助文档/usr/src此目录通常存放内核的代码文件/var目录
/var
目录用来存放可变的数据,如日志,数据库文件等。
/var/log/syslog
/var/cache此目录存放很多应用的缓存数据,如yum
命令可能会缓存部分数据在此目录/var/spool一般情况下,该目录会存放邮件cron任务等数据/var/lib通常此目录下会存放应用的状态信息,如/var/lib/mysql
存放mysql
数据库,/var/lib/docker
存放docker
的数据本博文还可以在博主个人主页中找到。