Wie boote ich Linux in den Befehlszeilenmodus anstatt in die GUI?

26

Ich verwende 32-Bit Red Hat Linux in meiner VM. Ich möchte es im Befehlszeilenmodus starten, nicht im GUI-Modus. Ich weiß, dass ich von dort mit dem startxBefehl in den GUI-Modus wechseln kann . Wie wechsle ich zurück in den Befehlszeilenmodus?

Mach dir keine Sorgen, Kind
quelle

Antworten:

23

Update: Die Antwort unten ist jetzt veraltet

In vielen Distributionen ist die Standardeinstellung systemd und nicht sysvinit. Die folgende Antwort wurde unter Berücksichtigung von sysvinit geschrieben. Die aktuellere Antwort (und die, die Sie verwenden sollten, wenn Sie systemd als Init-System haben) ist die Antwort von golem .

sysvinit Antwort (auf den meisten aktuellen Distributionen veraltet):

Sie möchten Runlevel 3 zu Ihrem Standard-Runlevel machen. Wechseln Sie von einem Terminal zu root und gehen Sie wie folgt vor:

[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

Alles, was nach (und einschließlich) der Sekunde #in jeder Zeile steht, ist ein Kommentar für Sie. Sie müssen ihn nicht in das Terminal eingeben.

Weitere Informationen finden Sie auf der Wikipedia-Seite zu Runlevels.

Erklärung des sedBefehls

  • Der sedBefehl ist ein Stream-Editor (daher der Name), mit dem Sie Datenströme normalerweise durch reguläre Ausdrücke bearbeiten können .
  • Hier möchten wir seddas Muster id:5:initdefault:durch das Muster id:3:initdefault:in der Datei /etc/inittabersetzen. Dies ist die Datei, die Ihre Runlevels steuert. Die allgemeine Syntax für sedSuchen und Ersetzen lautet s/pattern/replacement_pattern/.
  • Die -iOption teilt sedmit, dass die Änderungen übernommen werden sollen. Wäre dies nicht vorhanden, sedhätte die resultierende Datei (nach Ersetzung) auf das Terminal ausgegeben (allgemeiner auf Standardausgabe).

Aktualisieren

Um zum Textmodus zurückzukehren, drücken Sie einfach CTRL+ ALT+ F1. Dadurch wird Ihre grafische Sitzung nicht gestoppt, sondern Sie kehren einfach zu dem Terminal zurück, an dem Sie angemeldet sind. Mit CTRL+ ALT+ können Sie wieder in die grafische Sitzung wechseln F7.

Joseph R.
quelle
Danke für die Antwort. startxWie kann ich zur Befehlszeile zurückkehren , wenn ich zur grafischen Benutzeroberfläche wechsle?
Mach dir keine Sorgen Kind
1
@ 0xF1 Es wurde eine Erklärung für den sedBefehl hinzugefügt .
Joseph R.
1
Ich würde generell davon abraten, sedKonfigurationsdateien zu verwenden, es sei denn, Sie wissen genau, was Sie tun. Die betreffende Zeile kann auch ein Kommentar sein und wird dennoch geändert. Daher sollte der reguläre Ausdruck präziser sein, zumindest muss sich die Zeichenfolge id:...am Zeilenanfang befinden. Da die Manpage nichts darüber aussagt, wie Leerzeichen behandelt werden, möchten Sie wahrscheinlich verwenden s/^ *id:5:initdefault:(was Tabübrigens keine Zeichen enthält).
Peterph
1
Diese Antwort ist zumindest auf meinem aktuellen Betriebssystem nicht mehr gültig. Schauen Sie sich die Antwort von @golem unten an. Das hat bei mir geklappt. Ich benutze Fedora 27.
Lance
1
@Lance Sehr guter Punkt. Danke für die Bemerkung. Ich habe meine Antwort aktualisiert, um dies widerzuspiegeln.
Joseph R.
25

Update für RedHat / CentOS 7, das von sysvinit auf systemd umgestellt wurde.

So wechseln Sie von der GUI zur CLI: systemctl isolate multi-user.target

So wechseln Sie von CLI zu GUI: systemctl isolate graphical.target

So legen Sie die CLI als Standard- Runlevel fest ( Ziel in systemd Terminologie) systemctl set-default multi-user.target. Analog für GUI:systemctl set-default graphical.target

* CLI = Befehlszeilenschnittstelle = Befehlszeilenmodus

Golem
quelle
Siehe auch: Verwandte Dokumentation .
Mark Edington
2
Vielen Dank. Jedes Forum gibt immer noch das alte Wissen über / etc / inittab aus, obwohl es veraltet ist.
Shashank Vyas
11

Wechseln Sie zuerst zu root.

su -
Password:

Geben Sie das root-Passwort ein.

Verwenden Sie Ihren bevorzugten Editor, um diese Zeile zu ändern in /etc/inittab:

id:5:initdefault:

Ändern Sie die 5 in 3. Wenn Sie den Computer (neu) starten, gelangen Sie zur Befehlszeile und nicht zur GUI.

Timothy Martin
quelle
Bitte geben Sie an, wie und in welcher Datei das OP als root vorgehen soll. Diese Antwort ist in der jetzigen Form nicht geeignet, jemandem zu helfen, der neu in Linux ist.
Joseph R.
1
Vielen Dank, dass Sie auf mein Versehen hingewiesen haben. Ich habe die Antwort entsprechend bearbeitet.
Timothy Martin
Bedeutet dies, dass die GUI nicht ausgeführt wird, oder ist sie verborgen?
Aaron Franke
@AaronFranke Für Redhat-Systeme in Runlevel 3 ist die GUI nicht aktiviert (oder bei einem System, das ohne Neustart von Runlevel 5 auf 3 umgestellt wurde, deaktiviert).
Timothy Martin
3

Abgesehen von der Änderung /etc/inittabkönnen Sie dem Kernel auch über die Befehlszeile mitteilen, an welchen Ziel-Runlevel er nach dem initStart übergeben werden soll. Dies geschieht durch einfaches Anhängen des gewünschten Runlevels an die Befehlszeile (es muss das letzte Argument sein, das ich glaube).

Sie können dies entweder einmalig beim Booten tun, vorausgesetzt Ihr Bootloader erlaubt Ihnen, die Kernel-Befehlszeile zu ändern, oder Sie können den Eintrag in der Bootloader-Konfiguration duplizieren und beim Booten den richtigen auswählen (nützlich, wenn Sie in verschiedene booten Runlevel oft).

Bei Systemen, bei denen systemdder Prozess verwendet wird, ist er ähnlich, bedeutet jedoch mehr Eingaben, da die an die Kernel-Befehlszeile angehängte magische Zeichenfolge die Form von hat systemd.unit=desired.target.

Was startxkann es auch zusätzliche Sitzungen starten , indem er eine nicht verwendete X - Display - Nummer geben ( die Nummerierung beginnt bei 0): startx -- :11, Fest es auf den ersten nicht verwendeten VT (oft VT8, da die ersten 6 sind in der Regel Linux: wird X - Server auf dem Display beginnen Konsolen und 7 werden von der ersten laufenden X-Sitzung verwendet. Beachten Sie, dass der X-Server normalerweise Root-Rechte benötigt, so dass Sie dies entweder als root(was keine gute Idee ist) oder als setuid root für die Binärdatei tun müssen (die Notwendigkeit hierfür wird normalerweise mithilfe eines Display-Managers beseitigt).

peterph
quelle
+1 Gute Antwort. Allerdings nicht sehr neulingfreundlich.
Joseph R.
Ja, ein Wechsel inittabist viel sinnvoller, da man das System in der Regel immer auf den gleichen Stand bringen möchte.
Peterph
2

Auf einer Seite beachten, wenn Sie bereits in grafischen Modus gestartet haben und möchten in dem Textmodus wechseln, konnte man nur drücken Ctrl+ Alt+ F1und wieder zurück zum grafischen Modus von Ctrl+ Alt+ F7.

Linux verfügt standardmäßig über 6 Textterminals und 1 Grafikterminal. Sie können zwischen diesen Anschlüssen wechseln, indem Sie Ctrl+ Alt+ drücken Fn. Durch n1-7 ersetzen . F7Sie würden nur dann in den grafischen Modus wechseln, wenn Sie Run Level 5 starten oder X mit dem startxBefehl gestartet haben . Andernfalls wird nur ein leerer Bildschirm angezeigt F7.

Punit Arya
quelle
zeige diese Arbeit in RHEL 7?
Javapowered
1

Auch ein ziemlich alter Thread zu sein, kann nützlich sein. Auf dem System systemd, auf dem / etc / inittab verwendet wird, wird es nicht mehr verwendet. Die Methode ist ganz einfach:

Terminal-Modus

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

Grafikmodus

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

Nach ersetzt den Standard - Runlevel id:3:initdefault:in /etc/inittabIhrem bevorzugten Texteditor (wie zuvor gesagt), ist es sehr wichtig , zu überprüfen , ob es gibt einige plymouth (Splash - Screen) auf Ihrem System installiert werden. In diesem Fall müssen Sie die Installation entfernen oder einfach das Begrüßungsschlüsselwort mit Ihrem bevorzugten Texteditor (vim, pico oder andere) aus /boot/grub/grub.cfg entfernen. So entfernen Sie Plymouth:

sudo apt-get remove --purge plymouth

Bearbeite deine grub.cfg:

sudo vim /boot/grub/grub.cfg

Aktualisieren Sie abschließend die Grub-Konfiguration:

sudo update-initramfs -u

Beim nächsten Start haben Sie nur den Anmeldebildschirm im Textmodus. Das ist es.

Viel Spaß mit der Linux-Box!

S4nD3r
quelle
-1

Für die Installation von Oracle-Linux 7 sind standardmäßig nur minimale Installationsoptionen erforderlich. Sie müssen es zum Zeitpunkt der Installation auf Installation mit GUI-Modus ändern. Dies hat mein Problem behoben, da der grafische Benutzermodus nicht verwendet werden kann.

Guhan
quelle
Es scheint, dass Sie die Anfrage des OP rückwärts haben. Das OP scheint Schwierigkeiten zu haben, an die CLI und nicht an die GUI zu gelangen.
HalosGhost
-1

Ich habe versucht, systemctl, update-rc.d und sogar die GRUB-Konfiguration zu bearbeiten, aber nichts hat funktioniert. Dann habe ich den Standard-Display-Manager in / etc / X11 / default-display-manager auskommentiert, neu gestartet und endlich: das Terminal !!!! So einfach ist das!

Hehe
quelle
-1

Verwenden

systemctl set-default multi-user.target

und starten Sie die VM neu. Die VM wird in den CLI-Modus versetzt.

Santhosh Kumar
quelle