CentOS7学习笔记(3)——FHS

        利用Linux开发产品的distributions的社群/公司及个人实在太多, 如果每个人都按自己的想法来配置目录,那举给我们造成很多的困扰(当你更换Linux发行版时,需要重新学习他的目录结构)。因此Filesystem Hierarchy Standard (FHS)标准就出炉了!

        根据FHS(http://www.pathname.com/fhs/)的官方文件, 他们的主要目的是希服让使用者可以了解到已安装软件通常放置在那个目录下,希服独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范特定的目录下应该要放置什么数据。 FHS当前的版本是2.3。FHS将文件系统的目录定义为一下四种状态:

       

具体而言:

  • 可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件不用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目录;
  • 不可分享的:自己机器上面运作的装置档案戒者是不程序有关的socket档案等, 由二仅不自身机器有关,所以当然就丌适合分享给其他主机了。
  • 可变的:有些数据是丌会经常变劢的,跟随着distribution而丌变劢。 例如函式库、文件说明文件、系统管理员所管理的主机朋务配置文件等等;
  • 不变的:经常改变的数据,例如登彔文件、一般用户可自行收受的新闻组等。
在CentOS7中,主要的目录有:


其他发行版也有类似的目录,不过不同的发行版会在一些目录上有些许差别。下面我们就介绍一下上面这些目录存放的主要数据内容:

  • 根目录(/):是最重要的一个目录,所有的目录都是从该目录衍生出来,而且与系统开机还原等系统操作有关。FHS建议在该目录下放置如下目录:
    • /bin:  在单人维护模式下还能够被操作的命令。 在/bin底下的命令可以被root和一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等
    • /boot: 主要放置开机会使用到的文件,包括Linux核心文件以及开机选单及开机配置文件等。 Linux kernel常用的档名为:vmlinuz,如果使用的是grub开机管理程序, 则还会存在/boot/grub/这个目录喔!
    • /dev: 在Linux系统上,任何装置与接口设备都是以文件的形态存在于这个目录中。 只要透过存取这个目录下的某个文件,就等于存取某个设备
    • /etc: 系统主要的配置文件几乎都放置在这个目录内。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要在这个目录中放置可执行文件。比较重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等。另外,其下重要的目录有: 
      •  /etc/init.d/:所有朋务的预设启动脚本放在这里,例如要启动或关闭 iptables :『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』 
      • /etc/xinetd.d/:super daemon管理的各项朋务的配置文件目录。 
      •  /etc/X11/:与 X Window 有关的各种配置文件都在这里,尤其是 xorg.conf 这个 X Server 的配置文件。
    • /home: 系统默讣的用户家目录(home directory)。新增一个一般使用者账号时, 默认的用户家目录都会在这里创建。其中 ~ 代表当前用户的家目录,而 ~bitsec 则代表 bitsec 的家目录。
    • /lib  &  /lib64: 系统的函数库非常多,而/lib放置的则是在开机时会用到的函数库, 以及在/bin戒/sbin底下的指令会调用的函数库。尤其重要的是/lib/modules/目录, 该目录放置核心相关的模块(驱劢程序)!
    • /media: 放置可移除的设备! 包括软盘、光盘、DVD等等装置都暂时挂载在这里。常见的档名有:/media/floppy, /media/cdrom等等。
    • /mnt: 暂时挂载某些额外的设备。 
    • /opt: 第三方软件放置的目录。如果妳想要自行安装额外的软件(非原本的distribution提供的),那也能够将你的软件安装到这里来。 以前的Linux系统中,我们还是习惯放置在/usr/local目录下!
    • /root: 系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们希望root的家目录与根目录放置在同一个分割槽中
    • /sbin: Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够用来『设定』系统,其他用户最多只能用来『查询』而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 至于某些朋务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等。
    • /srv: 可以视为『service』的缩写,是一些网络朋务启动后所需要取用的数据目录。
    • /tmp: 让一般用户或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要数据不可放置在此目录啊! 因为FHS甚至建议在开机时,应该要将/tmp下的数据都删除!
  • /proc: 这个目录本身是一个『虚拟文件系统(virtual filesystem)』!放置的数据都是在内存当中, 例如系统核心、进程信息(process)、周边设备的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等。
  • /sys: 这个目录跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息。 包括目前已加载的核心模块与核心侦测到的硬件设备信息等。这个目录同样不占硬盘容量!
  • /usr: 依据FHS的基本定义,/usr里面放置的数据属于可分享的不可可变的(shareable, static)。 usr是Unix Software Resource的缩写, 也就是『Unix操作系统软件资源』所放置的目录。 FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。 因为所有系统默认的软件(发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的『C:\Windows\ + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。
    • /usr/bin/: 绝大部分用户可使用的指令都放在这里!请注意到他与/bin的丌同(是否不开机过程有关)
    • /usr/include/: c/c++等程序的头文件(header)与包含文件(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的讲多包
    • /usr/lib/    &    /usr/lib64/ : 包含各应用软件的函数库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。 某些软件会提供一些特殊的指令来进行朋务器的设定,这些指令不会会经常被系统管理员操作, 那就会被摆放到这个目录下啦。要注意的是,如果你使用的是X86_64的Linux系统, 那可能会有/usr/lib64/目录产生!
    • /usr/local/: 系统管理员在本机自行安装自己下载的软件,建议安装到此目录。举例来说,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装到/usr/local/目录下,可不原先的旧版软件有分别啦! 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib...的次目录!
    • /usr/sbin/: 非系统正常运作所需要的系统指令。最常见的就是某些网络朋务器软件的朋务指令(daemon)!
    • /usr/share/: 放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛!在此目录下常见的还有这些次目录: 
      • /usr/share/man:联机帮劣文件 
      •  /usr/share/doc:软件杂顷的文件说明 
      •  /usr/share/zoneinfo:不时区有关的时区档案
    • /usr/src/: 一般源代码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。
  • /var: 在系统运作后才会渐渐占用硬盘容量的目录。 主要针对经常变动的文件档案,包括缓存(cache)、日志(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的档案等。
    • /var/cache/:应用程序本身运作过程中会产生的一些缓存文件;
    • /var/lib/: 程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。 MySQL的数据库放置到/var/lib/mysql/而rpm的数据库则放到/var/lib/rpm!
    • /var/lock/: 某些设备或者是档案资源一次只能被一个应用程序所使用,如果同时有两个程序使用该设备时, 就可能产生一些错误的状况,因此就得要将该设备上锁(lock),以确保该设备只会给单一软件所使用
    • /var/log/: 非常重要。存放日志文件
    • /var/mail/: 放置个人电子邮件信箱的目录,这个目录也被放置到/var/spool/mail/目录中! 通常这两个目录是互为链接文件!
    • /var/run/: 某些程序或者是朋务启动后,会将他们的PID放置在这个目录下! 
    • /var/spool/: 通常放置一些队列数据,所谓的『队列』就是排队等待其他程序使用的数据啦! 这些数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值