Terminales, shells, consolas y líneas de comando

Si está explorando Linux o Unix, es posible que escuche los términos terminal, línea de comando, shell y consola, y es posible que no sepa cuál es cuál y si son lo mismo. Ciertamente, todos están relacionados, pero cada uno tiene matices que tienen implicaciones importantes. Este artículo lo guía a través de la terminología de la interfaz basada en texto de Linux.

Cómo funcionan los ordenadores

Cuando un ordenador arranca, un kernel reconoce su propio hardware físico y permite que cada componente se comunique entre sí. Hay muchos kernels diferentes: hace mucho tiempo había un kernel de Unix, un kernel de Sun, un kernel de BSD, y más tarde hubo un kernel de Linux, un kernel de Hurd, un kernel de Mach y un kernel de NT.

Y eso no es todo. Hay núcleos especializados para todo tipo de dispositivos informáticos. Algunos son muy simples y otros son muy complejos, según las necesidades del dispositivo que se esté ejecutando.

El conjunto más básico de instrucciones para un ordenador la mantiene encendida. Los controladores de hardware, orquestados por el kernel, mantienen los ventiladores activos para evitar el sobrecalentamiento, se monitorea el espacio en disco, se administran los estados de RAM, se detectan nuevos dispositivos y más. Las primeras ordenadores hicieron incluso menos que eso en su estado inactivo, y cada programa que ejecutaba un ordenador temprana tenía esencialmente el único propósito de existir, al menos mientras ese programa (en forma de tarjetas perforadas) estaba en ejecución. El concepto de ejecutar una tarea en segundo plano, o dos aplicaciones a la vez, era inimaginable. Si quería procesar dos trabajos a la vez, tenía una segunda ordenador.

Casco interactivo

Sin embargo, una vez que los ordenadores avanzaron, algunos científicos reconocieron que programar un ordenador para un solo propósito cada vez que se iniciaba era ineficiente y, con los avances tecnológicos, carecía de potencia. Así que desarrollaron algo que llamaron cáscara.

Hay diferentes versiones de por qué se eligió el término "cáscara", pero una explicación creíble y satisfactoria es que la interfaz de la cáscara rodea el núcleo de manera muy similar a como una cáscara de nuez rodea una nuez. El shell es la parte con la que interactúa un usuario, mientras que el núcleo maneja las solicitudes de poder de cómputo.

Lo importante que hay que entender sobre un caparazón es que marcó una nueva era para la informática. El caparazón transformó los ordenadores de un dispositivo a una herramienta eléctrica que podía cambiar de función a pedido. Las ordenadores se habían vuelto interactivas. Incluso en la informática moderna, un caparazón es el nivel más bajo de interacción que puede tener con su ordenador. Esto lo convierte en la forma más directa de decirle a un ordenador qué quiere que haga a continuación, por lo que aprender el shell es una táctica invaluable para los usuarios avanzados.

La concha es un concepto abstracto para muchas personas. Al pensar en un caso, ayuda pensar en un caso específico, y hay mucho para elegir. El más popular es (GNU) Bash, pero Zsh y Pescado son alternativas populares a Bash. tcsh y ksh son viejos favoritos de confianza de los primeros UNIX, con estricta conformidad con POSIX. Ceniza y Guión aspiran a ser ligeros y rápidos, lo que los hace ideales para sistemas integrados y entornos mínimos. microsoft potencia Shell es un shell de código abierto basado en .NET.

Línea de comando

Cuando accede a un shell, obtiene un aviso. Algunas personas denominan línea de comando al indicador de shell, lo cual es realmente descriptivo: un indicador indica una línea en la que puede escribir un comando.

