Introdución al uso de la terminal con Bash

25 de Agosto de 2023 - ed. hace: 11 meses, 3 semanas


Explicación sencilla para iniciar en el mundo de la terminal. Por lo general, la forma mas rápida, eficiente y universal de usar una computadora.


Terminal


  • ¿Que es una terminal?

    En la temprana edad de la computadoras, estas no tenían pantallas, solo disponian de switches, y luces indicadoras. Mientras estas comenzaron a volverse mas sofisticadas, se necesitaba de otra forma de comunicar información, mas fácil de leer e interactuar.
    La terminal es una interfáz entre una computadora y el usuario, que se encarga de transcribir datos. Lo que hoy conocemos por terminal es realmente un emulador de terminal. Y nos permite interactuar con la Shell

Video The 8-Bit Guy sobre terminales y dumb terminals (en inglés).


Shell


  • ¿Que es una Shell?

    Basicamente es un programa que nos permite interactuar con el sistema operativo, dar instrucciones o recibir información de este. Recibe el nombre de shell (concha o caparazón) porqué representa la capa mas externa de un sistema operativo.
    Generalmente, un shell es un programa que ejecuta otros programas en respuesta comandos de texto. Una shell sofisticada puede además cambiar en entorno en el cual se ejecutan otros programas, pasando variables nombradas, una lista de parametros o una fuente de entrada.
    Una shell es un lenguaje de comandos interactiva y un lenguaje de scripting.

bash_prompt1


  • Archivos de configuración

    Las shell leen un archivo de configuración en varias circunstancias, estos contienen comandos y son ejecutados al cargar la shell. Generalmente se utlizan para establecer variables importantes que permiten encontrar ejecutables, como $PATH, y otras que controlan el comportamiento y la apariencia de la shell.

¿Existen varios tipos, en que se diferencian las shells?

Existen diferentes tipos de shells en Linux, y cada una de ellas posee particularidades que la hacen altamente eficientes sobre otra shell, para un tipo de uso especifico.

  1. Bourne Shell (sh)

    Desarrollada en AT&T Bell Labs por Steve Bourne, es considerada como la primera shell usada por UNIX. Es popular por ser de naturaleza compacta y rapidez.
    Su mayor desventaja es no tener incomporada funcionalidad para manejar lógica y operaciones aritméticas, y no puede volver a llamar comandos previamente ejecutados. Además de un uso interactivo poco amigable.

  2. GNU Bourne-Again Shell (bash)

    Conocida como Bash shell, desarrollada inicialmente por Brian Fox, para el GNU Project, esta fue diseñada para ser compatible con sh.
    Permite relizar llamados a comandos previamente ejecutados y editarlos utilizando las flechas del teclado. Incluye historial y alias, además de la posibilidad de añadir funcionalidad como Command completion, entre otras.

  3. C Shell (csh)

    Fue creada en la Universadad of California por Bill Joy. Incluye características útiles de lenguages de programación como soporte para operaciones aritméticas y syntaxis similar a lenguaje C.
    Incorpora historial y alias.

  4. Korn Shell (ksh)

    Desarrollada en AT&T Bell Labs por David Korn, con el fin de mejorar sh. Además de soportar todo lo que sh soporta. Incluye soporte para operaciones aritméticas, y características de interactividad similaes a C shell. Ofrece manipulación de Strings, Arrays y funciones, similar al lenguaje C. Puede correr scripts creados para C shell, y es más rápida que la mayoría de otras shells, inclusive que esta última.

  5. Z Shell (zsh)

    Creada en Princeton University por Paul Falstad. Es una extensión de sh, con muchas mejoras y opciones de personalización. Posee características como: Plugins & Themes, indice de funciones incluidas, autocompletado de comando, entre muchas otras.

  6. Existen aún mas shells, sin embargo, estas son las mas "importantes" o típicas, de todas formas vale la pena al menos nombrar las siguientes:

    • Debian Alquimist Shell (dash)
    • Friendly Interactive Shell (fish)
    • The first shell (Lunduke Journal)?

Tabla de shells

Shell Binary Root prompt User prompt
Bourne shell sh # $
GNU Bourne-Again shell bash # $
C shell csh # %
Korn shell ksh # $
Z Shell zsh # %
Debian Alquimist shell dash # $
Friendly Interactive shell fish # >

Bash


¿Que es Bash?

Bash es una unix-shell y un interprete de lenguaje de comandos que, ejecuta comandos leidos desde la entrada estandar o un archivo. Bash además incorpora características útiles de otras shells como Korn, y C shells (ksh y csh). gnu bash.
Es la shell por defecto en la mayoría de distribuciones Linux, como se menciona arriba es un procesador de comandos que corre típicamente en un emulador de terminal, y puede recibir comandos desde un archivo llamado shell script. Soporta globbing (comodines para match), pipping, here-docs (redirection), substitución de comandos, variables y estructuras de control para condiciones de testing e iteración. Además de brace expansion, y 'tab completion' (programable), debugging básico, y manejo de señales (ejm. error, término, kill). Bash es compatible con POSIX, con algunas extensiones.

Prompt típica

 Usuario
 ⏐     Máquina
 ⏐     ⏐   Directorio actual
 ⏐     ⏐   ⏐ Simbolo de usuario común
 ⏐     ⏐   ⏐ ⏐
user@host: ~ $ 
root@host: ~ # 
 ⏐     ⏐   ⏐ ⏐
 ⏐     ⏐   ⏐ Simbolo de usuario root
 ⏐     ⏐   Directorio actual
 ⏐     Máquina
 Usuario

Intro Bash parte 2



  • Categoría(s):
  • Desarrollo

  • Volver al blog