Linux/Unix目录结构的来历



  • Unix目录结构的来历


Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。



举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?


长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix文件系统结构标准》(Filesystem Hierarchy Standard),死记硬背不同目录的区别。


昨天,我读到了Rob Landley的简短解释,这才恍然大悟,原来Unix目录结构是历史造成的。


话说1969年,Ken ThompsonDennis Ritchie在小型机PDP-7上发明了Unix。1971年,他们将主机升级到了PDP-11。



当时,他们使用一种叫做RK05的储存盘,一盘的容量大约是1.5MB。



没过多久,操作系统(根目录)变得越来越大,一块盘已经装不下了。于是,他们加上了第二盘RK05,并且规定第一块盘专门放系统程序,第二块盘专门放用户自己的程序,因此挂载的目录点取名为/usr。也就是说,根目录"/"挂载在第一块盘,"/usr"目录挂载在第二块盘。除此之外,两块盘的目录结构完全相同,第一块盘的目录(/bin, /sbin, /lib, /tmp...)都在/usr目录下重新出现一次。


后来,第二块盘也满了,他们只好又加了第三盘RK05,挂载的目录点取名为/home,并且规定/usr用于存放用户的程序,/home用于存放用户的数据。


从此,这种目录结构就延续了下来。随着硬盘容量越来越大,各个目录的含义进一步得到明确。


  • /:存放系统程序,也就是At&t开发的Unix程序。

  • /usr:存放Unix系统商(比如IBM和HP)开发的程序。

  • /usr/local:存放用户自己安装的程序。

  • /opt:在某些系统,用于存放第三方厂商开发的程序,所以取名为option,意为"选装"。


  • Linux目录结构的来历


由于Linux是遵循开源协议,任何人都可以根据Linux的核心代码制作和发行版本。如果每个人都按自己的喜好,在/目录下创建目录、存放文件,必将导致个人不能使用他人的linux系统。因为你根本不知道一些基本的配置和文件在哪里...这就造成了混乱,不利于Linux的发展。


为避免这样的情况,FHS就应运而生了。FHS主要对linux文件系统目录进行规范化,让操作者不至于换一台PC就成了Linux的‘文盲’。


定义


FHS(Filesystem Hierarchy Standard)采用树形结构组织文件,定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。


FHS定义了两层规范:


  1. 定义了 / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。


  2. 针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。


图示FHS



文件和目录


以下主要以CentOS 7为例。


路径 类型 描述
/etc/bashrc 文件 为运行bash  shell的所有用户执行此文件,当bash shell被打开时,该文件被读取。
/etc/centos-release 文件 查看CentOS的发行版本,建议修改,有软链接文件  :/etc/redhat-release
/etc/default/useradd 文件 useradd命令的默认配置参数
/etc/group 文件 组账户信息
/etc/gshadow 文件 安全组账户信息
/etc/issue 文件 预登陆信息,它提供了登录提示符出现之前显示的信息   或者系统标识。可以#man agetty查看文件支持的标示格式
/etc/login.defs 文件 shadow密码套件配置。(见/etc/shadow)
/etc/man_db.conf 文件 man命令的配置。CentOS6为/etc/man.config
/etc/passw 文件 用户账户信息
/etc/profile 文件 为系统的所有用户设置环境信息,当用户登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置
/etc/shadow 文件 安全用户账户信息
/etc/shells 文件 记录了系统可用shell列表
/etc/skel 目录 基本的配置文件;useradd新建用户时候,系统默认将本目录下的内容复制到新用户家目录
/etc/sysconfig/network-scripts/ 目录 保存网络配置文件
/lib/modules/ 目录 该目录下以内核版本号为名的子目录,存放各种驱动,非常重要。
/proc/cpuinfo 文件 查看cpu信息
/proc/meminfo 文件 查看内存信息
/proc/partition 文件 查看分区和磁盘信息
/sys/class/scsi_host/host2/scan 文件 SCSI磁盘扫描机制。Vmware虚拟机添加SCSI硬盘,系统免重启识别可以使用命令#echo   ‘- - -’ > /sys/class/scsi_host/hostN/scan(N根据实际情况可变)
/usr/share/dict/words 文件 快捷方式,实际指向linux.words,Linux的字典文件
/usr/share/doc/ 目录 本地帮助文档
/usr/share/man/ 目录 提供了man文档存放
~/.bash_history 文件 用户的命令历史文件
~/.bash_profile 文件 个体用户shell配置,设置了一些环境变量,执行用户的.bashrc文件。
~/.bashrc 文件 个体用户bash  shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。


来源1:阮一峰的网络日志

原文1:http://t.cn/zO7usUA

来源2Zhaoqi Learn To Linux

原文2:

题图:来自谷歌图片搜索

版权:本文版权归原作者所有


更多精彩热文:





原文链接:http://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247484647&idx=1&sn=bf0970986f397becbd3dc58f73293245&chksm=eac525ceddb2acd8f3f768fc17131163db9944507da0f090eb439dde8da7d8ae568fe148d0f5&mpshare=1&scene=23&srcid=11012KVcvC0IgzzioROMtLu3#rd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值