今天结束了一天的实习工作,把windows下的工具类程序部署到linux系统下的时候发生了些许错误。不仅是执行的路径配置发生了错误,更多的是对linux的各个目录存放什么文件不是特别清楚,现在就学习总结一下。
关于linux的目录配置问题,其实是有一套FHS(Filesystem Hierarchy Standard)标准的。说到底就是规范每个特定的目录下应该要放什么样子的数据而已。这样带来的好处就是既能保持当前系统的目录结构不变,又能保持开发者想要的独特风格。
1. FHS根据文件系统使用的频繁和是否允许用户改动,将目录定义四种相互作用的形态。
不变的(可分享的):
/usr(软件放置处) /opt(第三方软件)
不变的(不可分享的):
/etc(配置文件) /boot(开机与内核文件)
可变动的(可分享的):
/var/mail(用户邮件信息) /var/run(程序相关)
可变动的(不可分享的):
/var/run(程序相关) /var/lock(程序相关)
不变的:指有些数据不能轻易变动的。例如:函数库,文件说明文件,系统管理员管理的主机服务配置文件。
可分享的:可以分享给其他系统挂载使用的目录,包括执行文件与用户的邮件等数据。
可变的:经常变动的数据,例如登录文件等
不可分享的:本机运行的设备文件或是程序有关的的socket文件。
/:根目录,跟系统开机有关
/usr:与软件安装/执行有关
/var:与系统运作有关
FHS建议是:根目录(/)所在的分区越小越好,而且应用程序安装最好不要放在和根目录一个分区内,保持根目录越小越好。这样可以避免根目录所在的文件发生问题。
2. 根目录下的子目录:
/bin:系统放置很多执行文件的目录,/bin还能在单用户维护模式下被操作。
/boot:这个目录主要是放置开机会使用到的文件,包括linux内核文件以及开机菜单与开机所需的配置文件等
/etc:系统的主要配置文件都放在这个目录下面。
/home:这是系统默认的用户主文件夹。
/lib:该目录放置的是开机会用到的函数库,以及在/bin和/sbin下面的命令会调用的函数库。
/opt:放置第三方软件的目录
/tmp:是用户或是正在执行的程序暂时放置文件的地方。
/sbin:是系统用来设置系统环境的,这些命令要使用root才能设置系统。
3. 一定要跟根目录放在同一个分区的五个目录:
/etc:配置文件
/bin:重要执行文件
/dev:所需要的设备文件
/lib:执行文件所需的函数库与内核所需的模块
/sbin:重要的系统执行文件