Linux :linux 目录配置的依据-----FHS,根目录的意义与内容,/usr 的意义和内容,/var的意义与内容

linux 目录配置的依据-----FHS

linux 发行版他们的配置文件,执行文件,每个目录内放置的东西,其实都差不多。FHS 主要希望让用户可以了解到已安装软件通常放置在那个目录下,即规范每个特定的目录下应该放置什么样子的数据罢了。

FHS 依据文件系统使用的频繁与否与是否允许用户随意修改,而将目录定义成为四种交互作用的形态

可分享 不可分享
不变 /usr 软件存放处 /etc 配置文件
/opt 第三方辅助软件 /boot 启动与内核文件
可变动 /var/mail 用户邮箱 /var/run 程序相关
/var/spool/news 新闻组 /var/lock 程序相关
  • 可分享:可以分享给其他系统挂在使用的目录,包括执行文件与用户的邮件等数据,是可以分享给网络上其他主机挂载使用的目录
  • 不可分享:自己机器上运行的设备文件或与程序有关的 socket 文件,由于仅与自己的及其有关当然不能分享
  • 不变:有些数据不会经常变动,想函数库,文件说明,系统管理员所管理的主机服务配置文件等。
  • 可变:日志文件等
  • / (root,根目录):与启动系统有关
  • /usr (unis software resource):与软件安装/执行有关
  • /var(variable) 与系统运行过程有关。

根目录的意义与内容

根目录是整个系统最重要的一个目录,不但所有目录多是由根目录衍生出来,同时根目录也与启动、还原、系统修复等操作有关。
FHS建议:根目录所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放到同一个分区中,保持根目录越小越好,如此性能好,根目录所在的文件系统也较不容易发生问题。

FHS定义出根目录下应该有下面这些子目录的存在,即使没有物理目录也应该有链接目录才好

的一部分:FHS要求必须要存在的目录
/bin 放置的是在单人维护模式下还能够被使用的命令,在 /bin 目录下的命令可以被root 与一般账号使用,主要有 cat chmod chhown date mv mkdir cp bash 等常用命令
/boot 这个目录只要在放置启动时会使用到的文件,包括 Lunux 内核文件以及启动选项与启动所需配置文件等。Linux内核常用文件名为 vmlinuz
/dev 任何设备与接口设备都是以文件的形式存在于这个目录中,你只要通过读写这个目录下面的某个文件,就等于读写某个设备,
/etc 系统主要的配置文件就放在这个目录内,例如人员账号密码文件,各种服务的启动文件中,一般来说这个目录下的各文件属性可以让一般用户查看,但是只有root 可以修改。FHS建议不要放可以执行文件在这个目录
/lib 放置的是在启动时会使用到的函数库,以及在/bin or /sbin 下面的命令会调用的函数库。
/media 下面放置的就是可删除的设备,包括软盘光盘,DVD等设备都暂时挂载于此。
/mnt 如果你想要暂时挂在某些格外的设备,一般建议你可以放置到这个目录中,
/opt 第三方辅助软件放置的目录,Kde这个桌面管理系统是一个独立的软件,不过它可以安装到linux 系统中,因此 KDE 的软件就建议放到这个目录下,如果你想要自己安装格外的软件,那么也能够将你的软件安装到这里来,
/run 系统启动后所产生的各项信息,
/sbin 启动过程中所需要的,里面包括了启动,修复,还原系统所需要的命令,
/srv 一些网络服务启动之后,这些服务所需要使用的数据目录,常见的服务例如www FTP。WWW服务器需要的网页数据就放到 /srv/www/里面
/tmp 这是让一般用户或是正在执行的程序,暂时放置文件的地方,这个目录任何人都能够存取,所以要定期的清理一下,当然重要的数据不可能放在此目录,
/usr /var 第二次FHS 设置,后续介绍
FHS建议可以存在的目录
/home 这是系统默认的用户家目录。在你新增一个一般用户账号时,默认的用户家目录都会规范到这里来,家目录有两种代号,~ 代表这个用户的家目录,~nero 代表 nero 的家目录。
/proc 这个目录本身是一个虚拟文件系统,他放置的数据都是在内存中,比如系统内核,进程信息,外接设备的状态及网络状态等,这个我觉得数据都是在内存中,所以不占任何硬盘空间,
/sys 这个目录也是一个虚拟文件系统,主要是进入内核与一系统硬件信息相关的内容,包括目前已加载的内核模块与内核检测到的硬件设备信息等,

CentOS 7.X 就已经将 /sbin./bin/lib 都移动到了 /usr 下面。

/usr 的意义和内容

/usr 方式的数据属于可分享和不可变动,这个目录是操作系统软件资源放置的目录,不是 user 的缩写,是UNIS Software Resource 的缩写。。。FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录的子目录下,而不要自行建立该软件自己独立的目录,

