sábado, 8 de septiembre de 2012

Entendiendo el Shell - Parte 1

Esta será una pequeña serie de varios post para introducir los conceptos básicos y prácticos del Shell. Enfocado en los principiantes, veremos varios puntos importantes que quizás ya concen y otras características del Shell y Bash que probablemente eran desconocidas para muchos. Espero sea de su agrado y edificación.

Para poder ejecutar comandos en un sistema tipo Unix como lo es GNU/Linus, necesitamos de un "lugar" para escirbirlos. Ese lugar es llamado el Shell, el cual es la interfaz de línea de comandos de Linux. Escribirmos un comando, presionamos Enter, y el Shell ejecuta cualquier programa o programas requerido. Por ejemplo, para ver quién está logueado, podemos ejecutar el siguiente comando en un Shell:
fraterneo@rainbow2 ~ $ who
laisha    tty8         2012-09-08 16:58 (:0)
fraterneo pts/0        2012-09-08 21:01 (rainbow.local)
fraterneo pts/2        2012-09-08 21:14 (192.168.24.102)

Un solo comando puede invocar muchos programas al mismo tiempo, e incluso conectar programas para que interactúen. Como vemos en el siguiente ejemplo, haciendo uso de una tubería (pipe) podemos redireccionar la salida del comando who para que sea la entrada del comando wc, el cual cuenta las líneas de texto en un archivo; el resultado es el número de líneas que tiene la salida del comando who:
fraterneo@rainbow2 ~ $ who | wc -l
3

Lo que nos da una idea de los usuarios logueados actualemnte, aunque no es muy preciso ya que un usuario podría tener más de un Shell en ejecución. El Shell por defecto en la mayoría de distribuciones GNU/Linux es Bash (/bin/bash). El Shell versus los programas Cuando ejecutamos un comando éste invoca un programa, como en el caso de who, o en su defecto podría ser un comando interno de Bash. Podemos ver la diferencia haciendo uso del comando type:
fraterneo@rainbow2 ~ $ type who
who is /usr/bin/who
fraterneo@rainbow2 ~ $ type cd
cd is a shell builtin

No hay comentarios:

Publicar un comentario