zoukankan      html  css  js  c++  java
  • Linux目录配置[摘抄]

    Linux的目录配置,学习了很久一直记不住,这次直接抄书了。

    以下内容摘抄与鸟哥的Linux私房菜

    Linux的发行版必须遵循FHS标准版[Filesystem Hierarchy Standard]

    该标准对Linux三层目录,分别为

    /[root]根目录:与启动系统有关

    /sur[Unix software resource]:与软件安装/执行有关

    /var[avriable]:与系统运行过程有关

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

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

    FHS定义了根目录必须存在的目录

    /bin:  系统有很多执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被使用的命令。在/bin下面的命令可以被root与一般账号所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等常用命令

    /boot:  这个目录主要放置启动会使用到的文件,包括Linux内核文件以及启动选项与启动所需配置文件等等。Linux内核常用的文件名为:vmlinuz,如果使用的是grub2这个启动引导成勋,则还会存在/boot/grub2、这个目录

    /dev:  在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录中。你只要通过读写这个目录下面的某个文件,就等于读写莫个设备,比较重要的文件有/dev/null,/dev/zero,/dev/tty,/dev/loop*,/dev/sd*等

    /etc:  系统主要的配置文件,几乎都放置在这个目录内,例如人员你的账户密码文件,各种服务的启动文件等。一般来说,这个目录下的各文件属性是可以让一般用户查看的,但是只有root有权力修改。FHS建议不要放置可执行文件[binary]在这个目录中。比较重要的文件有:/etc/modprobe.d,/etc/passwd,/etc/stab,/etc/issue等。另外FHS还规范几个重要的目录最好要存在/etc目录下:

        /etc/opt[必要]: 这个目录在放置第三方辅助软件/opt的相关配置文件

        /etc/X11[建议]:与X Window有关的各种配置文件堵在这里,尤其是xorg.cong这个X server的配置文件

        /etc/sgml[建议]:与SGML格式相关的各项配置文件;

        /etc/xml[建议]: 与XML格式有关的各项配置文件

    /lib:  系统的函数库非常多,而lib放置的则是启动时会用到的函数库,以及在/bin或/sbin下面的命令会调用到的函数库而已。什么是函数库?你可以将它想象成是外挂,某些命令必须要有这些外挂才能够顺利完成程序的执行之意,另外FSH还要求下面的目录必须要存在:

        /lib/modules/:这个目录主要放置可抽换的内核相关模块(驱动程序)

    /media:  medis是媒体的英文,顾名思义,这个/media下面放置的就是可删除的设备,包括软盘,光盘,DVD等设备都暂时挂载于此。常见的文件名有:/media/floppy,/media/cdrom等

    /mnt:  如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。在早些时候,这个目录的用于与/media相同。只是有了/media之后,这个目录就暂时用来挂载

    /opt:  这个是给第三方辅助软件放置的目录。什么是第三方辅助软件?举例来说,KDE这个左面管理系统就是一个独立的软件,不过它可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下。另外,如果你想要自行安装额外的软件(非原本的发行版提供),那么也能够将你的软件安装到这里来。不过,以前的Linux系统中,我们还是习惯放置在usr/local目录下。

    /run:  早期的FHS规定系统启动后所产生的各种信息应该都要放置到/var/run目录下,新版的FHS则规范到/run下面,由于/run可以使用内存来模拟,因此性能上要好很多.

    /sbin:  Linux有很多命令是用来设置系统环境的,这些命令只有root才能够用来设置系统,其它用户最多只能用来查询而已。放在/sbin下面的为启动过程中所需要的,里面包括了启动、修复、还原系统所需要的命令。至于某些服务器软件程序,一般则放置到/usr/sbin当中。至于本机自行安装的软件所产生的系统执行文件(system binary),则放置到/usr/local/sbin当中了。常见的命令包括:fidisk,fsck,ifconfig,mkfs等

    /srv:  srv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要使用的数据目录,常见的服务例如WWW、FTP等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www里面。不过,系统的服务数据如果尚未要提供给因特网任何人浏览的话,默认还是建议放置到/var/lib下面既可。

    /tmp:  这是让一般用户或是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要数据不可放置在此目录。因为FHS甚至建议在启动时,应该要将/tmp下的数据都删除。

    /usr:  后续说明

    /var:  后续说明

    还有一些其它的,也说明一下

    /lost+found:  这个目录是使用标准的ext2,ext3,ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置在这个目录下,不过如果使用的是xfs文件系统的话,就不会存在这个目录。

    /proc:  这个目录本身就是一个虚拟文件系统(virtual filesystem),它放置的数据都是在内存当中,例如系统内核、进程信息[process]、外接设备的状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。比较重要的中间例如:/proc/cpuinfo,/proc/dma,/proc/interrupts,/proc/ioports,/proc/net/*等

    /sys:  这个目录其实跟proc比较类似,也是一个虚拟的文件系统,主要也是记录内核与系统硬盘信息相关的内容。包括目前已加载的内核模块与内核检测与内核检测到的硬盘设备信息等,这个目录同样不占空间。

    现在已经把/bin,/sbin,/lib挂载到/usr下面,/下面的只不过是软连接.

    /usr的意义与内容

    依据FHS的基本定义,/usr里面放置的数据属于可分享与不可变动(shareable, static),你可以通过网络将/usr分享给其它电脑挂载使用。

    /usr是UNIX Software Resource的缩写,也就是UNIX操作系统软件资源所放置的目录。FHS建议所有软件开发中,应该将他们的数据合理地分别放置到这个目录下的子目录,而不要自行建立该软件自己独立的目录。

    因为是所有系统默认的软件(发行版发布者提供的软件)都会放置到/usr下面,因此这个目录有点类似Windows系统"C:Windows"(当中的一部分) + "C:Program Files"这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。一般来说,/usr的子目录建议有下面这些。

    第一部分:FHS要求必须要存在的目录

    /usr/bin/  所有的一般用户能够使用的命令都放在这里。目前新的Centos7已经将全部的用户命令放置与此,而使用链接文件的方式将/bin链接至此。也就是说,/usr/bin与/bin是一模一样的。另外,FHS要求在此目录下不应该有子目录。

    /usr/lib/  基本上,与/lib功能相同,所以/lib就是链接到此目录中的

    /usr/local/  系统管理员在本机安装自己下载的软件(非发行版默认提供者),建议安装到此目录,这样会比较便于管理。举例来说,你的发行版提供的软件较旧,你想安装较新的软件但又不想删除旧版,此时你可以将新版软件安装与/usr/local目录下,可与原先的旧版软件有分别。/usr/local目录下也是具有bin,etc,include,lib等子目录的

    /usr/sbin/  非系统正常运行所需要的系统命令,最常见的就是某些网络服务器软件的服务命令(daemon)。不过基本功能与/sbin也差不多,因此目前/sbin就是链接到此目录中。

    /usr/share/  主要放置只读的数据文件,当然也包括共享文件,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,因为几乎都是文本文件。在此目录下常见的还有这些子目录:

            /usr/share/man:在线帮助文件

            /usr/share/doc:软件的说明文件

            /usr/share/zoneinfo:与时区有关的时区文件

    第二部分:FHS建议可以存在的目录

    /usr/games/  与游戏比较相关的数据放置此

    /user/include/  c/c++等程序语言的头文件(header)与包含文件(include)放置处,当我们以Tarball方式(*.tar.gz的方式安装软件)安装某些程序时,会使用到里面的许多文件。

    /usr/libexec/  某些不被一般用户常用的执行文件或脚本(script)等,都会放置在此目录中。例如大部分的X窗口下面的操作命令,很多都是放置在此目录下。

    /usr/lib<qual>/  与/lib<qual>/功能相同,因此目前/lib<qual>就是链接到此目录中。

    /usr/src/  一般源代码建议放置到这里,src有source的意思。至于内核源代码则建议放置到/usr/src/Linux目录下。

    /var的意义与内容

     /var在运行后才会慢慢占用硬盘容量的目录。因为/var目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(log file)以及默写软件运行所产生的文件,包括程序文件(lock file、run file),或列如MySQL数据库的文件等。常见的子目录有:

    第一部分:FHS要求必须要存在的目录

    /var/cache/  应用程序本身运行过程中会产生的一些缓存

    /var/lib/    程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。举例来说,MySQL的数据库放置到/var/lib/mysql而rpm的数据库则放到/var/lib/rpm中

    /var/lock/   某些设备或是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该设备时,就可以产生一些错误的状况,因此就得要将设备上锁(lock),以确保设备只会给单一软件所使用。

    /var/log/    重要到不行。这是日志文件放置的目录,里面比较重要的文件有/var/log/messages,、/var/log/wtmp(记录登录信息)等

    /var/mail/    放置个人电子邮箱的目录,不过这个目录也被放置到/var/spool/mail目录中,通常这两个目录是相互为链接文件

    /var/run/    某些程序或是服务启动后,会将他们的PID放置在这个目录下

    /var/spool/   这个目录通常放置一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据被使用后通常都会被删除。举例来说,系统收到新邮件会放置到/var/spool/mail中,但用户收下该邮件后该封信原则上就会被删除,邮件如果暂时寄不出去会被放到/var/spool/mqueue中,等到被送出后就被删除。如果是计划任务数据(crontab),就会被放置到/var/spool/cron中。

    结束

  • 相关阅读:
    模块之使用模块
    函数之return
    Python3入门(八)——面向对象OOP
    Python3入门(七)——模块
    Python3入门(六)——函数式编程
    Python3入门(五)——高级特性
    Python3入门(四)——Python函数
    Python3入门(三)——Python基础语法
    Python3入门(二)——Python开发工具Pycharm安装与配置
    大数据入门第二十五天——elasticsearch入门
  • 原文地址:https://www.cnblogs.com/sidianok/p/15116633.html
Copyright © 2011-2022 走看看