Un indicador es un símbolo que le permite saber que el shell está esperando sus instrucciones. Un símbolo común es un signo de dólar ($), pero también puede ser un signo de porcentaje (%), un corchete (>), un octohorpo (#), o algo mas. Esto significa que cuando usa un shell, su vista predeterminada se ve así:


$

La diferencia notable entre los shells es la sintaxis. Por ejemplo, en Bash y Zsh y Ash y Ksh, define variables con una declaración "igual":

$ foo=bar
$ echo $foo
bar

En Tcsh, sin embargo, usas la palabra clave set para variables:

$ set foo=bar
$ echo $foo
bar

Ayudar

En la superficie, la interfaz de shell no es exactamente fácil de usar. Por el contrario, parece que se espera que sepas qué hacer con un caparazón. Esto no es a lo que la mayoría de las personas de TI modernas están acostumbradas, ya que las aplicaciones GUI al menos brindan a los usuarios botones y menús para explorar, incluso si no saben exactamente lo que hace la aplicación.

Incluso si un usuario entiende que el shell espera entradas, palabras comunes, en inglés o de otro tipo, generará errores o resultados innecesarios.

Por ejemplo, si escribe help En un indicador de Bash, obtiene una lista de comandos integrados, algunos de los cuales producen resultados útiles o permiten una mayor interacción.

En este sentido, el shell no es una aplicación típica. Es básicamente una línea de comando: una línea donde puede escribir comandos. Depende del usuario saber qué comandos están disponibles, y se supone que un usuario que abre un shell se ha familiarizado con al menos los comandos más rudimentarios para que pueda aprender más sobre el sistema.

Debido a que ese no es siempre el caso, es útil en los sistemas públicos crear un alias global para el comando en su mayoría innecesario. help a algo informativo, como cáscara.

Consola

Puede acceder a un shell en Linux o BSD sin ejecutar una GUI en absoluto (por lo que solo queda un shell), o presionando Alt+Shift y una tecla de función 2 a 6. Cada tecla de función lo lleva a una pantalla proporcionada por getty ( o agetty, o algo similar, dependiendo de lo que use su distribución). La pantalla proporciona un indicador de inicio de sesión de shell, y esta pantalla a menudo se denomina consola. Específicamente, es una sesión getty o un dispositivo tty emulado.

En Mac, no hay forma de deshabilitar la ejecución de una GUI en un sistema en ejecución, aunque en el momento del arranque puede usar las teclas de enlace para arrancar en modo mono -usuario. El modo de usuario único en Mac OS desactiva muchas funciones, incluida la administración de usuarios, por lo que generalmente no se recomienda.

La forma más común de acceder a un shell en los ordenadores modernas es abrir un emulador de terminal, que ejecuta un shell en su interior.

Terminal

Históricamente, una terminal era un dispositivo físico, incluso antes de que existiera el concepto de ordenador personal (PC). Una terminal era un objeto parecido a un ordenador, pero en realidad era solo una pantalla (¡o, a veces, solo una impresora!) con un teclado adjunto. Una ventana de terminal en un ordenador moderna es una emulación de este objeto histórico y, por lo general, puede ejecutar cualquier shell dentro de un emulador de terminal.

Por ejemplo, en su escritorio Linux, puede ejecutar una instancia de un terminal GNOME para que actúe como una ventana en un shell Bash y otra instancia de un terminal GNOME para que actúe como una ventana en un shell Tcsh.

El terminal en sí solo está allí para albergar un shell en ejecución. Un emulador de terminal no procesa datos ni ejecuta comandos, aunque puede agregar funciones de interfaz de usuario, como atajos de teclado especiales, la capacidad de arrastrar y soltar archivos en un shell, colores de temas, etc.

Hay muchos emuladores de terminal disponibles en todas las plataformas. Los escritorios Linux y BSD vienen con xterm como alternativa, y suelen incluir un emulador moderno para el uso diario (como GNOME Terminal, Konsole, etc.). Mac OS viene con un emulador de terminal patentado, pero iTerm2 es un reemplazo muy superior (y su licencia es GPLv2).

Para Windows, PowerShell es el predeterminado, pero hay muchas otras opciones de código abierto como ConEmuComentario y El oficial al mando.

Aprende más

Puede obtener más información sobre los terminales y los shells que ejecutan leyendo cómo navegar por el shell, cómo administrar archivos en el shell y cómo personalizar su shell. Si aprende mejor en , considere tomar cursos introductorios de Red Hat Training.

[ Need help figuring out to type at the terminal? Download the Linux Commands Cheat Sheet. ]

Artículos de interés

Subir