Come avviare Linux in modalità riga di comando anziché GUI?


26

Sto usando Red Hat Linux a 32 bit nella mia VM. Voglio avviarlo in modalità riga di comando, non in modalità GUI. So che da lì posso passare alla modalità GUI usando il startxcomando. Come posso tornare alla modalità riga di comando?

Risposte:


23

Aggiornamento: la risposta di seguito è ora obsoleta

Per molte distro ora, l'impostazione predefinita è systemd anziché sysvinit. La risposta di seguito è stata scritta pensando a sysvinit. La risposta più aggiornata (e quella che dovresti usare se hai systemd come sistema di init) è la risposta di golem .

Risposta sysvinit (obsoleta sulla maggior parte delle distribuzioni attuali):

Vuoi rendere runlevel 3 il tuo runlevel predefinito. Da un terminale, passa a root e procedi come segue:

[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

Qualunque cosa dopo (e includendo) il secondo #su ogni riga è un commento per te, non è necessario digitarlo nel terminale.

Vedi la pagina di Wikipedia sui runlevel per maggiori informazioni.

Spiegazione del sedcomando

  • Il sedcomando è un editor di stream (da cui il nome), lo usi per manipolare flussi di dati, di solito attraverso espressioni regolari .
  • Qui, stiamo dicendo seddi sostituire il modello id:5:initdefault:con il modello id:3:initdefault:nel file /etc/inittab, che è il file che controlla i tuoi runlevle. La sintassi generale per una sedricerca e sostituzione è s/pattern/replacement_pattern/.
  • L' -iopzione dice seddi applicare le modifiche in atto. Se questo non fosse presente, sedavrebbe inviato il file risultante (dopo la sostituzione) al terminale (più in generale allo standard output).

Aggiornare

Per tornare alla modalità testo, premi semplicemente CTRL+ ALT+ F1. Questo non interromperà la tua sessione grafica, ti riporterà semplicemente al terminale a cui hai effettuato l'accesso. È possibile tornare alla sessione grafica con CTRL+ ALT+ F7.


Grazie per la risposta. Inoltre, quando passo alla GUI usando startxcome posso tornare alla riga di comando?
Non preoccuparti, bambino,

1
@ 0xF1 Aggiunta una spiegazione per il sedcomando.
Joseph R.,

1
In generale, sconsiglio di utilizzare i sedfile di configurazione, a meno che tu non sappia esattamente cosa stai facendo. La riga in questione potrebbe anche essere un commento e tuttavia sarebbe ancora cambiata. Quindi l'espressione regolare dovrebbe essere più precisa, almeno richiedere che la stringa id:...sia all'inizio della riga. Dal momento che la pagina man non dice nulla su come vengono trattati gli spazi bianchi, probabilmente vorrai usare s/^ *id:5:initdefault:(che non include il Tabpersonaggio, comunque).
peterph,

1
Questa risposta non è più valida, almeno sul mio attuale sistema operativo. Dai un'occhiata alla risposta di @ golem di seguito. Questo ha funzionato per me. Sto usando Fedora 27.
Lance,

1
@Lance Ottimo punto. Grazie per l'avviso. Ho aggiornato la mia risposta per riflettere ciò.
Joseph R.

25

Aggiornamento per RedHat / CentOS 7 che è passato da sysvinit a systemd.

Per passare dalla GUI alla CLI: systemctl isolate multi-user.target

Per passare dalla CLI alla GUI: systemctl isolate graphical.target

Per impostare la CLI come default runlevel ( bersaglio nella terminologia systemd): systemctl set-default multi-user.target. Analogamente per la GUI:systemctl set-default graphical.target

* CLI = Command Line Interface = modalità riga di comando



2
Grazie .. Ogni forum sta ancora scaricando le vecchie conoscenze su / etc / inittab anche se è obsoleto.
Shashank Vyas il

11

Innanzitutto, passa l'utente al root.

su -
Password:

Inserisci la password di root.

Usa il tuo editor preferito per modificare questa riga in /etc/inittab:

id:5:initdefault:

Modificare il 5 in 3. Quando si riavvia il computer, si accederà alla riga di comando anziché alla GUI.


Si prega di includere istruzioni su come l'OP dovrebbe fare questo come root e su quale file. Questa risposta, così com'è, non è adatta ad aiutare qualcuno che è nuovo su Linux.
Joseph R.,

1
Grazie per aver sottolineato la mia svista. Ho modificato la risposta di conseguenza.
Timothy Martin,

Questo significa che la GUI non è in esecuzione o è nascosta?
Aaron Franke,

@AaronFranke Per i sistemi Redhat nel livello di esecuzione 3 la GUI non è abilitata (o disattivata nel caso di un sistema che è stato passato dal livello di esecuzione 5 a 3 senza riavvio).
Timothy Martin,

3

Oltre a cambiare /etc/inittab, puoi anche dire al kernel sulla sua riga di comando a quale runlevel di destinazione dovrebbe essere passato inituna volta avviato. Questo viene fatto semplicemente aggiungendo il runlevel desiderato alla riga di comando (deve essere l'ultimo argomento che credo).

Puoi farlo sia come una cosa una tantum durante l'avvio, a condizione che il tuo bootloader ti permetta di cambiare la riga di comando del kernel, o puoi duplicare la voce nella configurazione del bootloader e scegliere quella giusta all'avvio (utile quando si avvia in vari runlevel spesso).

Per i sistemi che usano systemdil processo è simile, ma significa più digitazioni poiché la stringa magica aggiunta alla riga di comando del kernel ha la forma di systemd.unit=desired.target.

Per quanto riguarda startx, può anche avviare sessioni aggiuntive assegnandogli un numero di display X inutilizzato (la numerazione inizia da 0): startx -- :1avvierà il server X sul display: 1, individuandolo nel primo VT inutilizzato (spesso VT8, poiché i primi 6 sono di solito Linux console e 7 viene utilizzato dalla prima sessione X in esecuzione). Nota che il server X di solito ha bisogno dei privilegi di root, quindi devi farlo come root(che non è una buona idea), oppure il binario deve essere setuid root (la necessità di questo è normalmente rimossa usando un display manager).


+1 Ottima risposta. Non molto amichevole per i principianti, però.
Joseph R.,

Sì, il cambiamento inittabha molto più senso, dal momento che di solito si vuole portare il sistema sempre allo stesso stato.
peterph,

2

Nota a margine, se hai già avviato la modalità grafica e desideri passare alla modalità testo, puoi semplicemente premere Ctrl+ Alt+ F1e tornare di nuovo alla modalità grafica di Ctrl+ Alt+ F7.

Linux ha di default 6 terminali di testo e 1 terminale grafico. È possibile passare da un terminale all'altro premendo Ctrl+ Alt+ Fn. Sostituisci ncon 1-7. F7ti porterebbe in modalità grafica solo se si è avviato nel livello di esecuzione 5 o se hai avviato X usando il startxcomando; in caso contrario, mostrerà solo uno schermo vuoto F7.


mostra questo lavoro in RHEL 7?
javapowered l'

1

Anche se è un thread piuttosto vecchio, può essere utile. Quando si utilizza il sistema systemd, / etc / inittab non è più in uso. Il metodo è abbastanza semplice:

Modalità terminale

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

Modalità grafica

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

0

Dopo sostituire il runlevel di default per id:3:initdefault:nel /etc/inittabusando il vostro editor di testo preferito (come detto in precedenza), è controllo molto importante se c'è qualche Plymouth (splash screen) installato nel sistema. In questo caso, sarà necessario rimuovere l'installazione o semplicemente rimuovere la parola chiave splash da te /boot/grub/grub.cfg usando il tuo editor di testo preferito (vim, pico o altri). Per rimuovere plymouth:

sudo apt-get remove --purge plymouth

Modifica il tuo grub.cfg:

sudo vim /boot/grub/grub.cfg

Infine, aggiorna la configurazione di grub:

sudo update-initramfs -u

Al prossimo avvio, avrai solo la schermata di accesso in modalità testo. Questo è tutto.

Goditi Linux box!


-1

L'installazione di Oracle 7 Linux per impostazione predefinita richiede un'opzione di installazione minima. È necessario cambiarlo in installazione con la modalità GUI al momento dell'installazione. Questo ha risolto il mio problema in quanto non ero in grado di utilizzare la modalità utente grafica.


Sembra che tu abbia la richiesta del PO al contrario. L'OP sembra avere difficoltà a raggiungere la CLI, non la GUI.
HalosGhost

-1

Ho provato systemctl, update-rc.d e persino modificando la configurazione di GRUB, ma nulla ha funzionato. Poi ho commentato il display manager predefinito in / etc / X11 / default-display-manager, riavviato e infine: il terminale !!!! E 'così semplice!


-1

Uso

systemctl set-default multi-user.target

e riavviare la VM. La VM entrerà in modalità CLI.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.