Unix / Linux - ¿Qué son Shells?

UN Shellle proporciona una interfaz para el sistema Unix. Recopila información de usted y ejecuta programas basados ​​en esa entrada. Cuando un programa termina de ejecutarse, muestra la salida de ese programa.

Shell es un entorno en el que podemos ejecutar nuestros comandos, programas y scripts de shell. Hay diferentes sabores de un shell, al igual que hay diferentes sabores de sistemas operativos. Cada versión de shell tiene su propio conjunto de funciones y comandos reconocidos.

Indicador de Shell

El aviso, $, que se llama command prompt, es emitido por el shell. Mientras se muestra el indicador, puede escribir un comando.

Shell lee su entrada después de presionar Enter. Determina el comando que desea ejecutar mirando la primera palabra de su entrada. Una palabra es un conjunto ininterrumpido de caracteres. Los espacios y las tabulaciones separan las palabras.

A continuación se muestra un ejemplo sencillo de date comando, que muestra la fecha y hora actuales -

$date
Thu Jun 25 08:30:19 MST 2009

Puede personalizar su símbolo del sistema utilizando la variable de entorno PS1 explicada en el tutorial de entorno.

Tipos de conchas

En Unix, hay dos tipos principales de shells:

  • Bourne shell - Si está utilizando un shell de tipo Bourne, el $ carácter es el mensaje predeterminado.

  • C shell - Si está utilizando un shell de tipo C, el carácter% es el indicador predeterminado.

Bourne Shell tiene las siguientes subcategorías:

  • Concha de Bourne (sh)
  • Cáscara de Korn (ksh)
  • Bourne Again shell (bash)
  • Cáscara POSIX (sh)

Siguen las diferentes carcasas de tipo C:

  • C shell (csh)
  • Carcasa TENEX / TOPS C (tcsh)

El shell original de Unix fue escrito a mediados de la década de 1970 por Stephen R. Bourne mientras estaba en AT&T Bell Labs en Nueva Jersey.

Bourne shell fue el primer shell que apareció en los sistemas Unix, por lo que se conoce como "el shell".

El shell Bourne generalmente se instala como /bin/shen la mayoría de las versiones de Unix. Por esta razón, es el shell preferido para escribir scripts que se pueden usar en diferentes versiones de Unix.

En este capítulo, cubriremos la mayoría de los conceptos de Shell que se basan en Borne Shell.

Scripts de Shell

El concepto básico de un script de shell es una lista de comandos, que se enumeran en el orden de ejecución. Un buen script de shell tendrá comentarios, precedidos por# firmar, describiendo los pasos.

Hay pruebas condicionales, como que el valor A es mayor que el valor B, bucles que nos permiten pasar por grandes cantidades de datos, archivos para leer y almacenar datos y variables para leer y almacenar datos, y el script puede incluir funciones.

Vamos a escribir muchos guiones en las siguientes secciones. Sería un archivo de texto simple en el que pondríamos todos nuestros comandos y varias otras construcciones requeridas que le dicen al entorno de shell qué hacer y cuándo hacerlo.

Se interpretan los scripts y las funciones de Shell. Esto significa que no se compilan.

Script de ejemplo

Supongamos que creamos un test.shguión. Tenga en cuenta que todos los scripts tendrían el.shextensión. Antes de agregar algo más a su secuencia de comandos, debe alertar al sistema de que se está iniciando una secuencia de comandos de shell. Esto se hace usando elshebangconstruir. Por ejemplo

#!/bin/sh

Esto le dice al sistema que los comandos que siguen deben ser ejecutados por el shell Bourne. Se llama shebang porque el#El símbolo se llama hash y el! El símbolo se llama explosión .

Para crear un script que contenga estos comandos, primero coloque la línea shebang y luego agregue los comandos:

#!/bin/bash
pwd
ls

Comentarios de Shell

Puede poner sus comentarios en su script de la siguiente manera:

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

Guarde el contenido anterior y haga que el script sea ejecutable -

$chmod +x test.sh

El script de shell ahora está listo para ejecutarse.

$./test.sh

Tras la ejecución, recibirá el siguiente resultado:

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

Note - Para ejecutar un programa disponible en el directorio actual, use ./program_name

Scripts de shell extendidos

Los scripts de shell tienen varias construcciones necesarias que le indican al entorno de shell qué hacer y cuándo hacerlo. Por supuesto, la mayoría de los scripts son más complejos que el anterior.

El shell es, después de todo, un lenguaje de programación real, completo con variables, estructuras de control, etc. No importa lo complicado que se vuelva un script, sigue siendo solo una lista de comandos ejecutados secuencialmente.

El siguiente script usa el read comando que toma la entrada del teclado y la asigna como el valor de la variable PERSON y finalmente la imprime en STDOUT.

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

Aquí hay una ejecución de muestra del script:

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$