Linux 目录配置

Linux 目录配置

Linux目录配置标准:FHS
因为利用Linux来开发产品或distributions的团队/公司与个人实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰。所以/后来就有所谓的Filesystem Hierarchy Standard (FHS)标准出炉了。
根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希服独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。 这样做好处非常多,因为Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。
亊实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
/ (root, 根目彔):不开机系统有关;
/usr (unix software resource):不软件安装/执行有关;
/var (variable):不系统运作过程有关。

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

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机,还原,系统修复等动作有关。

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

表格

目录 应放置档案内容
/bin 系统有很多放置执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的命令。 在/bin底下的命令可以被root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的命令。
/boot 这个目录主要在放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等等。 Linux kernel常用的文件名为: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/ 等等。
/home 这是系统默认的用户家目录(home directory)。在你新增一个一般用户账号时, 默认的用户主文件夹都会规范到这里来。比较重要的是,家目录有两种代号: ~:代表目前这个用户的主文件夹,而 ~dmtsai :则代表 dmtsai 的主文件夹。
/lib 系统的函数库非常的多,而/lib放置的则是在开机时会用到的函数库,以及在/bin或/sbin底下的命令会呼叫的函数库而已。什么是函数库呢?你可以将他想成是“外挂”,某些命令必项要有这些“外挂”才能够顺利完成程序的执行之意。 尤其重要的是/lib/modules/这个目录, 因为该目录会放置内核相关的模块(驱动程序)
/media media是“媒体”的英文,顾名思义,这个/media底下放置的就是可删除的设备。包括软盘、光盘、DVD等等设备都暂时挂载于此。常见的文件名有:/media/floppy, /media/cdrom等等。
/mnt 如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。 在比较早的时候,这个目录的用途与/media相同。只是有了/media之后,这个目录就用来暂时挂载用了。
/opt 这个是给第三方软件放置的目录。什么是第三方软件啊?举例来说,KDE这个桌面管理系统是一个独立的计划,不过他可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下了。 另外,如果你想要自行安装额外的软件(非原本的distribution提供的),那么也能够将你的软件安装到这里来。不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
/root 系统管理员(root)的主文件夹。之所以放在这里,是因为如果进入单用户维护模式而仅挂载根目录时, 该目录就能够拥有root的主文件夹,所以我们会希望root的主文件夹与根目录放置在同一个分区中。
/sbin Linux有非常多命令是用来设置系统环境的,这些命令只有root才能够利用来“设置”系统,其他用户最多只能用来“查询”而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的命令。 至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的命令包括:fdisk, fsck, ifconfig, init, mkfs等等。
/srv srv可以规为“service”的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务例如WWW, FTP等等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面。
/tmp 这是让一般用户或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够访问的,所以你需要定期的清理一下。当然,重要数据不可放置在此目录。因为FHS甚至建议在开机时,应该要将/tmp下的数据都删除。

以上内容多参考于《鸟哥的Linux私房菜》

原创文章,作者:XIAJIDONG,如若转载,请注明出处:http://www.178linux.com/71867

(0)
XIAJIDONGXIAJIDONG
上一篇 2017-03-26 22:17
下一篇 2017-03-26 22:47

相关推荐

  • 2016-08-10作业

    1、编写脚本/root/bin/systeminfo.sh, 显示当前主机系统信息,包括主机名,IPv4 地址,操作系统版本,内核版本,CPU 型号,内存大小,硬盘大小。 #!/bin/bash echo "hostname is `hostname`" echo "IPv4 is `ifconfig | sed -n &#03…

    Linux干货 2016-08-15
  • 从零开始搭建双主模型的nginx proxy高可用集群

    实验简介 本文主要介绍双主模型的nginx proxy高可用集群的搭建方式。实验环境: 使用nfs/ftp服务器,nfs提供页面数据共享,ftp提供程序下载 使用单独的mariadb服务器提供关系型数据库 使用两台httpd服务器提供页面服务,包括静态的html和动态的php(phpmyadmin、wordpress、phpinfo) 使用两台nginx作为…

    Linux干货 2017-06-25
  • 马哥教育网络班21期+第2周课程练习

    一、Linux文件管理类命令     1、文件的复制、移动和删除        A、cp  文件的复制          cp命令的用法:    &n…

    Linux干货 2016-06-26
  • 运维学习笔记-看看别人家的Puppet代码

    这篇博客的目的是通过分析Forge上的Puppet模块来加深一些概念的理解,同时了解一些常用用法。 今天的例子是jfryman-nginx模块,它是原puppetlabs-nginx模块的升级版本,依赖3个Puppet公共模块:puppetlabs-apt,puppetlabs-stdlib和puppetlabs-concat。安装非常方便,puppet m…

    Linux干货 2016-06-23
  • openssh及基于ssl的https的配置

    openssh的简介             OpenSSH 是 SSH 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。 而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rs…

    Linux干货 2017-05-30
  • 第一周作业

    作业

    Linux干货 2018-03-20

评论列表(1条)

  • renjin
    renjin 2017-04-05 11:14

    写的很不错,由其是内容上对linux目录的说明,排版就如果能再好些就更好了