拥抱Linux——浅析CentOS目录结构

目录

一、前言

二、Linux与CentOS

2.1 Linux与CentOS的关系

2.2 vmware上安装Centos7.0

三、CentOS7目录结构

3.1 目录结构

3.1.1 用户类目录(/root 目录和/home目录)

3.1.2  /bin目录与/sbin目录

3.1.3 /boot目录

3.1.4 /dev目录

3.1.5 /etc目录

3.1.6 /lib目录与/lib64目录

3.1.7 /mnt目录(/media目录)

3.1.8 /opt目录

3.1.9 /proc目录

3.1.10 /run目录、/tmp目录、/var目录

3.1.11 /srv 目录

3.1.12 /sys 目录

3.2 一句话搞懂所有目录

四、小结


一、前言

      本文在vmware上搭建Centos7.0环境(本来是想使用最新的CentOS8.0,但是vmware15.5.1也只能支持到CentOS7.0,CentOS8.0恐怕要直接装在电脑。。。。。),重点讲解Linux目录结构,作为一个很好的识别CentOS教程。

二、Linux与CentOS

2.1 Linux与CentOS的关系

  包名 管理工具 管理单个软件包 装包例子 实例
Debian系列 .deb apt-get dpkg apt-get install xxx Debian、Ubuntu
Redhat系列 .rpm yum rpm yum -y  Redhat Enterprise Linux、FedoraCore、CentOS

从上表可知,CentOS是redhat系列Linux,是被包含在Linux中,是Linux的一种。

2.2 vmware上安装Centos7.0

网上有很多教程,但是基本上都是安装Centos6.5的,其实安装CentOS7.0是一样,或者说基本上主流版本都是一样,英文吃力点就将安装时语言设置为“中文简体”,绝对可以装好,这里略过。

若安装时遇到问题,这里可以解决vmware的一下问题:https://blog.csdn.net/qq_36963950/article/details/103321031

三、CentOS7目录结构

3.1 目录结构

