Comment démarrer Linux en mode ligne de commande au lieu de l'interface graphique?

26

J'utilise Red Hat Linux 32 bits dans ma machine virtuelle. Je veux le démarrer en mode ligne de commande, pas en mode GUI. Je sais qu'à partir de là, je peux passer en mode GUI en utilisant la startxcommande. Comment repasser en mode ligne de commande?

Ne vous inquiétez pas enfant
la source

Réponses:

23

Mise à jour: la réponse ci-dessous est désormais obsolète

Pour de nombreuses distributions maintenant, la valeur par défaut est systemd plutôt que sysvinit. La réponse ci-dessous a été écrite avec Sysvinit à l'esprit. La réponse la plus récente (et celle que vous devriez utiliser si vous avez systemd comme système init) est la réponse de Golem .

réponse sysvinit (obsolète sur la plupart des distributions actuelles):

Vous souhaitez faire du niveau d'exécution 3 votre niveau d'exécution par défaut. À partir d'un terminal, basculez vers root et procédez comme suit:

[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

Tout ce qui suit (et inclut) la seconde #sur chaque ligne est un commentaire pour vous, vous n'avez pas besoin de le taper dans le terminal.

Voir la page Wikipedia sur les niveaux d'exécution pour plus d'informations.

Explication de la sedcommande

  • La sedcommande est un éditeur de flux (d'où son nom), vous l'utilisez pour manipuler des flux de données, généralement via des expressions régulières .
  • Ici, nous disons sedde remplacer le modèle id:5:initdefault:par le modèle id:3:initdefault:du fichier /etc/inittab, qui est le fichier qui contrôle vos niveaux d'exécution. La syntaxe générale pour une sedrecherche et un remplacement est s/pattern/replacement_pattern/.
  • L' -ioption indique sedd'appliquer les modifications en place. Si ce n'était pas le cas, sedaurait sorti le fichier résultant (après substitution) vers le terminal (plus généralement vers la sortie standard).

Mise à jour

Pour revenir en mode texte, appuyez simplement sur CTRL+ ALT+ F1. Cela n'arrêtera pas votre session graphique, il vous ramènera simplement au terminal auquel vous vous êtes connecté. Vous pouvez revenir à la session graphique avec CTRL+ ALT+ F7.

Joseph R.
la source
Merci d'avoir répondu. De plus, lorsque je passe à l'interface graphique en utilisant startxcomment puis-je revenir à la ligne de commande?
Ne t'inquiète pas pour l'enfant
1
@ 0xF1 Ajout d'une explication pour la sedcommande.
Joseph R.
1
Je déconseille généralement d'utiliser seddes fichiers de configuration, sauf si vous savez exactement ce que vous faites. La ligne en question pourrait également être un commentaire et serait néanmoins modifiée. Par conséquent, l'expression régulière doit être plus précise, au moins exiger que la chaîne id:...soit au début de la ligne. Étant donné que la page de manuel ne dit rien sur la façon dont les espaces blancs sont traités, vous voudrez probablement utiliser s/^ *id:5:initdefault:(qui ne comprend pas de Tabcaractère, soit dit en passant).
peterph
1
Cette réponse n'est plus valable, du moins sur mon système d'exploitation actuel. Jetez un œil à la réponse de @ golem ci-dessous. Cela a fonctionné pour moi. J'utilise fedora 27.
Lance
1
@Lance Très bon point. Merci pour l'avis. J'ai mis à jour ma réponse pour refléter cela.
Joseph R.
25

Mise à jour pour RedHat / CentOS 7 qui est passé de sysvinit à systemd.

Pour passer de l'interface graphique à l'interface CLI: systemctl isolate multi-user.target

Pour passer de CLI à GUI: systemctl isolate graphical.target

Pour définir la CLI par défaut runlevel ( cible dans la terminologie systemd): systemctl set-default multi-user.target. De manière analogue pour l'interface graphique:systemctl set-default graphical.target

* CLI = Interface de ligne de commande = mode ligne de commande

Golem
la source
Voir également: Documentation associée .
Mark Edington
2
Merci .. Chaque forum est toujours en train de vider les anciennes connaissances sur / etc / inittab même si elles sont obsolètes.
Shashank Vyas
11

Commutez d'abord l'utilisateur sur root.

su -
Password:

Saisissez le mot de passe root.

Utilisez votre éditeur préféré pour modifier cette ligne en /etc/inittab:

id:5:initdefault:

Changez le 5 en 3. Lorsque vous (re) démarrez l'ordinateur, il vous amènera à la ligne de commande plutôt qu'à l'interface graphique.

Timothy Martin
la source
Veuillez inclure des instructions sur la façon dont l'OP doit procéder en tant que root et dans quel fichier. En l'état, cette réponse n'est pas adaptée pour aider quelqu'un qui est nouveau sur Linux.
Joseph R.
1
Merci d'avoir signalé mon oubli. J'ai modifié la réponse en conséquence.
Timothy Martin
Est-ce à dire que l'interface graphique n'est pas en cours d'exécution ou est-elle masquée?
Aaron Franke
@AaronFranke Pour les systèmes Redhat au niveau d'exécution 3, l'interface graphique n'est pas activée (ou désactivée dans le cas d'un système qui est passé du niveau d'exécution 5 à 3 sans redémarrage).
Timothy Martin
3

Outre la modification /etc/inittab, vous pouvez également indiquer au noyau sur sa ligne de commande à quel niveau d'exécution cible doit être transmis initune fois qu'il est démarré. Cela se fait en ajoutant simplement le niveau d'exécution souhaité à la ligne de commande (ce doit être le dernier argument, je crois).

Vous pouvez le faire soit comme une chose unique lors du démarrage, à condition que votre chargeur de démarrage vous permette de modifier la ligne de commande du noyau, ou vous pouvez dupliquer l'entrée dans la configuration du chargeur de démarrage et choisir la bonne lors du démarrage (utile lorsque vous démarrez dans divers runlevels souvent).

Pour les systèmes utilisant systemdle processus est similaire, mais signifie plus de frappe car la chaîne magique ajoutée à la ligne de commande du noyau est sous la forme de systemd.unit=desired.target.

Quant à startx, il peut également démarrer des sessions supplémentaires en lui donnant un numéro d'affichage X inutilisé (la numérotation commence à 0): startx -- :1démarrera le serveur X sur l'affichage: 1, en le localisant au premier VT inutilisé (souvent VT8, puisque les 6 premiers sont généralement Linux consoles et 7 est utilisé par la première session X en cours d'exécution). Notez que le serveur X a généralement besoin des privilèges root, vous devez donc le faire en tant que root(ce qui n'est pas une bonne idée), ou le binaire doit être défini en tant que root (le besoin de ceci est normalement supprimé en utilisant un gestionnaire d'affichage).

peterph
la source
+1 Excellente réponse. Pas très sympa pour les débutants, cependant.
Joseph R.
Oui, changer inittabest beaucoup plus logique, car on veut généralement mettre le système dans le même état tout le temps.
peterph
2

Sur une note latérale, si vous avez déjà démarré en mode graphique et souhaitez passer en mode texte, vous pouvez simplement appuyer sur Ctrl+ Alt+ F1et revenir en mode graphique par Ctrl+ Alt+ F7.

Linux possède par défaut 6 terminaux texte et 1 terminal graphique. Vous pouvez basculer entre ces terminaux en appuyant sur Ctrl+ Alt+ Fn. Remplacez npar 1-7. F7ne vous amènerait au mode graphique que s'il a démarré au niveau d'exécution 5 ou si vous avez démarré X en utilisant la startxcommande; sinon, il affichera simplement un écran vide F7.

Punit Arya
la source
montrer ce travail dans RHEL 7?
javapowered
1

Même être un fil assez ancien, peut être utile. Sur le système utilisant systemd, / etc / inittab n'est plus utilisé. La méthode est assez simple:

Mode terminal

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

Mode graphique

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

Après avoir remplacé le niveau d'exécution par défaut id:3:initdefault:en /etc/inittabutilisant votre éditeur de texte préféré (comme indiqué précédemment), il est très important de vérifier s'il y a du plymouth (écran de démarrage) installé dans votre système. Dans ce cas, vous devrez supprimer l'installation de celui-ci, ou simplement supprimer le mot-clé splash de vous /boot/grub/grub.cfg en utilisant votre éditeur de texte préféré (vim, pico ou autres). Pour retirer le plymouth:

sudo apt-get remove --purge plymouth

Modifiez votre grub.cfg:

sudo vim /boot/grub/grub.cfg

Enfin, mettez à niveau la configuration de grub:

sudo update-initramfs -u

Au prochain démarrage, vous aurez juste l'écran de connexion en mode texte. C'est ça.

Profitez de la boîte Linux!

S4nD3r
la source
-1

L'installation d'Oracle-Linux 7 par défaut prend une option d'installation minimale. Vous devez le changer en installation avec le mode GUI au moment de l'installation. Cela a résolu mon problème de ne pas pouvoir utiliser le mode utilisateur graphique.

Guhan
la source
Il semble que vous ayez la demande du PO à l'envers. L'OP semble avoir du mal à accéder à la CLI, pas à l'interface graphique.
HalosGhost
-1

J'ai essayé systemctl, update-rc.d et même édité la configuration GRUB, mais rien n'a fonctionné. Ensuite, j'ai commenté le gestionnaire d'affichage par défaut dans / etc / X11 / default-display-manager, redémarré et enfin: le terminal !!!! C'est aussi simple que ça!

Hehe
la source
-1

Utilisation

systemctl set-default multi-user.target

et redémarrez la machine virtuelle. La VM passera en mode CLI.

Santhosh Kumar
la source