专栏首页无心的梦呓Linux目录结构及开机流程详解

Linux目录结构及开机流程详解

对Linux有一些了解的,都应该知道在Linux中所有的内容都是文件,包括硬盘等各种硬件在Linux中也都是按照文件来继续处理的,所以对Linux文件的了解将是非常重要的。

目录

0x01 Linux重要目录结构

0x02 Linux启动流程

0x01 Linux重要目录结构

/bin

用户的命令都在这里

使用which 命令 可以查看命令的所在路径

/boot

Linux内核及系统引导程序的所在目录

/dev

设备文件的目录,硬盘、声卡等等都在这里

/etc

软件的配置文件的目录和软件启动程序的目录

/home

普通用户的家目录

/root

root用户的家目录

/lib

启动系统和运行命令所需要的共享文件库文件和内核模块存放的目录

/lost+found

系统崩溃时,一些文件会存放在这里,可以通过一些命令来进行恢复操作

/mnt

临时的挂载点,用于临时挂载存储设备的,要想使用所插入的设备,必须先将设备进行挂载才能进行访问

mount /dev/cdrom /mnt

将dev中的设备挂载到mnt目录下,然后才可以进行访问,就好比当你把储存设备插入之后,它就相当于是一个监狱,没有门是无法进入的,只有你把它挂载到mnt目录下之后,相当于开了一个门,才能进入这个储存设备中,使用下列可以取消挂载点,相当于再把门去掉

umount /mnt

/opt

可选择的目录,有些软件也是会被安装到这里的,我们自己编译的软件包,也可以放在这个目录中去

/sbin

系统管理员相关的命令,/bin下是普通用户的命令

/tmp

临时文件目录,权限比较特殊,相当于是Windows的回收站,之前有朋友就把程序安装到了这个目录下,还好奇为啥重启之后就没有了。

/usr

存放程序的目录

/usr/local:默认软件安装目录
/usr/src:程序源代码目录

/var

一个变化的目录,其中的内容是经常变动的

/var/log:系统日志的存放目录
/var/log/messages:系统日志路径
/var/lib:库文件存放路径

/proc

系统运行时,进程信息及内核信息都存放在这里,比如cpu、硬盘、内存等等的信息

/proc/loadavg:系统负载
/proc/meminfo:系统内存信息
/proc/cpuinfo:系统cpu信息
/proc/mounts:系统挂载信息

接下来要说Linux的启动流程,还有两个文件需要明确一下

一、

/etc/fstab

配置开机设备自动挂载的文件

前面说/mnt目录的时候也说过了,只有把硬盘挂载到挂载点后,才能进行访问的,但是Linux启动我们也没有手动来做过挂载呀,没有挂载就不能访问,那系统是怎样启动起来呢?

就是由于这个文件实现了开机设备自动挂载,我们可以通过更改这个文件来实现文件的自动挂载,一定要注意不要写错其中的内容,如果写错的话将可能会导致Linux系统无法启动,因为在挂载中遇到错误后,是不会再继续往下执行的,为了避免这样的情况,在最后一个数值设定的时候一定要设置为0,不进行磁盘检查,如果设置为1或者2的话,将可能会导致设备无法启动。

一共有六列内容,从左到右依次是:

要挂载的设备、挂载点、挂载时候的文件系统格式、挂载时的参数、是否备份、是否做磁盘检查

二、

Linux运行级别

Linux有7个运行级别,分别是

0:关机
1:单用户模式
2:没有NFS(网络文件系统)的多用户模式
3:完整的多用户模式(常用)
4:未使用,保留
5:图形化模式
6:重启

一般默认是选用3模式

使用init可以切换当前的运行级别

使用runlevel可以查看当前运行级别

第一个是上次运行级别,第二个就是当前运行级别

运行级别所对应的文件目录是下面这些目录

当你选择2级别执行的时候,就会将/etc/rc2.d下的文件全部都执行一遍

当然如果想在切换到某一个级别的时候运行某些指定程序,我们就可以在对应的目录下放入所需要执行的程序

0x02 Linux启动流程

当了解了这两个内容之后,再说Linux启动流程就比较清楚了

在网上给出的简单图解大致是这样的

首先在开机的时候,会加载主板上的BIOS,然后会启动硬件自检,如果发现有问题的话,就不继续启动了。

然后会把启动程序交给硬盘,也就是图中的MBR引导,此时会加载硬盘中的一部分存储空间的内容,这部分内容就是主引导程序。

然后就加载Linux的GRUB菜单

接下来就会去加载GRUB所对应程序的内核

等待内核加载完毕以后,会运行Linux的第一个进程——INIT进程,此时会读取/etc/inittab文件,这个文件中设定了Linux以哪个级别进行启动,设定完以后将会加载对应级别以下的所有程序,也就是咱们上面所说的运行级别的文件夹下的所有文件;

同时还会加载Linux的基础配置程序/etc/rc.d/rc.sysinit,里面包含了主机名、设备、网卡等等必须的东西

PS:部分系统没有rc.d的目录,此时执行的是rcS.d目录下的全部文件。

等所有的内容都加载完毕之后就进入了用户登陆界面

到这里,Linux就已经启动完成了

本文分享自微信公众号 - 无心的梦呓(wuxinmengyi)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux定时任务简述

    在Linux中,可以用来做定时任务的有好几个软件,我们只说基于cron服务的crontab

    无心的梦呓
  • 算法之排序(上)

    排序算法有很多种,甚至有很多都完全没有听过,我们最常见,也最经典的就是:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。

    无心的梦呓
  • 字节序转换详解

    在跨平台和网络编程中我们经常会提到网络字节序和主机字节序,如果没有正确对两者进行转换,从而导致两方产生了不同的解释,就会出现意想不到的bug。

    无心的梦呓
  • 【android开发】Android HAL模块实现

    1. HAL介绍 Android的HAL(Hardware Abstract Layer硬件抽象层)是为了保护一些硬件提供商的知识产权而提出的,是为了避开lin...

    程序员互动联盟
  • 在Linux中,一切都是文件

    每个人都知道一个文件是什么...这就是你使用的“照片”,“文档”或“音乐”。程序是由文件组成的,实际上,整个Linux操作系统只是一个文件集合...但是,现在是...

    企鹅号小编
  • New Windows 10 SDK - Toast Notification

    概述 Toast Notification 在 UWP App 中有很重要的作用,能够很大程度上增强 App 和用户之间的沟通,比如运营推广活动、版本更新、提醒...

    Shao Meng
  • ipv6 ospfv3 tunnel

    Current configuration : 1239 bytes ! version 12.4 service timestamps debug datet...

    py3study
  • textFile构建RDD的分区及compute计算策略

    1,textFile A),第一点,就是输入格式,key,value类型及并行度的意义。 def textFile( path: String, mi...

    Spark学习技巧
  • FileOutputStream&FileInputStream&异常的使用

    拾点阳光
  • GNS3模拟ATM的简单配置

    本实验实验的IOS是c7200-adventerprisek9-mz.124-22.T.bin

    py3study

扫码关注云+社区

领取腾讯云代金券