GNU/Linux >> Tutoriales Linux >  >> Linux

8 tipos de shells de Linux

Introducción

Linux viene con varios shells diferentes. Aunque una distribución tiene un shell predeterminado, los usuarios pueden cambiar a otro tipo o instalar uno nuevo.

Si está buscando cambiar su shell predeterminado, conocer los diferentes tipos disponibles ayuda a proporcionar una descripción general clara de las posibles opciones.

Este artículo muestra la importancia y las características de ocho shells de Linux diferentes.

¿Qué es un shell de Linux y por qué es importante?

Un caparazón es un programa intérprete de línea de comandos que analiza y envía comandos al sistema operativo. Este programa representa la interfaz interactiva de un sistema operativo y la capa más externa (o shell) del kernel. Permite a los usuarios y programas enviar señales y exponer las utilidades de bajo nivel de un sistema operativo.

El programa de terminal (o emulador de terminal) permite la interacción con las utilidades del sistema. Cuando ejecutamos cualquier comando en la terminal, como ls o cat, el shell analiza, evalúa, busca y ejecuta el programa correspondiente, si lo encuentra.

Tipos de shells de Linux

Linux ofrece diferentes tipos de shell para abordar varios problemas a través de características únicas. Los shells desarrollados junto con Unix a menudo tomaban prestadas funciones entre sí a medida que avanzaba el desarrollo.

A continuación se muestra una breve descripción general de los diferentes tipos de shell y sus características .

1. Concha Bourne (sh)

La concha de Bourne fue el primer shell predeterminado en los sistemas Unix, lanzado en 1979. El nombre del programa shell es sh y la ubicación tradicional es /bin/sh . El aviso cambia a $ , mientras que el mensaje raíz es # .

El caparazón Bourne rápidamente se hizo popular porque es compacto y rápido . Sin embargo, sh carece de algunas características estándar, como:

  • Expansión lógica y aritmética.
  • Historial de comandos.
  • Otras funciones integrales, como autocompletar.

Los sistemas modernos similares a Unix tienen el /bin/sh Archivo ejecutable. El programa no inicia el shell Bourne, sino que actúa como un archivo ejecutable que apunta al shell predeterminado del sistema. .

Para la mayoría de los sistemas, el enlace físico o simbólico apunta a bash , mientras que en Ubuntu y Debian, el enlace es para guión . En ambos casos, el enlace imita al shell de Bourne tanto como sea posible.

2. Consola C (csh)

La capa C (csh ) es un shell de Linux de finales de la década de 1970 cuyo principal objetivo era mejorar el uso interactivo e imitar el lenguaje C. Dado que el kernel de Linux está predominantemente escrito en C, el shell tiene como objetivo proporcionar coherencia estilística en todo el sistema.

La ruta al ejecutable del shell C es /bin/csh . El indicador usa % para usuarios regulares y # para el usuario root.

Nuevas características interactivas incluidas:

  • Historial del comando anterior.
  • Alias ​​definidos por el usuario para los programas.
  • Directorio de inicio relativo (~ ).
  • Gramática de expresión incorporada.

Los principales inconvenientes del shell C son:

  • Incoherencias de sintaxis.
  • No es compatible con funciones o identificadores de archivos de entrada/salida estándar (stdio).
  • No completamente recursivo, lo que limita el manejo de comandos complejos.

El shell C mejoró la legibilidad y el rendimiento en comparación con el shell Bourne. Las funciones interactivas y las innovaciones en csh influyeron en todos los shells de Unix posteriores.

3. Carcasa TENEX C (tcsh)

La carcasa TENEX C (tcsh ) es una extensión del shell C (csh ) se fusionaron a principios de la década de 1980. El shell es compatible con versiones anteriores de csh, con funciones y conceptos adicionales prestados del sistema operativo TENEX.

La ruta del ejecutable del shell TENEX C está en /bin/tcsh . El indicador de usuario es hostname:directory> mientras que el indicador raíz es hostname:directory# . Las primeras versiones de Mac OS y el shell raíz predeterminado de FreeBSD usan tcsh.

Las características adicionales del caparazón incluyen:

  • Historial de comandos avanzado.
  • Autocompletar programable.
  • Coincidencia de comodines.
  • Control de trabajos.
  • Comando where integrado.

Dado que tcsh es una extensión del shell C, persisten muchos inconvenientes en la versión extendida.

4. KornShell (ksh)

