我在虚拟机中使用 32 位 Red Hat Linux。我想将其启动到命令行模式,而不是 GUI 模式。我知道从那里我可以使用startx
命令切换到 GUI 模式。如何切换回命令行模式?
答案1
RedHat/CentOS 7 的更新已从 sysvinit 切换到 systemd。
要从 GUI 切换到 CLI:systemctl isolate multi-user.target
要从 CLI 切换到 GUI:systemctl isolate graphical.target
将 CLI 设置为默认值运行级别(目标在 systemd 术语中):systemctl set-default multi-user.target
.类似地对于 GUI:systemctl set-default graphical.target
*CLI = 命令行界面 = 命令行模式
答案2
更新:下面的答案现已过时
对于现在的许多发行版来说,默认值是 systemd 而不是 sysvinit。下面的答案是根据 sysvinit 编写的。最新的答案(如果你有 systemd 作为你的初始化系统,你应该使用这个答案)是傀儡的回答。
sysvinit 答案(在大多数当前发行版上已过时):
您希望将运行级别 3 设置为默认运行级别。从终端切换到 root 并执行以下操作:
[user@host]$ su
Password:
[root@host]# cp /etc/inittab /etc/inittab.bak #Make a backup copy of /etc/inittab
[root@host]# sed -i 's/id:5:initdefault:/id:3:initdefault:/' /etc/inittab #Make runlevel 3 your default runlevel
每行第二个之后(包括)的任何内容#
都是您的注释,您不需要将其输入终端。
看维基百科页面有关运行级别的更多信息。
sed
命令解释
- 该
sed
命令是一个流编辑器(因此得名),您使用它来操作数据流,通常通过常用表达。 - 在这里,我们告诉您用file 中的
sed
模式替换该id:5:initdefault:
模式,该文件是控制运行级别的文件。搜索和替换的一般语法是。id:3:initdefault:
/etc/inittab
sed
s/pattern/replacement_pattern/
- 该
-i
选项指示sed
将修改应用到位。如果不存在,sed
则会将结果文件(替换后)输出到终端(更一般地说是标准输出)。
更新
要切换回文本模式,只需按CTRL+ ALT+即可F1。这不会停止您的图形会话,它只会将您切换回您登录的终端。您可以使用CTRL+ ALT+切换回图形会话F7。
答案3
首先将用户切换到root。
su -
Password:
输入根密码。
使用您最喜欢的编辑器修改以下行/etc/inittab
:
id:5:initdefault:
将 5 更改为 3。当您(重新)启动计算机时,它将带您进入命令行而不是 GUI。
答案4
除了更改 之外/etc/inittab
,您还可以在命令行上告诉内核init
启动后应将其传递给哪个目标运行级别。这是通过简单地将所需的运行级别附加到命令行来完成的(我认为它必须是最后一个参数)。
您可以在引导期间一次性执行此操作,前提是您的引导加载程序允许您更改内核命令行,或者您可以复制引导加载程序配置中的条目并在引导时选择正确的条目(当您引导到各种不同的环境时很有用)经常运行级别)。
对于使用systemd
过程类似的系统,但意味着更多的输入,因为附加到内核命令行的魔术字符串采用systemd.unit=desired.target
.
至于startx
,它还可以通过给它一个未使用的 X 显示编号(编号从 0 开始)来启动其他会话:startx -- :1
将在显示 :1 上启动 X 服务器,将其定位在第一个未使用的 VT(通常是 VT8,因为前 6 个通常是 Linux)控制台和 7 由第一个运行的 X 会话使用)。请注意,X 服务器通常需要 root 权限,因此您要么必须执行此操作root
(这不是一个好主意),要么必须将二进制文件设置为 setuid root(通常可以通过使用显示管理器来消除对此的需要)。