Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

linux学习总结-linux基础(之二)

$
0
0

六、在 linux 基础目录命名法则及功用

根据FHS(http://www.pathname.com/fhs/)的官方文件指出,他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下,所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。这样做好处非常多,因为Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。

事实上,FHS是根据过去的经验一直再持续的改版的,FHS依据文件系统使用的频繁与否与是否允许使用者随意更动,而将目录定义成为四种交互作用的形态,用表格来说有点像底下这样:

可分享的(shareable)

不可分享的(unshareable)

不变的(static)

/usr(软件放置处)

/etc(配置文件)

/opt(第三方协力软件)

/boot(开机与核心档)

可变动的(variable)

/var/mail(使用者邮件信箱)

/var/run(程序相关)

/var/spool/news(新闻组)

/var/lock(程序相关)

四种类型:

1.可分享的:

可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录;

2.不可分享的:

自己机器上面运作的装置文件或者是与程序有关的socket文件等,由于仅与自身机器有关,所以当然就不适合分享给其他主机了。

3.不变的:

有些数据是不会经常变动的,跟随着distribution而不变动。例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;

4.可变动的:

经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。

事实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:

/(root,根目录):与开机系统有关;

/usr(unixsoftwareresource):与软件安装/执行有关;

/var(variable):与系统运作过程有关。

(一)根目录(/)的意义与内容:

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

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

根据以上原因,FHS认为根目录(/)下应该包含如下子目录:

目录

应放置档案内容

/bin

系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限),chown,date,mv,mkdir,cp,bash等等常用的指令。

/boot

主要放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。Linuxkernel常用的档名为:vmlinuz,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。

/dev

在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等等

/etc

系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。一般来说,这个目录下的各档案属性是可以让一般使用者查阅的,但是只有root有权力修改。FHS建议不要放置可执行档(binary)在这个目录中。比较重要的档案有:/etc/inittab,/etc/init.d/,/etc/modprobe.conf,/etc/X11/,/etc/fstab,/etc/sysconfig/等等。另外,其下重要的目录有:/etc/init.d/:所有服务的预设启动script都是放在这里的,例如要启动或者关闭iptables的话:/etc/init.d/iptablesstart、/etc/init.d/iptablesstop

/etc/xinetd.d/:这就是所谓的superdaemon管理的各项服务的设定档目录。

/etc/X11/:与XWindow有关的各种设定档都在这里,尤其是xorg.conf或XF86Config这两个XServer的设定档。

/home

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

/lib

系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已。什么是函式库呢?Y晨梢越


Viewing all articles
Browse latest Browse all 11063

Trending Articles