一、启动过程
 Linux的启动过程大体有以下6个步骤:
  1️⃣内核引导
  2️⃣运行init
  3️⃣根据RunLevel开启守护线程
  4️⃣系统初始化
  5️⃣建立终端
  6️⃣用户登录系统

 1、内核引导

  接通电源后进行BIOS自检,按照BIOS中设置的启动设备(通常是硬盘)来启动,操作系统接管硬件以后,首先读入 /boot 目录下的内核文件

 2、运行init

  init进程可以看做是系统的入口,通过它来唤醒其他的服务。init 进程是系统所有进程的起点,你可以把它比拟成系统中所有进程的祖宗,没有这个进程,系统中任何进程都无法启动。init 程序首先会读取配置文件 /etc/inittab,该配置文件的内容只有一句话:定义了初始化时系统的运行级别

systemd 启动终端_systemd 启动终端


 3、根据运行级别开启守护进程

  许多程序需要开机启动。它们在Windows中叫做"服务"(service),在Linux中叫做"守护进程"(daemon)。init进程的一大任务,就是去运行这些开机启动的程序。但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。

  Linux中有7个运行级别(runlevel):即 /etc/inittab 中写的那7个

   运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

   运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录,我们大多数情况下都是需要远程登录的,因此也不会设置为1

   运行级别2:多用户状态(没有NFS)

   运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式,我们通常会设置为该级别

   运行级别4:系统未使用,保留

   运行级别5:X11控制台,登录后进入图形GUI模式

   运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

 4、系统初始化

  在init的配置文件中有这么一行:

si::sysinit:/etc/rc.d/rc.sysinit

  表示调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本,它主要完成的工作有:激活交换分区、检查磁盘、加载硬件模块以及其它一些需要优先执行的任务

 5、建立终端

  rc执行完毕后,返回init。这时系统基本环境已经设置好了,各种守护进程也已经启动了。init接下来会打开6个终端,以便用户登录系统。在inittab中的以下6行就是定义的6个终端

systemd 启动终端_systemd 启动终端_02


 6、用户登录系统

  一般来说,用户的登录方式有三种:

   1)命令行登录

   2)ssh远程登录:通过SecureCRT等远程登录

   3)图形界面登录 启动过程流程图:

systemd 启动终端_systemd 启动终端_03


二、关机

 Linux大多用作服务器,很少需要关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机 。

 正确的关机流程为:sync > shutdown > reboot > halt

  1️⃣sync:将数据由内存同步到硬盘中

  2️⃣shutdown:关机

shutdown –h 10 #计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中
shutdown –h now #立马关机
shutdown –r now #系统立马重启

  3️⃣reboot:重启,等同于 shutdown –r now
  4️⃣halt:关闭系统,等同于shutdown –h now 和 poweroff
 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。图形化界面关机的时候不必再执行sync命令:直接点击系统->关机即可

三、密码重置

 忘记root密码怎么办?重新安装系统吗?当然不用!进入单用户模式更改一下root的密码即可。

 ①重启Linux,见到下图,在3秒钟之内按下回车

systemd 启动终端_systemd 启动终端_04


 ②三秒之内按下回车后,出现如下界面

systemd 启动终端_图形化界面_05


 ③按下e键就可以进入下图

systemd 启动终端_运行级别_06


 ④移动到下一行,再次按e键

systemd 启动终端_运行级别_07


 ⑤移动到下一行,进行修改:切换为单用户模式

systemd 启动终端_运行级别_08


systemd 启动终端_运行级别_09


systemd 启动终端_systemd 启动终端_10


  修改完成后回车键,然后按b键进行重新启动进入系统

 ⑥移动到下一行,进行修改

systemd 启动终端_运行级别_11


  输入passwd进行密码重置

systemd 启动终端_重启_12


  修改完密码,reboot一下即可四、Linux的终端

 Linux下有6个终端(终端和运行级别是风马牛不相及的两个概念)和一个图形化界面,可使用快捷键ctrl+alt+F1、ctrl+alt+F2、ctrl+alt+F3、ctrl+alt+F4、ctrl+alt+F5、ctrl+alt+F6、ctrl+alt+F7(图形化界面)这7组快捷键分别调出对应一种终端

注意:在切换到另一个终端之前最好输入exit命令退出当前终端,否则多个终端同时运行,会消耗资源

 我们可以使用 who 命令查看连接到服务器的终端,在需要踢人(比如该客户端死机或者中毒时)的时候,可以先用who来查看这个人是否连接在了服务端

systemd 启动终端_运行级别_13


 Linux系统设计多个终端的原因:如果只有一个终端,该终端死机时就无法通过其他终端来挽救;而有多个终端时在一个终端死机或者有其他问题不能正常退出时,可以通过另外一个终端将其终止,这样既可以保证服务器的正常运行,也能解决终端的问题

 当一个终端出现问题的时候的解决方式(踢人):假如图形化界面中的gedit a.txt命令执行时卡死了

  ①使用命令:ps -ef|grep gedit查看所有的执行gedit命令的终端

systemd 启动终端_systemd 启动终端_14


  ②执行kill命令将不能正常执行的命令杀死

systemd 启动终端_运行级别_15


  ③再回到图形化界面就会看到命令已被杀死

systemd 启动终端_图形化界面_16


 Linux中有那么多终端,为什么一开机就进入图形化界面呢?(有时不是一开机就进入图形化界面,跟配置文件有关)这跟/etc/inittab的配置有关,通过查看这个文件可以看出默认的初始化等级是5,即图形化界面

systemd 启动终端_重启_17