(一)管理命令
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的启动过程是一个复杂而又有序的过程,主要包括以下几个阶段:
-
BIOS/UEFI初始化:硬件自检并寻找可引导介质。
-
加载引导加载程序(Bootloader):如GRUB,负责加载内核映像和初始RAM磁盘(initramfs)。
-
内核初始化:建立内存管理、设备驱动等功能。
-
init进程启动:这是整个系统中第一个用户空间进程,它会读取配置文件并按照指定顺序启动其他服务。
-
达到最终运行级别:根据设定的目标(target),完成剩余的服务启动,直至准备好接受用户输入。
示例:查看启动日志
# 查看最近一次启动的日志信息
journalctl -b
# 查看指定时间范围内的启动日志
journalctl --since "2024-12-01 00:00:00" --until "2024-12-01 23:59:59"
(四)Linux救援模式(单用户模式)
当遇到无法正常进入系统的紧急情况时,可以通过进入救援模式来进行修复。以重置root密码为例,步骤如下:
-
在GRUB菜单中选择当前使用的内核版本,并按下'e'键编辑启动参数。
-
找到包含
linux16
关键字的那一行,将其后的ro
改为rw
,并在行尾追加init=/bin/bash
。 -
按下Ctrl+X开始引导,此时将直接进入bash shell。
-
使用文本编辑器修改
/etc/shadow
文件中的root条目,移除加密后的密码部分。 -
保存更改后重启系统,即可用空密码登录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