第6章 Linux目录文件与系统启动知识

本文详细介绍了Linux的目录结构,包括根目录、/etc、/usr、/var等目录的作用,以及Unix系统目录的历史典故。重点讲解了Linux系统启动流程,包括BIOS自检、MBR加载、Grub引导、内核加载、init进程、运行级别等步骤,同时对比了CentOS6和CentOS7的启动差异。
摘要由CSDN通过智能技术生成

第6章 Linux目录文件与系统启动知识

6.1 Linux系统目录结构介绍

6.1.1 Linux与Windows目录结构对比

相信很多读者已经熟悉了Linux的目录结构,图6-1可以进一步帮助读者对比Windows和Linux这两个系统的结构,不太了解Linux系统目录结构的读者,通过图6-1也可快速理解。

Windows的目录形式为c:\windows\,路径分隔符是“\”(撬棍,反斜线),D、E等盘的目录结构与之类似。Linux的目录形式为/etc/hosts,路径分割符为“/”(斜线),Linux系统的一切目录都是从“/”根开始的。

6.1.2 Linux系统目录结构的基本特点

相较于Windows下的目录结构,可能会有读者在初次接触Linux的时候,觉得Linux的目录结构比较复杂,不像Windows视窗那样简单明了,从而感到很迷茫。

其实,Linux系统的目录结构同样也是很简单的,只是Linux系统的应用场景多为服务器应用且为字符界面应用,所以不像Windows系统视窗那样直观。但是,Linux系统的目录结构是很有规律的,图6-2所示的是Linux的目录结构最形象的比喻。

图6-1 Linux与Windows目录结构对比

从图6-2中可以看出,Linux系统的目录结构具有如下基本特点。

图6-2 Linux系统目录结构的特点

·一切从“根”开始,“/”是所有目录的起点(顶点)。

·Linux根下面的目录是一个有层次的树状结构。

·酷似一棵倒挂着的树。

除此之外,Windows系统目录与磁盘是强对应的,联系很紧密,例如,C盘下的目录文件不可能与D盘下的目录有关联或者交集。而Linux系统目录则与此不同,Linux系统的目录与磁盘等设备是不直接关联的,每个目录都可以关联(官称:挂载)在不同的设备(例如磁盘)上,例如,看似有包含关系的几个目录/、/etc、/boot、/var很可能是分布在不同的分区或磁盘上。

在逻辑上,所有的目录(包括目录下的子目录)都在最高级别的目录“/”下,根(“/”)目录是所有目录的起始点(顶点),而实际上访问目录/、/etc、/boot、/var时,可能是在访问完全不同的分区和磁盘,图6-3所示的是Linux目录结构和设备挂载的关系图。

Linux下面的设备(磁盘),如果不挂载,则是看不到入口的,就像没窗没门的监狱一样,是不能被正常使用的,如果要访问设备,就必须为设备开一个入口,这个入口就是挂载点,挂载点实质上就是一个目录,开入口的过程,就是将挂载点与磁盘设备相关联,即挂载。

图6-3 Linux中磁盘分区与目录的关系

6.1.3 Linux目录结构的特点小结

·Linux系统的所有目录都是一个有层次的倒立着的树状目录结构(倒挂树形结构),“/”根是所有目录的顶点,对于Linux的目录来说,一切从根开始。

·不同目录下的数据可以跨越不同的磁盘分区或不同的磁盘设备,设备可以随意挂载到任意目录上使用。

·所有的目录都是按照一定的类别有规律地进行组织和命名的。

·没有挂载到目录上的磁盘,相当于没有门和窗户的监狱,不能被使用。磁盘等设备需要挂载后才能正常使用。

·挂载点是磁盘访问的入口,是一个目录。

·相对路径与绝对路径具有如下关系:绝对路径是指以根为起始点的路径,例如/tmp、/opt;相对路径是指相对于非“/”路径的路径,即路径开头没有“/”斜线,例如etc/sysconfig、opt/tmp等,是相对于当前路径(执行pwd可查看)的路径。

提示:老男孩的学习思路为“练习自己归纳总结的能力,把书由厚读薄”

6.2 Unix系统目录结构的历史典故

了解目录结构的历史典故,目的是让大家能够清晰地了解并记忆Linux的目录结构。在学习Linux时,为知识赋予一个有意义的故事,是减缓忘记的好方法。

1969年,Ken Thompson和Dennis Ritchie在小型机PDP-7上发明了Unix。1971年,他们将主机升级到了PDP-11,PDP主机如图6-4所示。

图6-4 PDP主机

当时,他们使用了一种称为RK05的储存盘,盘的容量大约是1.5MB,如图6-5所示。

图6-5 1.5MB RK05硬盘和马路上的下水道井盖大小对比

