ubuntu文件系统(FHS)

本文介绍了FilesystemHierarchy Standard (FHS)文件系统层级标准,解释了文件分类原则,如共享与不可共享、可变与静态。内容涵盖了Ubuntu 12.04的FHS2.3标准,包括各个目录的作用,如/bin、/boot、/dev、/etc等,并阐述了文件应放置的合适位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. FilesystemHierarchy Standard (FHS)文件系统层级标准

FHS标准主页

文件分类原则:

可以把文件按照两个属性来区分:共享的(shareablevs不可共享的(unshareable)可变的(variable)vs静态的(static),按照这两种不同的属性,应该把文件存储到不同的地方。

共享:指文件存储在一个主机上,是否可以在其他主机上访问。例如用户主目录下的文件是可以在其他地方访问并使用且有意义,但是设备锁文件则在地方主机上访问使用对于访问主机是没有意义的,因为这个设备锁文件跟他的硬件并没有关系,也就是没有意义的。

可变/静态:如果文件在没有用户修改的情况下是不会改变的则是静态的,相反则是可变的。例如二进制文件,文档,类库等就是静态的,而系统运行时生成的变量,锁,你的邮箱服务等就是可变的,也就是你不主动用编辑器修改该文件,他也可能改变,如果别人给你发来了邮件,设备被锁定了。


shareable

unshareable

static

/usr

/etc


/opt

/boot

variable

/var/mail

/var/run


/var/spool/news

/var/lock


我使用的是ubuntu12.04,这个版本的饿ubuntu还是使用的FHS2.3的标准,似乎已经有FHS3的标准了,估计还要一段时间才会使用,但大部分还是不会改变的。下面的就是2.3标准



  1. ubuntu12.04文件系统层级目录

/

---bin

---boot

---dev

---etc

---lib

---media

---mnt

---opt

---sbin

---srv

---tmp

---usr

---var

------------这上面的是FSH标准的根目录下必需的目录

---home

---lib(qual) eg:lib64,lib32

---root

------------如果系统是发行的子系统,这三个目录就会出现

---lost+found

---run

---cdrom

---proc

---sys

------------上面几个目录是ubuntu特有的,或者是debian特有的

  1. 目录原则和要求

/binEssentialuser command binaries (for use by all users)

这个目录存放基本的用户命令二进制文件或者二进制文件的软链接,常用的ls,cp,kill,mv,ps等命令的二进制文件就存放在此


/bootStaticfiles of the boot loader

这个目录存放只在引动程序需要的文件


/devdevicefiles

这个目录存放设备的驱动文件


/etcHost-specificsystem configuration

这个目录存放本地的配置文件,不能存放二进制文件


/homeUserhome directories(optional)

用户主目录,任何程序的运行不应该依赖这个目录下的文件


/libEssentialshared libraries and kernel modules

存放系统启动和基础程序必需的共享类库,包括内核文件


/mediaMountpoint for removeable media

作为可移动设备的挂载点


/mntMountpoint for a temporarily mounted filesystem

作为设备的临时挂载点


/optAdd-onapplication software packages

存放附加软件的包文件


/roothomedirectory for the root user(optional)

root用户的默认目录


/sbinSystembinaries

系统管理和其他只能root用户使用的二进制文件或者二进制文件的软链接,例如系统启动,重启,恢复,等系统级别的命令,egshutdown。但是本地安装的系统管理程序不该放在这里,应该放在/usr/local/sbin

/srvDatafor service provided by this system

刚目录存放系统提供的服务中的站点数据,例如www,ftp,cvs,等服务的数据,这些通过协议+IP访问的服务中的数据


/tmpTemporaryfiles

临时文件目录,存放那些在系统重启后或者在系统启动后会被删除的文件,比如mysql.sock文件经常就放在该目录下


/usrSecondaryhierarchy

这个目录是主要的二级目录,简单说他算是个二级根目录,这个目录应该是可共享,只读的。任何和登陆用户专属的文件或者随着时间变化的文件不应该放在该目录下。

/usr目录下必需有这些目录:bin,include,lib,local,sbin,share.

其中

/usr/bin存放大多数用户命令

/usr/include存放C语言程序需要的头文件

/usr/lib类库,例如jvm,perl,python等运行环境

/usr/local本地文件(在刚安装的系统上这个目录是空的)

/usr/sbin不是至关重要的系统二进制文件

/usr/share体系结构独立的数据,大概是说不依赖其他文件的数据


/varvariabledata

这个目录的文件是随着时间会变化的,例如用户登陆日志,各种日志,锁,运行期参数,邮箱,缓存等。一般用户尤其是root用户需要查看该目录,但不主动存放文件到该目录下


/lib64and /lib32

这个目录下的文件根据系统架构不同而不同


/prockeneland process information virtual filesystem

包含存储和检索程序,内核,内存的信息


  1. 放在哪里


/home/usrname:所有属于自己的文件都应该放在该目录下,如果你不是root用户那么一般你也只能使用自己的主目录。

/usr/lib: /usr/lib/java/jdk7, /usr/lib/java/jdk8,任何语言所需的环境都应该放到放到该目录下,

/opt:如果是附加软件,比如chromeelipse,的包文件应该放到该目录下,也就是任何不和系统相关并且独立的软件应该安装到/opt

使用deb或者软件中心或者apt-get安装时并不需要选择安装路径,但基本上遵循这样的路径,

程序的文档->/usr/share/doc;/usr/local/share/doc

程序->/usr/share;/usr/local/share

程序的启动项->/usr/share/apps;/usr/local/share

程序的语言包->/usr/share/locale;/usr/local/share/locale

可执行文件->/usr/bin;/usr/local/bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值