如何将Linux引导到命令行模式而不是GUI?


26

我在我的VM中使用32位Red Hat Linux。我想将其引导到命令行模式,而不是GUI模式。我知道从那里我可以使用startx命令切换到GUI模式。如何切换回命令行模式?

Answers:


23

更新:下面的答案现在已过时

对于许多发行版而言,默认值为systemd而不是sysvinit。下面的答案是在考虑sysvinit的情况下编写的。最新的答案(如果已将systemd用作init系统,则应使用该答案)是golem的答案

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

#每行第二行之后(包括第二行)的内容对您来说都是注释,您无需在终端中键入它。

有关更多信息,请参见Wikipedia页面

sed命令说明

  • sed命令是一个流编辑器(因此而得名),您通常使用它通过正则表达式使用它来操纵数据流。
  • 在这里,我们要告诉sed您将模式替换为file中id:5:initdefault:的模式id:3:initdefault:,该文件/etc/inittab是控制您的运行路径的文件。sed搜索和替换的一般语法为s/pattern/replacement_pattern/
  • -i选项告诉sed您应用修改。如果不存在,sed则将结果文件(替换后)输出到终端(通常输出到标准输出)。

更新资料

要切换回文本模式,只需按CTRL+ ALT+即可F1。这不会停止您的图形会话,只会将您切换回您登录的终端。您可以使用CTRL+ ALT+ 切换回图形会话F7


感谢您的回答。另外,当我使用GUI切换到GUI时,startx如何切换回命令行?
你不担心孩子

1
@ 0xF1添加了对该sed命令的说明。
Joseph R.

1
我通常建议不要sed在配置文件上使用,除非您确切地知道自己在做什么。有问题的行也可能是注释,但仍会更改。因此,正则表达式应该更精确,至少要求字符串id:...在行的开头。由于手册页没有说明如何处理空格,因此您可能要使用s/^ *id:5:initdefault:Tab顺便说一下,其中不包括字符)。
彼得

1
至少在我当前的操作系统上,此答案不再有效。看看下面的@golem答案。那对我有用。我使用的是fedora27。–
Lance

1
@Lance很好。感谢您的通知。我已经更新了我的答案以反映这一点。
约瑟夫R.18年

25

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 =命令行界面=命令行模式


另请参阅:相关文档
Mark Edington

2
谢谢。尽管每个论坛都已过时,但仍在倾销有关/ etc / inittab的旧知识。
Shashank Vyas

11

首先将用户切换为root。

su -
Password:

输入root密码。

使用您喜欢的编辑器在以下位置修改此行/etc/inittab

id:5:initdefault:

将5更改为3。(重新)引导计算机时,它将带您进入命令行而不是GUI。


请提供有关OP应如何以root用户身份以及到哪个文件的说明。从目前的角度来看,这个答案并不适合帮助Linux新手。
Joseph R.

1
感谢您指出我的疏忽。我已经相应地编辑了答案。
蒂莫西·马丁

这是否意味着GUI没有运行,还是被隐藏了?
亚伦·弗兰克

@AaronFranke对于运行级别3的Redhat系统,未启用GUI(或在系统从运行级别5切换到3而没有重新引导的情况下被关闭)。
蒂莫西·马丁

3

除了change之外/etc/inittab,您还可以在内核的命令行上告诉内核init一旦启动目标运行级别应将其传递给它。只需将所需的运行级别附加到命令行即可完成此操作(我相信它必须是最后一个参数)。

您可以在引导过程中一次性完成此操作,前提是您的引导加载程序允许您更改内核命令行,或者您可以复制引导加载程序配置中的条目并在引导时选择正确的条目(在您引导至各种引导程序时很有用)运行级别)。

对于使用systemd该过程的系统而言,该过程类似,但是由于键入附加到内核命令行的魔术字符串为形式,因此意味着键入更多systemd.unit=desired.target

至于startx,它还可以通过给它一个未使用的X显示号(编号从0开始)来启动其他会话:startx -- :1将在显示:1上启动X服务器,将其定位在第一个未使用的VT(通常是VT8,因为前6个通常是Linux)控制台,第一个运行的X会话使用7)。请注意,X服务器通常需要root特权,因此您要么必须这样做root(这不是一个好主意),要么二进制必须是setuid root(通常通过使用显示管理器来消除对此的需要)。


+1好答案。但是,不是很新手。
约瑟夫·R.

是的,更改inittab更有意义,因为人们通常希望一直将系统恢复为相同状态。
彼得

2

附带说明一下,如果您已经启动到图形模式并想切换到文本模式,则只需按Ctrl+ Alt+ F1并通过Ctrl+ Alt+ 重新回到图形模式F7

Linux默认具有6个文本终端和1个图形终端。您可以通过按Ctrl+ Alt+ 在这些端子之间切换Fn。替换n为1-7。F7仅当它引导进入运行级别5或使用startx命令启动X时,才会带您进入图形模式;否则,它只会在上显示一个空白屏幕F7


在RHEL 7中显示此作品?
javapower14年

1

即使是一个很老的线程,也可能有用。在使用的系统上systemd/ etc / inittab不再使用。方法很简单:

终端模式

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

图形模式

ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target

0

id:3:initdefault:/etc/inittab使用您喜欢的文本编辑器替换默认运行级别(如前所述)之后,检查系统中是否安装了一些普利茅斯(启动屏幕)非常重要。在这种情况下,将需要删除其安装,或者仅使用首选的文本编辑器(vim,pico或其他)从/boot/grub/grub.cfg中删除splash关键字。去除普利茅斯:

sudo apt-get remove --purge plymouth

编辑您的grub.cfg:

sudo vim /boot/grub/grub.cfg

最后,升级grub配置:

sudo update-initramfs -u

在下次启动时,您将只有文本模式登录屏幕。而已。

享受Linux盒子!


-1

缺省情况下,oracle-linux 7安装采用的安装选项最少。您必须在安装时将其更改为使用GUI模式进行安装。这解决了我无法使用图形用户模式的问题。


看来您有OP的要求倒退了。OP似乎很难进入CLI,而不是GUI。
HalosGhost 2015年

-1

我尝试了systemctl,update-rc.d甚至编辑GRUB配置,但没有任何效果。然后我注释掉了/ etc / X11 / default-display-manager中的默认显示管理器,重新启动,最后:终端!!!就这么简单!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.