(一)管理命令

1. systemctl命令

自CentOS 7以来,systemctl成为了默认的服务管理工具。它不仅可以用来启动、停止或重启服务,还可以设置服务是否随系统启动自动加载。例如:

  • 启动SSH服务:systemctl start sshd

  • 设置SSH服务开机自启:systemctl enable sshd

对于较旧版本的系统(如CentOS 5.x/6.x),则需要使用service命令来完成类似功能。

示例:管理SSH服务


# 启动SSH服务

systemctl start sshd

# 停止SSH服务

systemctl stop sshd

# 重启SSH服务

systemctl restart sshd

# 设置SSH服务开机自启

systemctl enable sshd

# 禁用SSH服务开机自启

systemctl disable sshd

# 查看SSH服务的状态

systemctl status sshd

2. 其他常用命令

除了上述基本操作外,systemctl还提供了更多高级功能,比如查看所有正在运行的服务列表(systemctl list-units)、检查特定服务的状态(systemctl status <service_name>)等。此外,如果某些老旧服务不支持systemctl管理,则可以考虑将启动命令添加到/etc/rc.local文件中实现自动化启动。

示例:使用systemctl列出所有单元


# 列出所有已加载的服务单元

systemctl list-units --type=service

# 列出所有已启用的服务单元

systemctl list-unit-files --state=enabled

(二)Linux运行级别

Linux采用了一种称为“运行级别”的机制来定义系统处于何种工作状态。每个运行级别对应着一组预设的服务集。具体来说:

| 运行级别 | 描述 |

| --- | --- |

| 0 | 关机 |

| 1 | 单用户模式(救援模式),适用于恢复系统时使用 |

| 2-4 | 多用户模式,无图形界面 |

| 5 | 图形化多用户模式,默认桌面环境 |

| 6 | 重启 |

值得注意的是,CentOS 7引入了新的target目标来替代传统的运行级别命名方式。例如,multi-user.target大致相当于传统意义上的运行级别3,而graphical.target则对应于运行级别5。

示例:切换运行级别


# 查看当前系统的默认运行级别

systemctl get-default

# 设置系统默认运行级别为图形化模式

systemctl set-default graphical.target

# 设置系统默认运行级别为多用户模式(非图形)

systemctl set-default multi-user.target

# 临时切换到单用户模式(不需要重启)

sudo init 1

(三)Linux启动流程

Linux的启动过程是一个复杂而又有序的过程,主要包括以下几个阶段:

  1. BIOS/UEFI初始化:硬件自检并寻找可引导介质。

  2. 加载引导加载程序(Bootloader):如GRUB,负责加载内核映像和初始RAM磁盘(initramfs)。

  3. 内核初始化:建立内存管理、设备驱动等功能。

  4. init进程启动:这是整个系统中第一个用户空间进程,它会读取配置文件并按照指定顺序启动其他服务。

  5. 达到最终运行级别:根据设定的目标(target),完成剩余的服务启动,直至准备好接受用户输入。

示例:查看启动日志


# 查看最近一次启动的日志信息

journalctl -b

# 查看指定时间范围内的启动日志

journalctl --since "2024-12-01 00:00:00" --until "2024-12-01 23:59:59"

(四)Linux救援模式(单用户模式)

当遇到无法正常进入系统的紧急情况时,可以通过进入救援模式来进行修复。以重置root密码为例,步骤如下:

  1. 在GRUB菜单中选择当前使用的内核版本,并按下'e'键编辑启动参数。

  2. 找到包含linux16关键字的那一行,将其后的ro改为rw,并在行尾追加init=/bin/bash

  3. 按下Ctrl+X开始引导,此时将直接进入bash shell。

  4. 使用文本编辑器修改/etc/shadow文件中的root条目,移除加密后的密码部分。

  5. 保存更改后重启系统,即可用空密码登录root账户。

示例:重置root密码


# 重启机器并进入GRUB菜单

reboot

# 在GRUB菜单中选择内核并按e编辑

# 修改启动选项,添加 rw init=/bin/bash

# 按Ctrl+X继续启动,进入bash shell

# 使用vi/vim编辑/etc/shadow文件,找到root行并移除密码

vi /etc/shadow

# 移除root用户的密码部分,仅保留用户名和冒号,例如:

# root::18998:0:99999:7:::

# 保存并退出编辑器,然后重启系统

exec /sbin/init