如图,这个笔者刚刚重新安装的CentOS7环境,两种用户登录后(ps:为“#”表示root用户,为“$”表示普通用户),蓝色表示目录.

为了更好的理解,笔者用自己的理解方法划分CentOS目录,且看下图:

    

注意:上图的用户类目录、系统类目录、应用类目录是笔者个人为了方便理解而划分,没有任何官方权威性。 

3.1.1 用户类目录(/root 目录和/home目录)

1、内容和作用:/root目录为管理员root的家目录,/home目录为普通用户的家目录。

2、访问权限:/root目录仅管理员root可访问,普通用户不可访问;/home目录管理员root和普通用户均可访问

3、包含的子目录或子文件:默认开始的时候/root目录和/home/tester1目录下,均不包含任何有效文件(/root目录下有一个anaconda-ks.cfg文件,该文件可以修改成自动安装的脚本,用于自动安装同样配置的系统),以后这两个两个目录(/root目录和/home/用户名目录)下也不会有其他系统文件,这两个目录是完全给用户放自己的文件用的。目录结构如图:

3.1.2  /bin目录与/sbin目录

1、内容和作用:用于存放二进制文件目录

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件,如图:

3.1.3 /boot目录

1、内容和作用:用于存放linux系统启动时所需文件的目录

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件,如图:

3.1.4 /dev目录

1、内容和作用:用于存放linux设备文件的目录,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。

        Linux沿袭Unix的风格,将所有设备认成是一个文件,用户可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。因为在这个目录中包含了所有Linux系统中使用的外部设备,但是这里并不是放的外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。

        Linux 中的设备按照存取方式的不同,可以分为两种:块设备文件(b)和字符设备文件(c)

字符设备:无缓冲且只能顺序存取

块设备:有缓冲且可以随机(乱序)存取

无论是哪种设备,在 /dev 目录下都有一个对应的文件(节点),并且每个设备文件都必须有主/次设备号,主设备号相同的设备是同类设备,使用同一个驱动程序(虽然目前的内核允许多个驱动共享一个主设备号,但绝大多数设备依然遵循一个驱动对应一个主设备号的原则)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。

附:/dev目录下的子目录和子文件(即设备)是怎么创建的?

  devf或者udev会自动帮你创建得。

  kobject是sysfs文件系统的基础,udev通过监测、检测sysfs来获取新创建的设备的。

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件

这里笔者根据自己的虚拟机讲解CentOS7中/dev下各个子目录或子文件,如图:

且看/dev目录结构图: 

附:关于/dev目录的几个比较重要的点

1、/dev/cdrom的软链接

上图表示/dev/cdrom软链接到/dev/sr0::

/dev/sr0是光驱的设备名,/dev/cdrom代表光驱

cdrom是sr0的软链接,可以使用ll /dev/cdrom和ll /dev/sr0看看显示

 2、/dev/block目录中放入的是块设备,看看笔者的虚拟机:

                         

没错,/dev/block中每一个项不仅给出块设备列表,而且还可以定义为的到该设备的位置,上图在/dev/block中先上一级到/dev目录,然后到相应的设备。(注意:/dev/char目录中存放的是字符设备,但是太多了,不好演示。)

3、关于/de/input目录

                      

/dev/input的目录是用来存放输入设备的,这里展示笔者虚拟机上的截图,对于上面的/dev目录结构图。

4、关于hda2   sda3强调一下

hda一般是指IDE接口的硬盘,hda指第一块硬盘,hdb指第二块硬盘,等等;sda一般是指SATA接口的硬盘,sda指第一块硬盘,sdb指第二块硬盘,等等。hda2表示第一块IDE接口硬盘的第二个分区,sda3表示第一块SATA接口硬盘的第三个分区,

注意:第四点中,通过a b c来对磁盘编号,通过1 2 3来对分区编号,其实,Linux系统中,包括redhat和Debian,都是通过这种方式,有时是a b c,有时是1 2 3,以后见到就知道了,基本上后缀为a b c或1 2 3就可以考虑这是不是编号了。

3.1.5 /etc目录

1、内容和作用:用于存放系统配置文件的目录,不建议在此目录下存放可执行文件.

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件,如图:

上图为/etc目录的目录结构和相应解释。

3.1.6 /lib目录与/lib64目录

1、内容和作用:用于存放系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件,如图:

看不懂,没关系,我们只要知道/lib与/lib64都是存放函数库,记住“函数库”三个字就够了

附:/根目录、/usr目录、/usr/local目录三者辨析(这里演示已包括了/usr目录,所有后面不再将/usr目录单独拿出来讲)且看图:

相关问题:三者区别:/根目录、/usr目录、/usr/local目录,三者下都有/bin /sbin /lib /lib64 /etc,三者区别是什么?

一般来说,/根目录下,包括/bin /sbin /lib /lib64 /etc都是系统自带的东西,都是系统配置,如网络设置,没有需要的话,我们不要动这个东西,也不要将自己的东西装到这里去,保持良好的喜欢,笔者曾经手贱,将/lib64目录删除,导致虚拟机不可用

/usr目录下,Unix Software Resource 意为 Unix系统软件资源,是共用的程序,系统自带的软件都装在这个目录下,用户安装的第三方软件也在这个目录下,无论系统的还是用户安装的,都是用户间共用的,/usr/bin /usr/sbin /usr/lib /usr/lib64 /usr/libexec /usr/etc这些东西都同级作用,养成良好的喜欢,就是说,如果将软件安装到/usr/bin下面,就最好把依赖包放在/usr/lib下面,配置在/usr/etc下面

/usr/local目录下,安装本地程序的默认路径,这才是CentOS推荐用户安装软件的位置(上面的/usr目录不是推荐位置),所以我们最好养成良好的习惯,把自己的软件安装到/usr/local下面,然后同样保持同级目录的习惯,即如果将软件安装到/usr/local下面,把依赖包放在/usr/local/lib下面,配置在/usr/local/etc下面

一句话小结:/根目录下是系统程序,/bin目录下是所有用户共用的程序,/usr/bin目录下是当前用户的程序

附:关于上图中的系统管理员,什么是系统管理员?

linux中独立的用户只有两种:root用户与普通用户,两种用户可以充当系统管理员,都可以操作sbin、/usr/sbin目录,即系统管理员不是一个独立的用户。

3.1.7 /mnt目录(/media目录)

1、内容和作用:用于实现光盘挂载的默认目录。 

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件:默认开始的时候/mnt目录下,不包含任何文件或目录,如图:

                 

如果需要挂载设备,在当前/mnt目录下,新建/cdrom目录,然后挂载在/mnt/cdrom下,(ps:通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载)。  

相关问题:/mnt目录、/media目录、/dev目录三者区别

/mnt 是被系统管理员使用,手动挂载一些临时媒体设备的目录。

/medai 是自动挂载的目录,比如我们的U盘插在ubuntu下回自动挂载,就会在/media下生成一个目录,这个目录就是U盘所在目录,或者说文件。

/dev 不是存放设备的驱动程序,而是作为访问外部设备文件的接口。比如,我们的U盘,插入linux系统后,用fdisk -l查看分区,显示文件为/dev/sda1。则我们可以将u盘挂载到/mnt/usb1下,mount /dev/sda1 /mnt/usb1 即可。

一句话总结:/mnt和/media都是挂载,/mnt是手动挂载,/media是自动挂载,/dev是设备接口。

3.1.8 /opt目录

1、内容和作用:给主机额外安装软件所摆放的目录。

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件

默认开始的时候/mnt目录下,不包含任何文件或目录,如图:

     

/opt目录下以后也不放系统性的东西,因为这个目录本来就是给用户使用的,用户可以将一些备用的东西,软件安装包什么的放在这里。

3.1.9 /proc目录

1、内容和作用:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件

如图:

/proc目录,英文全称为process,所以目录下基本都是进程信息。

3.1.10 /run目录、/tmp目录、/var目录

1、内容和作用:三者都是存放运行时的临时数据,/run目录:英文全称run,译为运行,用于存放运行时临时数据的目录;/tmp目录:英文全称temporary,因为暂时,用于存放一般用户或正在执行的程序临时存放文件的目录;/var目录:英文全称variable,用于存放经常会改变的文件的目录

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件

对于/run目录:运行时临时数据,该目录下子目录和子文件无意义。

对于/tmp目录:因为当系统重新启动时,这个目录下的文件都将被删除,该目录下子目录和子文件无意义。

对于/var目录,如图:

3.1.11 /srv 目录

1、内容和作用:英文全称service,译为服务,用于存放服务启动之后需要访问的数据的目录

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件:该目录下默认无目录,略过。

3.1.12 /sys 目录

1、内容和作用:/sys目录:英文全称system,译为系统,用于存放文件系统的目录

2、访问权限:管理员root和普通用户均可访问

3、包含的子目录或子文件:存放文件系统,如图:

                  

用户级操作一般使用不到,略过。

3.2 一句话搞懂所有目录

Linux的目录大体分为三种:用户类目录、系统类目录、应用类目录(这个划分只是笔者个人以方便理解划分,没有任何官方权威)。用户类目录两个,root目录是root账户使用,home目录给普通用户使用,home目录下每一个用户有一个用户名命令的目录,就是这个用户的;系统类目录有/bin目录用于二进制可执行文件,/boot目录与启动相关,/sbin目录是系统管理配置,/etc目录是系统配置文件,/lib目录、/lib64目录是函数库,/dev目录是设备,/mnt目录和/media目录是挂载,/sys目录是存放文件系统,/proc目录是进程信息,/svc目录是服务信息;应用类目录与程序运行挂钩,/tmp目录、/run目录和/var目录都是运行时改变内容,/usr目录和/opt目录是给用户使用的,一般都没有系统级的东西。
 

四、小结

      本文在vmware上搭建Centos7.0环境,重点讲解Linux目录结构,作为一个很好的识别CentOS教程。

天天打码,天天进步!

发布了177 篇原创文章 · 获赞 31 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_36963950/article/details/103830079