linux目录结构介绍

目录树

在Linux底下,全部的文件与目录都是由根目录开始的。那是全部目录与文件的源头, 而后再一个一个的分支下来,所以,咱们也称这种目录配置方式为:目录树(directory tree)。目录树的启始点为根目录“/”java

 

 

文件系统层次化标准(FHS,Filesystem Hierarchy Standard )

Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,相似于Windows操做系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每一个区域的用途、所须要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。c++

FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。由于Linux的开发人员实在太多了,若是每一个人都使用本身的目录配置方法,那么将可能会带来不少管理问题。你能想象,你进入一个企业以后,所接触到的Linux目录配置方法居然跟你之前学的彻底不一样吗?很难想象。因此,后来就有所谓的文件系统层次标准(Filesystem Hierarchy Standard,FHS)出台。数据库

第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登陆文件、/usr/share放置共享数据等等。缓存

FHS官方文件:http://www.pathname.com/fhs/bash

 

根目录(/)

根目录是整个系统最重要的一个目录,由于不但全部的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动做有关。 因为系统开机时须要特定的开机软件、核心文件、开机所需程序、 函式库等等文件数据,若系统出现错误时,根目录也必需要包含有可以修复文件系统的程序才行。 由于根目录是这么的重要,因此在FHS的要求方面,他但愿根目录不要放在很是大的分区, 由于越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。服务器

所以FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。网络

根据以上缘由,FHS认为根目录(/)下应该包含以下子目录:jvm

目录函数

应放置档案内容spa

/bin

基础命令的二进制文件。

主要有:cat,chmod, chown, date, mv, mkdir, cp, bash等等经常使用的指令。

/boot

开机引导加载的静态文件。

包括Linux核心档案以及开机选单与开机所需设定档等等。Linux kernel经常使用的档名为:vmlinuz 。

/dev

设备驱动文件。 

只要经过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等

/etc

系统主要的配置文件。

例如人员的账号密码档、各类服务的启始档等等。 

/home

这是系统预设的使用者家目录(home directory)。 

在你新增一个通常使用者账号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号: ~ :表明当前使用者的家目录,而 ~guest:则表明用户名为guest的家目录。

/lib

基本共享函数库和内核模块。

系统和软件所使用的函数库将保存在这里,好比java的jdk、jvm等。

/lib/modules/很重要存放了内核所需的模块。

/media

可移动多媒体设备挂载点。

包括软碟、光碟、DVD等等装置都暂时挂载于此。

/mnt

临时外设挂载点。

/opt

附加应用程序软件包。

/root

root用户家目录。

/sbin

基础系统二进制文件。

常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

/srv

系统提供的服务(service)。

常见的服务例如WWW, FTP等等。 

/tmp

临时目录。

另外要注意的是,由于根目录与开机有关,开机过程当中仅有根目录会被挂载, 其余分区则是在开机完成以后才会持续的进行挂载的行为。就是由于如此,所以根目录下与开机过程有关的目录, 就不可以与根目录放到不一样的分区去。/etc、/bin、/dev、/lib、/sbin这五个目录千万不可与根目录分开在不一样的分区。

FHS未规定的常见目录

目录

应放置档案内容

/lost+found

ext2/ext3档案系统发生错误时,将一些遗失的片断放置到这个目录下。

/proc

虚拟文件系统,访问的是内存的内容。

/sys

虚拟文件系统,访问的是核心相关信息。

 

软件目录(/usr)

/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操做系统软件资源所放置的目录。 FHS建议全部软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行创建该软件本身独立的目录。

由于是全部系统默认的软件都会放置到/usr底下,所以这个目录有点相似Windows 系统的C:\Program files\这个目录,系统刚安装完毕时这个目录会占用最多的硬盘容量。

目录

应放置文件内容

/usr/bin/ 

大部分的用户命令。

/usr/include/ 

c/c++等程序语言的头文件(header)与包含文件(include)放置处。

/usr/lib/ 

函数库

/usr/local/ 

本地程序主要安装目录。

咱们本身安装的程序通常放在这里。

/usr/sbin/ 

系统非必要的二进制文件。

最多见的就是某些网络服务器软件的服务指令(daemon) 

/usr/share/ 

共享文件目录。

/usr/src/ 

通常原始码建议放置到这里,src有source的意思。

 

运行文件目录(/var)

若是/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运做后才会渐渐占用硬盘容量的目录。 由于/var目录主要针对常态性变更的文件,包括缓存(cache)、登陆档(log file)以及某些软件运做所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。常见的次目录有:

目录

应放置文件内容

/var/cache/

应用程序缓存数据。

/var/lib/

程序执行中变化的状态信息。

/var/local/ 本地/usr/local程序变化的数据。

/var/lock/

锁文件。

某些装置或者是文件资源一次只能被一个应用程序所使用,若是同时有两个程序使用该装置时, 就可能产生一些错误的情况,所以就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。

/var/log/

日志和目录。

/var/opt/

本地/opt程序变化的数据。

/var/run/

与运行过程相关的数据。

某些程序或者是服务启动后,会将他们的PID放置在这个目录下

/var/spool/

队列数据。

/var/tmp/ 系统重启时保存的临时文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

绝对路径与相对路径

绝对路径

由根目录(/)开始写起的文件名或目录名称, 

例如 /home/dmtsai/.bashrc;

相对路径

相对于目前路径的文件名写法。 例如 ./home/dmtsai

.  :表明当前的目录,也可使用 ./ 来表示;

.. :表明上一层目录,也能够 ../ 来表明。

相关文章
相关标签/搜索