由于硬盘的容量很小,操作系统存储盘存放的数据(根目录)却越来越大,因此没过多久一块盘就已经装不下数据了。于是,技术人员加上了第二盘RK05,并且做了规定,第一块盘专门用来存放系统相关的程序,第二块盘专门用来存放用户自己的程序,因此,后者挂载点的目录取名为/usr。也就是说,根目录“/”挂载在第一块盘上,“/usr”目录挂载在第二块盘上。除此之外,两块盘里面的其他目录结构是完全相同的,例如:第一块盘的目录(/bin、/sbin、/lib、/tmp...)都会在/usr目录下重新出现一次,下面列出实际目录重复的情况:


[root@oldboy ~]# ls -ld /bin /lib /sbin /tmp
lrwxrwxrwx.  1 root root    7 Jan 29 20:29 /bin -> usr/bin
lrwxrwxrwx.  1 root root    7 Jan 29 20:29 /lib -> usr/lib
lrwxrwxrwx.  1 root root    8 Jan 29 20:29 /sbin -> usr/sbin
drwxrwxrwt. 21 root root 4096 Jan 31 11:50 /tmp
[root@oldboy ~]# ls -ld /usr/bin/ /usr/lib /usr/sbin/ /usr/tmp/
dr-xr-xr-x.  2 root root 28672 Jan 29 23:26 /usr/bin/
dr-xr-xr-x. 29 root root  4096 Jan 29 20:30 /usr/lib
dr-xr-xr-x.  2 root root 12288 Jan 29 23:26 /usr/sbin/
drwxrwxrwt.  3 root root    18 Jan 31 10:30 /usr/tmp/

不久之后,第二块存储盘也满了,然后只好又加了第三盘RK05,挂载点的目录取名为/home,并且做了规定,/home用于存放用户的数据。

目录结构的起名和定义就如此延续,具体见表6-1。随着设备的发展,硬盘的容量越来越大,各个目录的含义也进一步得到了明确。

表6-1 Linux系统诞生之初的目录及其作用表

6.3 Linux的目录结构详解

6.3.1 目录层次标准(FHS)

FHS的全称为Filesystem Hierarchy Standard,中文意思是目录层次标准,是Linux的目录规范标准。详情请参见http://www.pathname.com/fhs/。

FHS定义了两层规范,具体如下。

第一层是“/”目录下的各个目录应该存放什么样的文件数据,例如,/etc目录下放置的是系统的配置文件(比如,/etc/exports、/etc/hosts等),而/bin和/sbin下存放的则是程序及系统命令。

第二层是针对/usr(unix software resource或secondary hierarchy)和/var(variable data)这两个目录的子目录来定义的。例如,/var/log下放置的是系统日志文件等。

参考资料


http://www.pathname.com/fhs/
http://www.ibm.com/developerworks/linux/library/l-proc/index.html

6.3.2 根下目录结构详解

对于每一个Linux初学者来说,花费时间掌握Linux系统的目录结构知识是很有必要的。

当使用Linux系统的时候,如果执行“ls-l/”命令就会发现,在“/”下面包含了很多目录内容,比如etc、usr、var、bin等,而在这些目录里面,还会有更多的目录或文件,它们构成了一个树状的结构。

Linux系统目录结构的最顶端是“/”,称其为根目录,根(/)目录是Linux系统所有目录的起始点,所有的目录、文件、设备都在“/”之下,根(/)目录下的目录是一个树状结构,可以这么说,“/”就是Linux文件系统的组织者、领导者,通过tree命令,可以查看Linux的一级目录结构。示例代码如下:


[root@oldboy ~]# tree -L 1 / 
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
19 directories, 0 files

为了便于大家学习,这里将这些常见的目录列成表格详细说明,具体见表6-2。

表6-2 根下的目录结构知识

6.4 重要的Linux系统文件介绍

前面讲解的是根下一级目录的作用,在实际工作中,更重要的是一些具体的目录。这些都是Linux运维人员必须要熟记的。

6.4.1 /etc系统初始化及设置相关重要文件

1./etc/sysconfig/network-scripts/ifcfg-eth0:网卡配置文件

这是Linux系统第一块网卡的配置文件所在的路径,其中第一块网卡配置文件的结尾标识为eth0,第二块为eth1,以此类推。

当通过执行命令nmtui(CentOS6为setup)来修改网卡配置时,实际上就是在修改这个/etc/sysconfig/network-scripts/ifcfg-eth0文件,因此也可以通过直接编辑该文件的方式实现对网卡配置的更改(如图6-6所示)。

配置完网卡之后,可以通过重启网络服务(systemctl restart network)来使得所有网卡的配置文件生效,如果只需让某个单独的eth0网卡配置生效,则可以通过命令ifdown eth0&&ifup eth0(停掉及启动et

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值