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 startx
comando. Come posso tornare alla modalità riga di comando?
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 startx
comando. Come posso tornare alla modalità riga di comando?
Risposte:
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 sed
comando
sed
comando è un editor di stream (da cui il nome), lo usi per manipolare flussi di dati, di solito attraverso espressioni regolari .sed
di 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 sed
ricerca e sostituzione è s/pattern/replacement_pattern/
.-i
opzione dice sed
di applicare le modifiche in atto. Se questo non fosse presente, sed
avrebbe 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.
sed
comando.
sed
file 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 Tab
personaggio, comunque).
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
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.
Oltre a cambiare /etc/inittab
, puoi anche dire al kernel sulla sua riga di comando a quale runlevel di destinazione dovrebbe essere passato init
una 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 systemd
il 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 -- :1
avvierà 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).
inittab
ha molto più senso, dal momento che di solito si vuole portare il sistema sempre allo stesso stato.
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 n
con 1-7. F7ti porterebbe in modalità grafica solo se si è avviato nel livello di esecuzione 5 o se hai avviato X usando il startx
comando; in caso contrario, mostrerà solo uno schermo vuoto F7.
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
Dopo sostituire il runlevel di default per id:3:initdefault:
nel /etc/inittab
usando 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!
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.
Uso
systemctl set-default multi-user.target
e riavviare la VM. La VM entrerà in modalità CLI.
startx
come posso tornare alla riga di comando?