El KornShell (ksh ) es un shell de Unix y un lenguaje basado en el Bourne shell (sh) desarrollado a principios de la década de 1980. La ubicación está en /bin/ksh o /bin/ksh93 , mientras que el aviso es el mismo que el shell de Bourne ($ para un usuario y # para raíz).

El shell implementa funciones del shell C y Bourne, con el objetivo de centrarse tanto en los comandos interactivos como en las funciones de programación. El KornShell agrega nuevas funciones propias, como:

  • Funciones matemáticas integradas y aritmética de punto flotante.
  • Programación orientada a objetos.
  • Extensibilidad de los comandos integrados.
  • Compatible con el shell Bourne.

El shell es más rápido que el shell C y el shell Bourne.

5. Shell de Debian Almquist (guión)

Debian Almquist Shell (guion ) es un shell de Unix desarrollado a finales de la década de 1990 a partir del shell de Almquist (ash), que se transfirió a Debian y se le cambió el nombre.

Dash es famoso por ser el shell predeterminado de Ubuntu y Debian. El shell es mínimo y compatible con POSIX, lo que lo hace conveniente para los scripts de inicio del sistema operativo.

La ruta del ejecutable es /bin/dash , además de /bin/sh apuntando a /bin/dash en Ubuntu y Debian. El indicador de usuario raíz y predeterminado es el mismo que en el shell de Bourne.

Las funciones de Dash incluyen:

  • La ejecución se acelera hasta 4 veces más rápido que bash y otros shells.
  • Requiere un mínimo de espacio en disco, CPU y RAM en comparación con las alternativas.

El principal inconveniente es que dash no es compatible con bash. Las características que no se incluyen en dash se conocen como "bashisms". Por lo tanto, los scripts de bash requieren reelaboraciones adicionales de bashisms para ejecutarse con éxito.

6. Concha de Bourne Again (bash)

El caparazón de Bourne Again es un shell de Unix y un lenguaje de comandos creado como una extensión del shell de Bourne (sh ) en 1989. El programa shell es el shell de inicio de sesión predeterminado para muchas distribuciones de Linux y versiones anteriores de macOS.

El nombre del shell se acorta a bash y la ubicación es /bin/bash . Al igual que el shell de Bourne, el indicador de bash es $ para un usuario normal y # para raíz.

Bash presenta funciones que no se encuentran en el shell de Bourne, algunas de las cuales incluyen:

  • Expansión de refuerzos.
  • Completar comando.
  • Depuración básica y manejo de señales.
  • Historial de comandos.
  • Comandos condicionales, como las sentencias bash if y bash case.
  • Soporte de Heredoc.

Nota: Algunas funciones no son exclusivas de Bash, sino que se toman prestadas de otros shells.

Dado que bash es un superconjunto del shell Bourne, la mayoría de los scripts sh se ejecutan en bash sin cambios adicionales.

7. Concha Z (zsh)

La cáscara Z (zsh ) es un shell de Unix creado como una extensión del shell Bourne a principios de la década de 1990. El shell rico en funciones toma prestadas ideas de ksh y tcsh para crear una alternativa útil y bien construida.

La ubicación del ejecutable está en /bin/zsh . El aviso es [email protected] location % para usuarios habituales y hostname# para el usuario raíz. El shell Z es el shell predeterminado de Kali Linux y Mac OS.

Algunas características nuevas agregadas al zsh incluyen:

  • Historial compartido entre todas las sesiones de shell en ejecución.
  • Manejo mejorado de matrices y variables.
  • Correcciones ortográficas y autorelleno de nombre de comando.
  • Varios modos de compatibilidad.
  • Extensibilidad a través de complementos.

El shell es altamente configurable y personalizable debido al soporte impulsado por la comunidad a través del marco Oh My Zsh.

8. Caracol Interactivo Amigable (pez)

El Shell Interactivo Amigable (peces ) es un shell de Unix lanzado a mediados de la década de 2000 con un enfoque en la usabilidad. El shell rico en funciones no requiere configuración adicional, lo que lo hace fácil de usar desde el principio.

La ruta ejecutable predeterminada es /usr/bin/fish . El indicador de usuario es [email protected] location> , mientras que el mensaje raíz es [email protected] location# .

Las características del caparazón incluyen:

  • Sugerencias avanzadas/completado de pestañas basado en el historial del directorio actual.
  • Resaltado de sintaxis útil y mensajes de error descriptivos.
  • Configuración basada en web.
  • Historial de comandos con opciones de búsqueda.

El principal inconveniente del pescado es que no cumple con POSIX. Sin embargo, los desarrolladores buscan mejorar los diseños defectuosos de POSIX.

Conclusión

Después de leer sobre varios tipos de shell diferentes en este artículo, tiene una mejor visión general de los shells de Linux disponibles. Existen otros shells para casos de uso específicos, y cada tipo de shell aborda diferentes problemas.


Linux
  1. ¿Cuáles son los diferentes tipos de shells en Linux?

  2. UNIX/Linux:¿Qué es un shell? ¿Cuáles son las diferentes conchas?

  3. rbash – Establecer shell restringido en Linux

  4. linux shell wc -c cuenta caracteres +1

  5. Linux =¿Hay algo como un Shell de Java en lugar de otros shells de Linux?

Shells populares de código abierto en Linux

Cómo cambiar un Shell de usuario en Linux

Explicación del comando fuente en Linux

Resumen de shell de Linux:15 shells de Linux de código abierto más populares

¿Qué es Subshell en Linux?

¿Qué es Login Shell en Linux?