Pregunta ¿Cuál es la diferencia entre shell, consola y terminal?


Estoy confundido con la terminología. ¿Cuál es la diferencia entre shell, consola y terminal?


162


origen


y que hay con prompt e incluso command line? - n611x007
Echa un vistazo a esta pregunta de Unix y Linux: unix.stackexchange.com/questions/4126/... - Flimm
Mi esposa dijo "la pantalla negra" - Kenji Noguchi


Respuestas:


En el mundo de Linux, todos pueden parecer iguales desde el punto de vista del usuario en el teclado. Las diferencias están en cómo interactúan entre sí.

los cáscara es el programa que realmente procesa los comandos y devuelve el resultado. La mayoría de las shells también administran los procesos en primer plano y en segundo plano, el historial de comandos y la edición de línea de comando. Estas características (y muchas más) son estándar en bash, el shell más común en los sistemas linux modernos.

UN terminal se refiere a un programa contenedor que ejecuta un shell. Hace décadas, este era un dispositivo físico que consistía en poco más que un monitor y un teclado. Como los sistemas Unix / Linux añadieron mejores sistemas de multiprocesamiento y ventanas, este concepto de terminal se resumió en software. Ahora tienes programas como Terminal Gnome que lanza una ventana en un entorno de ventanas Gnome que ejecutará un cáscara en el que puede ingresar comandos.

los consola es un tipo especial de terminal. Históricamente, la consola era un solo teclado y monitor conectado a un puerto de consola serie dedicado en una computadora utilizada para la comunicación directa en un nivel bajo con el sistema operativo. Los sistemas modernos de Linux proporcionan consolas virtuales. A estos se accede a través de combinaciones de teclas (p. Alt+F1 o Ctrl+Alt+F1; el tecla de función números diferentes consolas) que se manejan en niveles bajos del sistema operativo Linux, esto significa que no hay ningún servicio especial que necesita ser instalado y configurado para ejecutarse. Interactuar con la consola también se hace usando un cáscara programa.


143



Antes de que las terminales fueran monitores con teclados, eran teletipos, una especie de máquina de escribir eléctrica. en.wikipedia.org/wiki/Teleprinter - Kevin Panko
Consola a veces significa "el teclado y el monitor conectado físicamente a esta computadora". Por ejemplo, "inicié sesión desde la consola porque el servidor no respondía a la red". - Kevin Panko
@ Doug Harris: ¿Puedes agregar algunas imágenes del hardware del que estás hablando? - claws
Cuando estaba en la universidad a fines de la década de 1980, trabajé mucho en terminales DEC VT220 - en.wikipedia.org/wiki/VT220 - Ese es un buen ejemplo del dispositivo físico que describí. - Doug Harris
Así que si terminales y consolas son, en la actualidad, cada uno implementado en software: ¿cuál es la diferencia entre los dos (ahora)? - Gavin Hope


Un shell es un programa que pone un aviso y espera a que escriba comandos. Los ejecuta y luego imprime otro mensaje. Entonces, como CMD en Windows, o Bash en Unix. Se puede ejecutar en una terminal o en la consola.

Una consola era originalmente una cosa física, un panel de control. En términos informáticos, generalmente significa la pantalla que ve antes de que la GUI se inicie o después de que termine; a veces puede cambiar para mostrarlo en lugar de la GUI. Es el lugar donde el sistema operativo imprime mensajes de error. En una computadora multiusuario, es la pantalla que está realmente conectada a la computadora. Para confundirte, en Windows también puede significar una ventana con un shell de comandos, es decir, una terminal.

Una terminal también era originalmente hardware, utilizada para comunicarse con una computadora. Hoy en día, generalmente se refiere a una ventana con una línea de comandos (shell), que podría aparecer en una ventana GUI o en lugar de una GUI.


10





Piensa en otro contexto, eso es desarrollo.
Incluso si no tiene un conocimiento profundo del desarrollo, probablemente sepa lo básico, es decir: edita un programa, lo envía a un compilador o a un intérprete que crea una aplicación compilada.
La consola es como el editor de tu programa; te ayuda en escritura pero en realidad no ejecuta nada: cuando hayas terminado, lo envías al compilador para eso.

