Linux 目录结构
来源:互联网 发布:白金数据 原著 编辑:程序博客网 时间:2024/05/01 11:07
Linux 文件目录结构
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统至关重要,下面我们就开始了解一下Linux目录结构的相关知识。
当在使用Linux的时候,如果你通过ls -l / 就会发现,在 / 下包含很多的目录,比如etc、usr、var、bin 等目录,进入这些目录也会发现很多的目录或文件。我们把这种文件系统的结构称为树形结构。
文件系统是用来组织和排列文件存取的,所以我们可以通过 ls 等命令工具来查看其结构,在Linux系统中,我们见到的都是树形结构;比如操作系统安装在一个文件系统中,他表现为由 / 起始的树形结构。Linux文件系统的最顶端是 / ,我们称 / 为Linux的根目录,也就是Linux操作系统的文件系统。Linxu文件系统的入口就是 /,所有的目录,文件,设备都在 / 之下, / 就是Linux文件系统的组织者,也是最上级的领导者。
由于Linux是开放源代码,各大公司和团体根据Linux的核心代码做各自的操作,编程。这样就造成根下的目录不同。这样就造成个人不能使用他人的Linux系统的PC。因为你根本不知道一些基本的配置,文件在哪里。。。这就造成了混乱。这就是FHS(Filesystem Hierarchy Standard )机构诞生的原因。该机构是Linux爱好者自发组成的一个团体,主要是是对Linux做一些基本的要求,不至于是操作者换一台主机就成了Linux的‘文盲’。
根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。 这样做好处非常多,因为Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。
事实上,FHS是根据过去的经验一直再持续的改版的,FHS依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态,用表格来说有点像底下这样:
四种类型:
1.可分享的:
可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录;
2.不可分享的:
自己机器上面运作的装置文件或者是与程序有关的socket文件等,由于仅与自身机器有关,所以不适合分享给其他的主机;
3.不变的:
有些数据是不会经常变动的,跟随着distribution而不变动。例如函式库,文件说明文件。系统管理员所管理的主机服务配置文件等等;
4.可变动的:
经常改变的数据,例如登陆文件,一般用户可自行收受的新闻组等。
事实上,FHS正对目录树架构仅定义出三层目录底下应该放置什么数据而已:
/ (root,根目录):与开机系统有关;
/usr (unix software resource):与软件安装/执行有关;
/var (variable):与系统运作过程有关。
一.根目录( / )的意义与内容:
根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录与开机/还原/系统修复等动作有关。由于系统开机时需要特定的开机软件,核心文件,开机所需程序,函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。因为根目录非常重要,所以在FHS的要求方面,他希望根目录下不要放在非常大的分区,因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多的发生错误的机会。
因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。
根据以上原因,FHS认为根目录下应该包含以下子目录:
事实上 FHS 针对根目录所定义的标准就仅限于上表,不过仍旧有些目录也需要我们了解一下,具体如下:
除了这些目录的内容之外,另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载,其他分区则是在开机完成之后才会持续进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录,就不能够与根目录,就不能够与根目录放到不同的分区去。不能与根目录分开的目录如下:
/etc : 配置文件
/bin : 重要的可执行文件
/dev : 所需要的装置文件
/lib : 可执行文件所需要的函式库与核心所需的模块
/sbin : 重要的系统执行文件
这五个目录千万不能与根目录分开在不同的分区。
二. /usr 的意义与内容:
依据FHS的基本定义,/usr 里面放置的数据属于可分享的与不可变动的(shareable, static)。如果你知道如何通过网络进行分区的挂载,那么 /usr 确实可以分享给局域网络内的其他主机来使用。
/usr 不是 user 的缩写,其实 usr 是 Unix Software Resource 的缩写,也就是Unix操作系统软件资源所放置的目录,而不是用户的数据。这点要注意。FHS 建议所有软件开发者,应该将他们的数据合理的放置到这个目录下的此目录,而不是自行建立该软件自己的独立目录。
因为是所有系统默认的软件都会放置在 /usr 底下,因此这个目录有点类似 windows 系统的 C:Windows + C:Program files 这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。一般来说,/usr 的下级目录建议有底下这些:
三. /var 的意义与内容:
如果 /usr 是安装时会占用较大硬盘容量的目录,那么 /var 就是在系统运作后才会渐渐占用硬盘容量的目录。因为 /var 目录主要针对常态性变动的文件,包括缓存(cache),登陆文件(log file)以及某些软件运作时所产生的文件,包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等等。常见的下级目录如下:
由于FHS仅是定义出最上层 ( / )及次层( /usr, /var )的目录内容应该要放置的文件或目录数据,因此,在其他次目录层级内,就可以随开发者自行来配置了。
四. 目录树:
在 Linux 底下,所有的文件与目录都是都是由根目录开始的。那是所有目录有文件的源头,然后再一个一个的分支下来,因此,我们也称这种目录配置方式为:目录树(directory tree),这个目录树的主要特性有:
目录树的起始点为根目录( /, root);
每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem。举例来说,可以利用 Network File System (NFS) 服务器挂载某特定目录等。
每一个文件在次目录树中的文件名(包含完整路径)都是独一无二的。
如果我们将整个目录树以图的方法来显示,并且将较为重要的文件数据列出来的话,那么目录树架构就如下图所示:
- 【Linux】Linux 目录结构
- Linux目录结构
- Linux 目录结构
- Linux的目录结构
- Linux的目录结构
- Linux的目录结构
- Linux的目录结构
- linux目录结构
- linux目录结构介绍
- Linux的目录结构
- Linux目录结构
- LINUX目录结构
- linux目录结构介绍
- linux目录结构
- Linux目录结构
- Linux目录结构
- linux目录结构
- linux系统目录结构
- Atom中一款超级好用的前端必备插件JavaScript Snippets
- BZOJ 3990 [SDOI2015] 排序
- android cmake 调试
- 专业书37~57
- OpenCV 角点检测(一) Moravec
- Linux 目录结构
- 1.Two Sum
- BZOJ 1861 [Zjoi2006] Book 书架
- Probability
- math.h 三角函数
- 理解java web项目中的路径问题
- 处理:/var/redis/run/redis_6379.pid exists, process is already running or crashed
- POJ1083 Moving Tables
- A1078. 逆序对个数