因为是所有系统默认的软件(发行版发布者提供的软件)都会放置到/usr 下,有点像 Window 系统的 C:\Windows\ 中的一部分+ C:\Program Files\ 这两个目录的综合体

FHS要去必须存在的目录
/usr/bin 所有一般用户能够使用的命令都放置到这里头,目前新的centos 7已经将全部的用户命令放到了里面,而使用链接文件的方式将 /bin连接到此,/usr/bin == /bin,另外FHS 要去此目录下不应该有子目录
/usr/lib/ 与/lib 功能相同,索引 /lib 就是链接到此目录中。
/usr/local 系统管理员在本机安装自己下载的软件,建议安装在此目录中,这样比较利于管理,
/usr/sbin/ 非系统正常运行所需要的系统命令,最常见的就是某些网络服务器软件的服务命令,不过基本功能与 /sbin 差不多,目前 /sbin 就是链接到此目录中
/usr/share 主要放置只读的数据文件,当然也包括共享文件,这个目录下放置的数据几乎是不分硬件架构均可读取的数据,因此几乎都是文本文件 /usr/share/man 在线帮助文件 /usr/share/doc 软件的说明文件 /usr/share/zoneinfo 与时区有关的时区文件
FHS建议可以存在的目录
/usr/games 游戏相关的数据。。。人性化 i了i 了
/usr/include C/C++ 等程序语言的头文件与包含文件的放置处,当我们使用Tarball 方式安装程序时,会用到里面的很多文件
/usr/libexec 某些不被一般用户常用的执行文件或脚本等,例如大部分的x窗口下面的操作命令,很多都是放在此目录下,
/usr/src/ 一般源代码放在这里,至于内核源代码简易放置到 /usr/src/Linux 目录下

/var的意义与内容

如果说 /usr 是安装时会占用较大硬盘容量的目录,那么 /var 就是在系统运行后才渐渐占用硬盘容量的目录。这个目录主要针对经常性变动的文件,包括缓存,日志文件以及某些软件运行所产生的文件,包括程序文件(look file,run file)。或例如 MySQL数据库的文件等。

要去必须存在的目录
/var/cache 应用程序本身运行过程中产生的一些缓存
/var/lib/ 程序本身执行的过程中,需要使用到的数据文件放置的目录,在此目录下各自的软件应该要有各自的目录。
/var/lock/ 某些设备或是文件资源,一次只能被一个应用程序所使用,就需要将该设备上锁,以确保设备只会给单一软件使用,目前此目录也已经挪到了/run/lock中
/var/log/ 这是日志文件方式的目录,非常重要,
/var/mail 放置个人电子邮箱的目录,不过也会放到./var/spool/mail目录中,通常这两个目录时互为链接文件。
/var/run/ 某些程序或者是服务启动后,会将他们的pId放入到这个目录下,与./run 相同,这个目录链接到.run目录下
/var/spool 这个目录通常放的是一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据使用后通常都会删除,
~  ls -l /                  # 来查看一些根目录下的数据
总用量 20
lrwxrwxrwx.   1 root root    7 512 21:23 bin -> usr/bin        # 表示连接
dr-xr-xr-x.   5 root root 4096 512 21:32 boot
drwxr-xr-x.  20 root root 3340 527 21:00 dev
drwxr-xr-x. 140 root root 8192 67 20:11 etc
drwxr-xr-x.   3 root root   18 512 21:30 home
lrwxrwxrwx.   1 root root    7 512 21:23 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 512 21:23 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 411 2018 media
drwxr-xr-x.   2 root root    6 411 2018 mnt
drwxr-xr-x.   3 root root   16 512 21:26 opt
dr-xr-xr-x. 236 root root    0 527 20:59 proc
dr-xr-x---.   5 root root  205 67 20:11 root
drwxr-xr-x.  42 root root 1300 67 20:15 run
lrwxrwxrwx.   1 root root    8 512 21:23 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 411 2018 srv
dr-xr-xr-x.  13 root root    0 527 20:59 sys
drwxrwxrwt.  20 root root 4096 67 21:13 tmp
drwxr-xr-x.  13 root root  155 512 21:23 usr
drwxr-xr-x.  20 root root  282 512 21:32 var

这就是为什么磁盘的分区有讲究了。。。

绝对路径与相对路径

根据文件名的写法,也可将所谓的路径定义为绝对路径与相对路径。

  • 绝对路径:由根目录开始写起的文件名或目录名
  • 相对路径:相对于目前目录的写法,例如:../../home/nero 等,反正开头不是 /
  • . 代表当前目录
  • .. 代表上一层目录
    ./run.sh 就是执行本目录下的 run.sh 文件

猜你喜欢

转载自blog.csdn.net/weixin_46192930/article/details/106481430
今日推荐