刚开接触Linux,发现有/sbin /etc /bin等目录。
以安装nginx为例,源码安装时,默认安至/usr/local/nginx文件夹下,其conf、sbin文件夹都在此处,但使用RPM安装时,会变成这样。
# Nginx配置文件
/etc/nginx/nginx.conf # nginx 主配置文件
/etc/nginx/nginx.conf.default
# 可执行程序文件
/usr/bin/nginx-upgrade
/usr/sbin/nginx
# nginx库文件
/usr/lib/systemd/system/nginx.service # 用于配置系统守护进程
/usr/lib64/nginx/modules # Nginx模块目录
# 帮助文档
/usr/share/doc/nginx-1.16.1
/usr/share/doc/nginx-1.16.1/CHANGES
/usr/share/doc/nginx-1.16.1/README
/usr/share/doc/nginx-1.16.1/README.dynamic
/usr/share/doc/nginx-1.16.1/UPGRADE-NOTES-1.6-to-1.10
# 静态资源目录
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
# 存放Nginx日志文件
/var/log/nginx
我想知道,这样将软件各部分分开的安装方式比起源码安装,有何优势吗?当然,比源码安装省心是真的。
那叫文件层次结构(
FHS
),这个是在Unix时代就制定了一套标准,各个目录在FHS中都有各自的作用和含义,有兴趣你可以自己搜一下FHS的说明。目前Linux软件包大多也都遵循FHS。这个没有什么好不好的,至少比满山放羊要有条理吧?这就是规范化的好处。当然你自己搞认为全部扔一个目录对你来说更好管也无所谓,这个本来就不是强制性的,只是一种标准,一种规范而已,或者大家普遍遵循的范式