Puede usar su editor preferido, vim, gedit, emacs, notepad ++, Netbeans, eclise etc.etc, pero al final son solo herramientas diferentes: si escribe el mismo programa, la salida será la misma.
En esta metáfora, el shell es el compilador. Los comandos que se ingresan en el terminal se envían al intérprete de comandos que los interpreta y los ejecuta de inmediato.
Entonces, aunque los terminales son solo front-ends para el shell, el shell contiene el lenguaje real, como ocurre con el compilador.

Obviamente, un terminal no es exactamente un editor de texto, principalmente porque no produce un archivo, sino que envía texto al shell subyacente y recupera el resultado del mismo.

Y el shell no es un compilador, de hecho, interpreta su comando y lo ejecuta de inmediato en lugar de construir un ejecutable.

Incluso con esta gran diferencia, creo que esta metáfora ayuda mucho a comprender esta idea.


1





Realmente no hay mucha diferencia. Hace mucho tiempo, cuando el "shell" era un programa, el "terminal" era un contenedor frontal para este programa, y ​​la "consola" era la conexión física a la computadora (teclado / pantalla).

Existe una diferencia según el sistema operativo que esté ejecutando. El shell "estándar" es INTENTO, que normalmente está disponible en todos los sabores de Linux / Unix. Windows usa un shell completamente diferente.


0





Un terminal es una interfaz basada en texto (posiblemente en un shell)

La diferencia entre la consola y el caparazón es una que aún no entiendo, pero puedo decirte cómo un terminal es diferente de un caparazón.

los terminal es (según Wikipedia) "una interfaz de computadora en serie para la entrada y visualización de texto. La información se presenta como una matriz de caracteres formados preseleccionados".

Puede usar un terminal para interactuar con un shell, pero también puede usarlo para interactuar con un GUI basada en texto, a veces llamado Interfaz de usuario terminal. Por ejemplo:

  • Empuje tiene elementos de GUI que incluyen números de línea y pestañas con nombre
  • Nano tiene elementos de GUI que incluyen un menú de ayuda de comandos
  • Tmux tiene elementos de GUI que incluyen una barra de estado y líneas divisorias entre paneles
  • Minicom tiene elementos de GUI incluyendo menús y una barra de estado

En cada caso, los elementos de la GUI se "dibujan" con texto en lugar de píxeles.


0



No estoy seguro acerca de esta definición de que solo se base en texto. En cierto modo, algunas GUI podrían considerarse terminales imo. - jiggunjer


Para principiantes principiantes

Para una descripción más detallada: https://askubuntu.com/a/506628/130518

  • terminal = entorno de entrada / salida de texto
  • consola = terminal física
  • shell = intérprete de línea de comando

Describiré el caso de uso más normal para esto en el siguiente texto.

Una terminal usos como el infierno. Un shell puede funcionar sin un terminal.

Para relacionarse con artículos cotidianos:

  • Terminal -> pantalla de TV en su hogar
  • Shell -> Programa que se ejecuta en la pantalla del televisor

Otra forma de verlo: tus oídos (entrada) y tu boca (salida) son los terminales para el sonido. Tu cerebro es el intérprete de esos sonidos usando un caparazón específico (procesamiento).

La terminal es para nosotros los humanos, por lo que podemos leer y escribir en / desde el caparazón. Los shells se pueden ejecutar en procesos de fondo que no requieren interacción humana, p. trabajo cron, y por lo tanto no requieren un terminal.

Algunos ejemplos de terminales que existen:

  • Símbolo del sistema
  • guake
  • gnome-terminal
  • terminador

Algunos ejemplos de conchas que existen:

  • Intento
  • sh (Bourne shell)
  • PowerShell [windows]
  • zsh (carcasa Z)

Solo escribí cómo estos dos funcionan normalmente, hay otras maneras en que funcionan, pero eso es para un usuario más avanzado.


0