在许多服务器管理和特定应用场景中,将 CentOS 系统设置为直接启动到命令行控制台是一种常见且高效的做法,这不仅可以节省由图形界面(GUI)占用的系统资源(如内存和CPU),还能增强系统的安全性和稳定性,本文将详细介绍在不同版本的 CentOS 中设置控制台启动的方法。

适用于 CentOS 7/8/9 (使用 Systemd)
从 CentOS 7 开始,系统采用 systemd 作为初始化和服务管理器,它引入了“目标”的概念来替代传统的运行级别,设置控制台启动实际上就是将系统的默认启动目标从图形界面切换到多用户模式。
multi-user.target 对应传统的运行级别 3,是一个完全多用户、无网络图形界面的命令行环境。
graphical.target 对应传统的运行级别 5,是大家所熟知的图形化登录界面。
操作步骤非常简单,主要通过 systemctl 命令完成。
第一步:检查当前默认启动目标
在执行修改之前,可以先用以下命令查看系统当前的默认启动目标:
systemctl get-default
如果系统默认启动到图形界面,命令输出将会是 graphical.target。
第二步:设置默认启动目标为多用户模式
使用 set-default 子命令可以将默认目标永久更改为 multi-user.target,执行此命令需要 root 权限,因此我们使用 sudo。
sudo systemctl set-default multi-user.target
执行后,系统会创建一个符号链接,将 /etc/systemd/system/default.target 指向 /usr/lib/systemd/system/multi-user.target 文件,并提示“Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.”
第三步:重启系统验证

设置完成后,重启系统即可生效。
sudo reboot
重启后,系统将不再显示图形登录界面,而是直接进入字符登录提示符,等待用户输入用户名和密码。
适用于 CentOS 6 (使用 SysV init)
在较为传统的 CentOS 6 系统中,启动模式由 /etc/inittab 文件控制,修改这个文件即可实现控制台启动。
第一步:编辑 inittab 文件
使用 vi 或 nano 等文本编辑器打开 /etc/inittab 文件。
sudo vi /etc/inittab
第二步:修改默认运行级别
在文件中找到下面这一行:
id:5:initdefault:
这里的数字 5 代表默认进入图形化运行级别,我们需要将其修改为 3,即多用户、无网络的字符界面模式。
修改后如下:
id:3:initdefault:
第三步:保存并重启

保存文件并退出编辑器,然后重启系统使更改生效。
sudo reboot
运行级别与 Systemd 目标对照表
为了更好地理解不同启动模式的含义,可以参考下表:
| 运行级别 | Systemd 目标 | 描述 |
|---|---|---|
| 0 | poweroff.target | 关机 |
| 1 | rescue.target | 单用户模式,用于系统维护 |
| 3 | multi-user.target | 多用户模式,纯命令行界面 |
| 5 | graphical.target | 多用户模式,图形化界面 |
| 6 | reboot.target | 重启 |
如何恢复图形界面登录
如果需要重新启用图形界面登录,只需执行与上述操作相反的步骤即可。
- 对于 CentOS 7/8/9:
sudo systemctl set-default graphical.target sudo reboot
- 对于 CentOS 6:
再次编辑
/etc/inittab文件,将id:3:initdefault:改回id:5:initdefault:,然后重启。
临时启动图形桌面
即使系统设置为默认启动到控制台,在登录后如果临时需要使用图形界面,并且已经安装了桌面环境(如 GNOME),可以通过在当前用户下执行 startx 命令来手动启动。
startx
这会启动图形会话,退出后通常会返回到控制台,这种方法非常灵活,适用于只在必要时才使用图形界面的场景。
相关问答 (FAQs)
问1:我已经执行了 systemctl set-default multi-user.target 命令,但重启后依然是图形界面,这是为什么?
答:这种情况虽然少见,但通常有几个可能的原因,请确保您使用了 sudo 或以 root 用户身份执行了命令,没有足够的权限会导致设置失败,可以再次运行 systemctl get-default 命令确认默认目标是否已经成功设置为 multi-user.target,如果确认无误,但问题依旧,可能是某些自定义服务或启动脚本在控制台登录后自动调用了图形管理器,最直接的解决方法是再次执行设置命令,然后彻底重启一次系统。
问2:在控制台模式下,如果我忘记了 startx 这个命令,还有其他方法启动图形界面吗?
答:是的,除了 startx 命令,您还可以使用 systemctl 来临时切换到图形目标,在登录到控制台后,执行以下命令:
sudo systemctl isolate graphical.target
这个命令会立即启动所有与图形界面相关的服务,并将当前会话切换到图形登录界面或桌面环境,这与 startx 的区别在于,isolate 是一个系统级的操作,它会改变整个系统的运行状态,更接近于“切换运行级别”的概念,而 startx 仅为当前用户启动一个 X 会话,对于临时使用,两者都是可行的。