兴安雪学运维之:目录树详解

        极北之地,兴安之雪,老骥伏枥转战Linux运维,最近根据授课和大略看了FHS3.0,对Linux的目录有了初步的了解,怕人老忘性差,作以记录。

        一、目录结构图

        Linux的目录是一个倒置的树状结构,最顶层的目录为“/”目录,以此衍生各种子目录,而FHS3.0有对“/usr/”和“/var/”两个次级子目录进行了规范,大略结果如下图,由于篇幅有限,我把树状结构稍微进行了改变,表达的不是特别清晰,但具体的逻辑结构应该没问题。

兴安雪学运维之:目录树详解_第1张图片

        二、/:及相关目录介绍

        1、/:根目录:Root directory,它的作用,只要是比我强的,都知道他的作用,嗯,好像,没有比我弱的,在强调一边,CentOS系统中最重要的一个目录,也是最底层、最基础、最脆弱的一个目录,什么目录都可以损害,boot重要吧,损坏了,可以引导修复,etc重要吧,坏了可以重新配置,但如果/目录损坏了,你也别抱有幻想了,除了哪些顶级大神,能不同程度恢复一些数据,像我这种初学者,就只能用绝招,重装系统了。

        所有,/目录要最大程度上减少与其他的交互,尤其是人机交互,FHS建议根目录所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好,根目录所在的文件也就不容易发生问题。但/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中,即使不放在同一个分区,应该该放符号链接。

        根据FHS定义根目录最好包含下面这些子目录:

        2、/bin----->/usr/bin :存放了系统关键的可执行的二进制文件,可以被所有人使用,这里存放的文件,也是一般用户的基本命令,例如cat、ls、chmod、chown,date,mv,touch,mkdir,cp,bash等,此目录作为系统变量环境的基本参数,使用echo $PATH,可以查询。目前在CentOS中,/bin目录是/usr/bin的符号链接。

        3 、/boot:主要放置系统启动所需要的文件,包括LInux内核文件以及自动选项与启动所需要的配置文件等;Linux内核常用文件名为:vmlinuz,如果使用grub2引导程序,则还会存在/boot/grup2这个目录。这个目录建议单独分区,一旦这个目录初选问题,系统将无法启动。

兴安雪学运维之:目录树详解_第2张图片

        如果说根分区似家里的正门,无论加入家里哪个房间,都需要从正门进入,那么boot分区就相当于正门的锁,每次回家之前,都需要开锁才能进入。 

        4、/dev:这里存放的主要是设备文件,Linux之中,一切皆文件,不论是物理设备,虚拟设备,程序借口等等,都是文件,通过访问这个目录中的文件,就相当于访问了设备。重要的设备文件有/dev/tty*,/dev/sda*,/dev/sr0,/dev/cdrom,,/dev/input,/dev/null,/dev/zero等等。兴安雪学运维之:目录树详解_第3张图片

         这个目录非常重要,不论是鼠标、键盘、U盘、硬盘,光盘、打印机等外部设备,只要想接入Linux系统,必然会在这里有一个系统文件。这里的/dev/null文件,很有意思,对于像我这种初学者来说可以多练习一下。

        5、/etc/:系统主要的静态配置文件都放在这个目录中,例如账号、密码、组、登录方式、挂载方式、各种服务的启动文件,一般来说,这里的文件绝大部分可以给普通用户浏览,但只有root用户才能修改。兴安雪学运维之:目录树详解_第4张图片

        这个目录中的配置文件,一般用cat可以查看,比较重要的文件:/etc/opt/:主要放第三方软件的相关配置信息。

        6、/lib(lib64):系统被调用的库函数,不能单独使用,只能被系统、命令或者程序脚本调用,64位系统。比较重要的/lib/modules/文件目录,主要存放与内核相关驱动模块。 

        7、/media:挂载点,现在基本不用。

        8、/mnt:比较常用的挂载点,一般建议将外接设备挂载到这个文件夹。

        9、/opt:第三方辅助软件放置的目录,根据个人习惯,有人习惯放在这里,有人习惯放在/usr/local目录下。

        10、/run:系统启动后产生的各项信息放置到这个目录,提升内存效能。

        11、/sbin---->/usr/bin:只能root用户才能使用的命令,主要用于设置系统环境,其他用户只能用来查询,包括了启动、修复、还原系统所需的命令。目前该目录作为/usr/sbin的符号链接。

        12、/srv:service的缩写,一些网络服务启动后,产生的数据和所需要的配置,都放在这个目录中,比较著名的有WWW,FTP等。

        13、/tmp:临时文件目录,这个目录是初学者经常使用的目录,所用用户都可以存取,建议不要把重要的目录文件放到这里,这个目录可以作为我们经常练习各种操作的地方,也可以作为公共交流区,不管别人,我是很喜欢这个目录,可以不负责任的删改。

        14、/home:家目录,每个用户登录系统后,第一时间所在的目录,也是对于用户来说比较隐私的目录,此目录可以配置个人登录shell的设置。

        15、/root:root的家目录,此目录可以进行单人维护模式,仅仅挂载根目录,所以此目录应该和根目录放置在同一个分区。

        16、/proc:虚拟文件目录,主要是存放系统在运行过程中内存中的文件信息,因为这个目录在内存中,所以不占用硬盘空间。比较重要的目录有/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net*/等。

        17、/sys:与proc目录相似,主要记载内核与硬件信息相关的内容。

三、/usr:Unix Software Resource

        FHS中将/usr目录作为一个次级目录组来设置。/usr里面放置的资料属于可分享的与不可变动的(shareable, static),是系统软件所放置的目录,而不是使用者的资料啦!这点要注意。FHS建议所有软件开发者,应该将他们的资料合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。其具体目录配置如下:

目  录    放置内容
/usr/bin 作用同/bin
/usr/sbin 作用同/sbin
/usr/local 第三方软件安置点,强烈建议安装到此处,当然,你也可以另起炉灶,但总会不方便
/usr/lib 同/lib
/usr/share 只读数据文件,主要有共享文件,例如:man手册,软件帮助文件等等
/usr/include c/c++程序语言的头文件。
/usr/src 源代码安置点。

        四、/var:variable

        此目录放置的系统运行后,数据产生变化占用硬盘的目文件,因为/var目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序数据(lock file, run file),或者例如MySQL资料库的文件等等,常见的子目录有

目录 放置内容
/var/cache 程序运行中占用缓存的文件
/var/lock 程序运行中需要被锁定的数据流所在目录
/var/log 日志文件放置的目录,极其重要。
/var/mail 个人邮件目录
/var/run 某些程序启动后,会将他们的PID放置到这里
/var/spool 程序运行中,队列数据放置点
/var/lib 程序运行中调用函数所占的文件或者目录

 

 

你可能感兴趣的:(linux,centos,运维,命令模式)