目录
一、前言
二、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教程。
包名 | 管理工具 | 管理单个软件包 | 装包例子 | 实例 | |
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的一种。
网上有很多教程,但是基本上都是安装Centos6.5的,其实安装CentOS7.0是一样,或者说基本上主流版本都是一样,英文吃力点就将安装时语言设置为“中文简体”,绝对可以装好,这里略过。
若安装时遇到问题,这里可以解决vmware的一下问题:https://blog.csdn.net/qq_36963950/article/details/103321031
如图,这个笔者刚刚重新安装的CentOS7环境,两种用户登录后(ps:为“#”表示root用户,为“$”表示普通用户),蓝色表示目录.
为了更好的理解,笔者用自己的理解方法划分CentOS目录,且看下图:
注意:上图的用户类目录、系统类目录、应用类目录是笔者个人为了方便理解而划分,没有任何官方权威性。
1、内容和作用:/root目录为管理员root的家目录,/home目录为普通用户的家目录。
2、访问权限:/root目录仅管理员root可访问,普通用户不可访问;/home目录管理员root和普通用户均可访问
3、包含的子目录或子文件:默认开始的时候/root目录和/home/tester1目录下,均不包含任何有效文件(/root目录下有一个anaconda-ks.cfg文件,该文件可以修改成自动安装的脚本,用于自动安装同样配置的系统),以后这两个两个目录(/root目录和/home/用户名目录)下也不会有其他系统文件,这两个目录是完全给用户放自己的文件用的。目录结构如图:
1、内容和作用:用于存放二进制文件目录
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件,如图:
1、内容和作用:用于存放linux系统启动时所需文件的目录
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件,如图:
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就可以考虑这是不是编号了。
1、内容和作用:用于存放系统配置文件的目录,不建议在此目录下存放可执行文件.
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件,如图:
上图为/etc目录的目录结构和相应解释。
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目录,即系统管理员不是一个独立的用户。
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是设备接口。
1、内容和作用:给主机额外安装软件所摆放的目录。
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件
默认开始的时候/mnt目录下,不包含任何文件或目录,如图:
/opt目录下以后也不放系统性的东西,因为这个目录本来就是给用户使用的,用户可以将一些备用的东西,软件安装包什么的放在这里。
1、内容和作用:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件
如图:
/proc目录,英文全称为process,所以目录下基本都是进程信息。
1、内容和作用:三者都是存放运行时的临时数据,/run目录:英文全称run,译为运行,用于存放运行时临时数据的目录;/tmp目录:英文全称temporary,因为暂时,用于存放一般用户或正在执行的程序临时存放文件的目录;/var目录:英文全称variable,用于存放经常会改变的文件的目录
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件
对于/run目录:运行时临时数据,该目录下子目录和子文件无意义。
对于/tmp目录:因为当系统重新启动时,这个目录下的文件都将被删除,该目录下子目录和子文件无意义。
对于/var目录,如图:
1、内容和作用:英文全称service,译为服务,用于存放服务启动之后需要访问的数据的目录
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件:该目录下默认无目录,略过。
1、内容和作用:/sys目录:英文全称system,译为系统,用于存放文件系统的目录
2、访问权限:管理员root和普通用户均可访问
3、包含的子目录或子文件:存放文件系统,如图:
用户级操作一般使用不到,略过。
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教程。
天天打码,天天进步!