Check out the linux directory for memo

content file content should be placed
Part 1: Directories that must exist as required by FHS
/bin The system has many directories for placing executable files, but /bin is special. Because /bin places instructions that can still be operated in single-person maintenance mode.  Commands under /bin can be used by root and general accounts, mainly: cat, chmod, chown, date, mv, mkdir, cp, bash and other commonly used commands.
/boot This directory is mainly used to place files that will be used for booting, including Linux kernel files, boot menus, and configuration files required for booting. The commonly used file name of Linux kernel is: vmlinuz . If the boot management program grub2 is used, the directory /boot/grub2/ will also exist!
/dev On a Linux system, all devices and peripherals exist in this directory in the form of files. As long as you access a file under this directory, you can access a device. The more important files are /dev/null, /dev/zero, /dev/tty  , /dev/loop*, /dev/sd* etc.
/etc Most of the system's main configuration files are placed in this directory, such as personnel's account and password files, startup files of various services, and so on. Generally speaking, the attributes of each file in this directory can be viewed by ordinary users, but only root has the right to modify it. FHS recommends not to put executable files (binary) in this directory . The more important files are: /etc/modprobe.d/, /etc/passwd, /etc/fstab, /etc/issue and so on. In addition, FHS also regulates that several important directories should preferably exist in the /etc/ directory:
  • /etc/opt (required) : This directory is where the configuration files related to third-party third-party software /opt are placed
  • /etc/X11/ (recommended) : Various configuration files related to X Window are here, especially xorg.conf, the X Server configuration file.
  • /etc/sgml/ (recommended) : various configuration files related to the SGML format
  • /etc/xml/ (recommended) : various configuration files related to XML format
/lib There are a lot of function libraries in the system, and /lib places the function libraries that will be used at boot time, and the function libraries that are called by the commands under /bin or /sbin . What is a library? You can think of it as a "plug-in", and certain instructions must have these "plug-ins" to successfully complete the execution of the program. In addition, FHS also requires that the following directories must exist:
  • /lib/modules/ : This directory mainly stores removable core-related modules (drivers)!
/media media is the English word for "media". As the name suggests, the device placed under /media is a removable device!  Devices including floppy disks, CDs, DVDs, etc. are temporarily mounted here. Common file names are: /media/floppy, /media/cdrom and so on.
/ mnt If you want to temporarily mount some additional devices, it is generally recommended that you place them in this directory. In ancient times, this directory was used for the same purpose as /media! Only after /media is available, this directory is used for temporary mounting.
/opt 这个是给第三方协力软体放置的目录。什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下呢!
/run 早期的FHS 规定系统开机后所产生的各项资讯应该要放置到/var/run 目录下,新版的FHS 则规范到/run 底下。由于/run 可以使用记忆体来模拟,因此效能上会好很多!
/sbin Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来『设定』系统,其他使用者最多只能用来『查询』而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, mkfs等等。
/srv srv可以视为『service』的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。常见的服务例如WWW, FTP等等。举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。不过,系统的服务资料如果尚未要提供给网际网路任何人浏览的话,预设还是建议放置到/var/lib 底下即可。
/tmp 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊!因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除唷!
/usr 第二层FHS 设定,后续介绍
/var 第二曾FHS 设定,主要为放置变动性的资料,后续介绍
第二部份:FHS 建议可以存在的目录
/home 这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者帐号时, 预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号喔:
  • ~:代表目前这个使用者的家目录
  • ~dmtsai:则代表dmtsai的家目录!
/lib<qual> 用来存放与/lib 不同的格式的二进位函式库,例如支援64 位元的/lib64 函式库等
/root 系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。

事实上FHS针对根目录所定义的标准就仅有上面的咚咚,不过我们的Linux底下还有许多目录你也需要了解一下的。底下是几个在Linux当中也是非常重要的目录喔:

目录 应放置档案内容
/lost+found 这个目录是使用标准的ext2/ext3/ext4档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。不过如果使用的是xfs 档案系统的话,就不会存在这个目录了!
/proc 这个目录本身是一个『虚拟档案系统(virtual filesystem)』喔!他放置的资料都是在记忆体当中,例如系统核心、行程资讯(process)、周边装置的状态及网路状态等等。因为这个目录下的资料都是在记忆体当中,所以本身不占任何硬碟空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*等等。
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录核心与系统硬体资讯较相关的资讯。包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。这个目录同样不占硬碟容量喔!

早期Linux 在设计的时候,若发生问题时,救援模式通常仅挂载根目录而已,因此有五个重要的目录被要求一定要与根目录放置在一起, 那就是/etc, /bin, /dev , /lib, /sbin 这五个重要目录。


/usr的次目录建议有底下这些:

目录 应放置档案内容
第一部份:FHS 要求必须要存在的目录
/usr/bin/ 所有一般用户能够使用的指令都放在这里!目前新的CentOS 7 已经将全部的使用者指令放置于此,而使用连结档的方式将/bin 连结至此!也就是说, /usr/bin 与/bin 是一模一样了!另外,FHS 要求在此目录下不应该有子目录!
/usr/lib/ 基本上,与/lib 功能相同,所以/lib 就是连结到此目录中的!
/usr/local/ 系统管理员在本机自行安装自己下载的软体(非distribution预设提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软体较旧,你想安装较新的软体但又不想移除旧版, 此时你可以将新版软体安装于/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/g​​ames/ 与游戏比较相关的资料放置处
/usr/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 的意义与内容:

如果/usr是安装时会占用较大硬碟容量的目录,那么/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),以确保该装置只会给单一软体所使用。举例来说,烧录机正在烧录一块光碟,你想一下,会不会有两个人同时在使用一个烧录机烧片?如果两个人同时烧录,那片子写入的是谁的资料?所以当第一个人在烧录时该烧录机就会被上锁, 第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用啰。目前此目录也已经挪到/run/lock 中!
/var/log/ 重要到不行!这是登录档放置的目录!里面比较重要的档案如/var/log/messages, /var/log/wtmp(记录登入者的资讯)等。
/var/mail/ 放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中!通常这两个目录是互为连结档啦!
/var/run/ 某些程式或者是服务启动后,会将他们的PID放置在这个目录下喔!至于PID的意义我们会在后续章节提到的。与/run 相同,这个目录连结到/run 去了!
/var/spool/ 这个目录通常放置一些伫列资料,所谓的『伫列』就是排队等待其他程式使用的资料啦!这些资料被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中,但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中,等到被送出后就被删除。如果是工作排程资料(crontab),就会被放置到/var/spool/cron/目录中!


此外,CentOS 7 在目录的编排上与过去的版本不同喔!本节稍早之前已经有介绍过,这里做个汇整。比较大的差异在于将许多原本应该要在根目录(/) 里面的目录,将他内部资料全部挪到/usr 里面去,然后进行连结设定!包括底下这些:

  • /bin --> /usr/bin
  • /sbin --> /usr/sbin
  • /lib --> /usr/lib
  • /lib64 --> /usr/lib64
  • /var/lock --> /run/lock
  • /var/run --> /run
目录树架构示意图

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326778508&siteId=291194637