¿Cómo iniciar Linux en modo de línea de comandos en lugar de GUI?


26

Estoy usando Red Hat Linux de 32 bits en mi VM. Quiero iniciarlo en modo de línea de comandos, no en modo GUI. Sé que desde allí puedo cambiar al modo GUI usando el startxcomando. ¿Cómo vuelvo al modo de línea de comandos?

Respuestas:


23

Actualización: la respuesta a continuación ahora está obsoleta

Para muchas distribuciones ahora, el valor predeterminado es systemd en lugar de sysvinit. La respuesta a continuación fue escrita con sysvinit en mente. La respuesta más actualizada (y la que debe usar si tiene systemd como su sistema init) es la respuesta de golem .

Respuesta de sysvinit (obsoleta en la mayoría de las distribuciones actuales):

Desea hacer que el nivel de ejecución 3 sea su nivel de ejecución predeterminado. Desde una terminal, cambie a root y haga lo siguiente:

[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

Cualquier cosa después (e incluyendo) el segundo #en cada línea es un comentario para usted, no necesita escribirlo en el terminal.

Consulte la página de Wikipedia sobre niveles de ejecución para obtener más información.

Explicación de sedcomando

  • El sedcomando es un editor de flujo (de ahí el nombre), lo usa para manipular flujos de datos, generalmente a través de expresiones regulares .
  • Aquí, le estamos diciendo sedque reemplace el patrón id:5:initdefault:con el patrón id:3:initdefault:en el archivo /etc/inittab, que es el archivo que controla sus runlevles. La sintaxis general para una sedbúsqueda y reemplazo es s/pattern/replacement_pattern/.
  • La -iopción le dice sedque aplique las modificaciones en su lugar. Si esto no estuviera presente, sedhabría enviado el archivo resultante (después de la sustitución) al terminal (más generalmente a la salida estándar).

Actualizar

Para volver al modo de texto, simplemente presione CTRL+ ALT+ F1. Esto no detendrá su sesión gráfica, simplemente lo cambiará de nuevo al terminal en el que inició sesión. Puede volver a la sesión gráfica con CTRL+ ALT+ F7.


Gracias por la respuesta. Además, cuando cambio a GUI usando startx¿cómo puedo volver a la línea de comando?
No te preocupes niño

1
@ 0xF1 Se agregó una explicación para el sedcomando.
Joseph R.

1
Generalmente recomendaría no usar sedarchivos de configuración, a menos que sepa exactamente lo que está haciendo. La línea en cuestión podría ser también un comentario y, sin embargo, aún se cambiaría. Por lo tanto, la expresión regular debería ser más precisa, al menos requerir que la cadena id:...esté al comienzo de la línea. Dado que la página de manual no dice nada sobre cómo se tratan los espacios en blanco, es probable que desee usar s/^ *id:5:initdefault:( Tabpor cierto, que no incluye caracteres).
Peter

1
Esta respuesta ya no es válida, al menos en mi sistema operativo actual. Echa un vistazo a la respuesta de @ golem a continuación. Eso funcionó para mí. Estoy usando Fedora 27.
Lance

1
@Lance Muy buen punto. Gracias por la noticia. He actualizado mi respuesta para reflejar eso.
Joseph R.

25

Actualización para RedHat / CentOS 7 que ha cambiado de sysvinit a systemd.

Para cambiar de GUI a CLI: systemctl isolate multi-user.target

Para cambiar de CLI a GUI: systemctl isolate graphical.target

Para configurar la CLI como predeterminado nivel de ejecución ( objetivo en la terminología systemd): systemctl set-default multi-user.target. Análogamente para GUI:systemctl set-default graphical.target

* CLI = Interfaz de línea de comandos = modo de línea de comandos



2
Gracias. Todos los foros todavía están volcando el viejo conocimiento sobre / etc / inittab aunque es obsoleto.
Shashank Vyas

11

Primero cambie de usuario a root.

su -
Password:

Ingrese la contraseña de root.

Use su editor favorito para modificar esta línea en /etc/inittab:

id:5:initdefault:

Cambie el 5 a 3. Cuando reinicie la computadora, lo llevará a la línea de comando en lugar de a la GUI.


Incluya instrucciones sobre cómo el OP debe hacer esto como root y en qué archivo. Esta respuesta, tal como está, no es adecuada para ayudar a alguien que es nuevo en Linux.
Joseph R.

1
Gracias por señalar mi descuido. He editado la respuesta en consecuencia.
Timothy Martin

¿Esto significa que la GUI no se está ejecutando o está oculta?
Aaron Franke

@AaronFranke Para los sistemas Redhat en el nivel de ejecución 3, la GUI no está habilitada (o desactivada en el caso de un sistema que se cambió del nivel de ejecución 5 a 3 sin reiniciar).
Timothy Martin el

3

Además de cambiar /etc/inittab, también puede decirle al núcleo en su línea de comando a qué nivel de ejecución de destino debe pasar inituna vez que se inicia. Esto se hace simplemente agregando el nivel de ejecución deseado a la línea de comando (creo que debe ser el último argumento).

Puede hacer esto como algo único durante el arranque, siempre que su gestor de arranque le permita cambiar la línea de comando del núcleo, o puede duplicar la entrada en la configuración del cargador de arranque y elegir la correcta al iniciar (útil cuando está iniciando en varios niveles de ejecución a menudo).

Para los sistemas que usan systemdel proceso es similar, pero significa más tipeo ya que la cadena mágica agregada a la línea de comando del núcleo tiene la forma de systemd.unit=desired.target.

En cuanto a startx, también puede iniciar sesiones adicionales dándole un número de pantalla X no utilizado (la numeración comienza desde 0): startx -- :1iniciará el servidor X en la pantalla: 1, ubicándolo en el primer VT no utilizado (a menudo VT8, ya que los primeros 6 suelen ser Linux consolas y 7 es utilizado por la primera sesión X en ejecución). Tenga en cuenta que el servidor X generalmente necesita privilegios de root, por lo que debe hacer esto como root(lo cual no es una buena idea), o el binario debe ser setuid root (la necesidad de esto normalmente se elimina mediante un administrador de visualización).


+1 Gran respuesta. Sin embargo, no es muy amigable para los novatos.
Joseph R.

Sí, cambiar inittabtiene mucho más sentido, ya que generalmente uno quiere llevar el sistema al mismo estado todo el tiempo.
Peter

2

En una nota al margen, si ya ha arrancado en modo gráfico y desea cambiar al modo de texto, puede presionar Ctrl+ Alt+ F1y volver al modo gráfico por Ctrl+ Alt+ F7.

Linux tiene por defecto 6 terminales de texto y 1 terminal gráfica. Puede cambiar entre estos terminales presionando Ctrl+ Alt+ Fn. Reemplazar ncon 1-7. F7lo llevaría al modo gráfico solo si arranca en el nivel de ejecución 5 o si ha iniciado X usando el startxcomando; de lo contrario, solo mostrará una pantalla en blanco F7.


mostrar este trabajo en RHEL 7?
javapowered

1

Incluso siendo un hilo bastante viejo, puede ser útil. En el sistema que usa systemd, / etc / inittab ya no está en uso. El método es bastante simple:

Modo terminal

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

Modo gráfico

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

0

Después de reemplazar el nivel de ejecución predeterminado para id:3:initdefault:en /etc/inittabsu editor de texto preferido (como se ha dicho anteriormente), es muy importante cheque si hay algo de Plymouth (pantalla de inicio) instalado en su sistema. En este caso, será necesario eliminar la instalación de la misma, o simplemente eliminar la palabra clave splash de usted /boot/grub/grub.cfg usando su editor de texto preferido (vim, pico u otros). Para eliminar plymouth:

sudo apt-get remove --purge plymouth

Edite su grub.cfg:

sudo vim /boot/grub/grub.cfg

Finalmente, actualice la configuración de grub:

sudo update-initramfs -u

En el próximo arranque, solo tendrá la pantalla de inicio de sesión en modo texto. Eso es.

¡Disfruta de Linux box!


-1

La instalación de Oracle-Linux 7 por defecto tiene una opción mínima de instalación. Debe cambiarlo a la instalación con el modo GUI en el momento de la instalación. Esto ha resuelto mi problema de no poder usar el modo gráfico de usuario.


Parece que tiene la solicitud del OP al revés. El OP parece estar luchando por llegar a la CLI, no a la GUI.
HalosGhost

-1

Intenté systemctl, update-rc.d e incluso edité la configuración de GRUB, pero nada funcionó. Luego comenté el administrador de pantalla predeterminado en / etc / X11 / default-display-manager, reinicié y finalmente: ¡el terminal! ¡Es tan simple como eso!


-1

Utilizar

systemctl set-default multi-user.target

y reinicie la VM. La VM entrará en modo CLI.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.