Saltar al contenido principal
Página

Tema 2.1 - Conociendo el Shell de Linux

LINUX SHELL

El intérprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre inglés shell, que significa caparazón.

  • El shell es básicamente un programa cuya función es tomar los comandos u órdenes que ingresamos usando el teclado, interpretar esas órdenes y enviarlas al sistema operativo para que las ejecute.
  • El shell es un programa de usuario proporcionado para la interacción del usuario.
  • Es un intérprete de lenguaje de comandos que ejecuta comandos leídos desde el dispositivo de entrada estándar, como el teclado o un archivo.
  • El shell se inicia cuando inicia sesión o abre una consola (terminal).
  • Forma rápida de ejecutar utilidades.
  • El shell no es parte del núcleo del sistema, pero usa el núcleo del sistema para ejecutar programas, crear archivos, etc.


Hay varios shells disponibles para Linux que incluyen:

  • BASH ( Bourne-Again SHell ): el shell más común en Linux. Es de código abierto.
  • CSH ( shell C ) - sintaxis y el uso de la cáscara de C son muy similares al lenguaje de programación C.
  • KSH ( Korn SHell ): creado por David Korn en AT & T Bell Labs . El Korn Shell también fue la base para las especificaciones estándar POSIX Shell.
  • TCSH : es una versión mejorada pero totalmente compatible del shell Berkeley UNIX C ( CSH ).


Tenga en cuenta que cada shell hace el mismo trabajo, pero cada uno comprende una sintaxis de comando diferente y proporciona diferentes funciones integradas. En MS-DOS , el nombre del shell es COMMAND.COM, que también se usa para el mismo propósito, pero no es tan poderoso como nuestros shells de Linux.


Funcionamiento general del shell

El lenguaje shell es un lenguaje interpretado, en el que se leen líneas de texto (terminadas en \n), se analizan y se procesan. Las líneas a interpretar son leídas de:

  • La entrada estándar (teclado por defecto). En este caso el shell se dice que es un shell interactivo.
  • Un fichero shell-script.
  • Los argumentos, con la opción -c al ejecutar el shell. Ejemplo: bash –c "ls –l"

Con las líneas leídas, el shell realiza los siguientes pasos (en este orden):

  1. Se dividen las líneas en distintos elementos: palabras y operadores. Los elementos se separan usando espacios, tabuladores y operadores. El carácter # sirve para incluir un comentario, que se elimina del procesamiento.
  2. Se distingue entre comandos simples, comandos compuestos y definiciones de función.
  3. Se realizan distintas expansiones y sustituciones (ver más adelante). Se detecta el comando a ejecutar y los argumentos que se le van a pasar.
  4. Se realizan las redirecciones de entrada/salida y se eliminan los elementos asociados a las redirecciones de la lista de argumentos. Las redirecciones de entrada/salida ya se han explicado en un tema anterior (si desea ampliar información, consulte el anexo).
  5. Se ejecuta el elemento ejecutable, que podría ser una función, un comando interno del shell, un fichero ejecutable o un shell-script, pasando los argumentos como parámetros posicionales (ver más adelante).
  6. Opcionalmente, se espera a que termine el comando y se guarda el código de salida.


Opciones del Shell

El shell proporciona varias opciones a la hora de digitar los comandos, tales como:



Características del Shell

Flujos: El shell le otorga a cada programa en ejecución 3 flujos: Entrada Estándar (teclado, archivo, dispositivo E/S), Salida Estándar (terminal, archivo, dispositivo E/S) y Error Estándar (terminal, archivo, dispositivo E/S).

Ejecución del Shell: Una vez que usted se ha registrado en la consola virtual, el sistema carga el intérprete de comandos en memoria. Éste lee primero el archivo /etc/profile que contiene la configuración común del entorno para todo el sistema y sus usuarios, luego lee el archivo .bash_profile ubicado en el directorio home del usuario recien ingresado.

Capitalización de las Letras: Recordemos que siempre los comandos y parámetros en GNU/Linux son "case sensitive", que quiere decir que "algo" no es igual a "ALGO" u "AlGo".

Historial de Comandos: El archivo .bash_history es un archivo de historial con todos los comandos utilizados por el usuario y como es lógico se encuentra en el directorio home de dicho usuario. Éste archivo aloja una cantidad de comandos definida previamente. Se accede al historial por medio de las teclas FLECHA ARRIBA y FLECHA ABAJO.

Si necesita escribir una cantidad excesivamente grande de parámetros y ha llegado al final de la linea de comandos, puede hacer uso del simbolo "\" seguido de un "enter" para poder continuar con la escritura de dichos parametros en la linea siguiente y también sirve para ver que escribimos anteriormente.

Completado de Linea: Se puede hacer que el shell complete la linea de comandos cuando se introduzcan las primeras letras y se presione la tecla TAB. También se puede utilizar esta propiedad para expandir la ruta a un directorio determinado.

Ejemplo: cd /ho (presionamos TAB) y el shell nos devolverá /home/



¿Cómo encuentro mi nombre actual de Shell?

Para encontrar todos los shells disponibles en su sistema, escriba el siguiente comando

cat /etc/shells



En caso de que el archivo /etc/shells tenga más de un shell en la lista, significa que su plataforma admite más de un shell.


Shell Bash

Bash es un intérprete de comandos que ejecuta, una por una, las instrucciones introducidas por el usuario o contenidas en un script y devuelve los resultados. En otras palabras, actúa como interfaz entre el kernel Linux y los usuarios o programas del modo texto. Además, incorpora numerosas utilidades de programación y mejoras sobre sh, su shell predecesora. Debido a que es una herramienta desarrollada por GNU, suele ser utilizada por defecto en las distribuciones actuales.

Características

  • Desarrollado por el proyecto GNU .
  • El shell de Linux predeterminado.
  • Compatible con versiones anteriores del shell sh UNIX original.
  • Bash es en gran medida compatible con sh e incorpora características útiles de Korn shell ksh y C shell csh.
  • Bash es el shell predeterminado para Linux . Sin embargo, se ejecuta en todas las versiones de Unix y en algunos otros sistemas operativos, como las plataformas ms-dos , os / 2 y Windows


Características especiales

  • Posibilidad de llamar al intérprete BASH con una serie de opciones que modifican su comportamiento normal.
  • Mandatos para creación de programas interactivos.
  • Control de trabajos y gestión de señales.
  • Manipulación y personalización del punto indicativo.
  • Soporte de alias de comandos.
  • Gestión del histórico de órdenes ejecutadas.
  • Edición de la línea de mandatos.
  • Manipulación de la pila de últimos directorios visitados.
  • Intérprete de uso restringido, con características limitadas.
  • Posibilidad de trabajar en modo compatible con la norma POSIX 1003.2


Última modificación: lunes, 11 de mayo de 2020, 22:11