You are on page 1of 3

Linux - Shell

Introduccin a la shell
El intrprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razn, se le da el nombre ingls "shell", que significa "caparazn".

Por lo tanto, la shell acta como un intermediario entre el sistema operativo y el usuario gracias a lneas de comando que este ltimo introduce. Su funcin es la de leer la lnea de comandos, interpretar su significado, llevar a cabo el comando y despus arrojar el resultado por medio de las salidas. La shell es un archivo ejecutable que debe interpretar los comandos, transmitirlos al sistema y arrojar el resultado. Existen varios shells. La ms comn es sh (llamada "Bourne shell"), bash ("Bourne again shell"), csh ("C Shell"), Tcsh ("Tenex C shell"), ksh ("Korn shell") y zsh ("Zero shell"). Generalmente, sus nombres coinciden con el nombre del ejecutable. Cada usuario tiene una shell predeterminada, la cual se activar cuando se abra un indicador del comando. La shell predeterminada se especifica en el archivo de configuracin /etc/passwd en el ltimo campo de la lnea que corresponde al usuario. Es posible cambiar de shell durante una sesin. Para esto, slo debe ejecutar el archivo ejecutable correspondiente, por ejemplo:
/bin/bash

Indicador del sistema


La shell se inicia al leer su configuracin completa (en un archivo del directorio /etc/) y despus al leer la configuracin propia del usuario (en un archivo oculto cuyo nombre comienza con un punto y que se ubica en el directorio bsico del usuario, es decir /home/user_name/.configuration_file). A continuacin, aparece el siguiente indicador (prompt en ingls):
equipo:/directorio/actual$

De manera predeterminada, para la mayora de las shells, el indicador consiste en el nombre del equipo, seguido de dos puntos (:), el directorio actual y despus un carcter que indica el tipo de usuario conectado:

"$" especifica un usuario normal "#" especifica el administrador, llamado "root"

El concepto de lnea de comandos


Una lnea de comandos es una cadena de caracteres formada por un comando que corresponde a un archivo ejecutable del sistema o, ms bien, un comando de shell como as tambin argumentos opcionales (parmetros):
ls -al /home/jf/

En el comando anterior, ls es el nombre del comando, -al y home/jean-francois/ son argumentos. Los argumentos que comienzan con - se denominan opciones. Por lo general, para cada comando, hay una cierta cantidad de opciones que se pueden detallar al introducir uno de los siguientes comandos:
comando --help comando -? man comando

Entrada-salida estndar
Una vez que se ejecuta un comando, se crea un proceso. Este proceso abre tres flujos:

stdin, denominado entrada estndar, en cuyo caso el proceso lee los datos de entrada. De manera predeterminada, stdin se refiere al teclado. STDIN se identifica con el nmero 0. stdout, denominado salida estndar, en cuyo caso el proceso escribe los datos de salida. De manera predeterminada, stdout se refiere a la pantalla. STDOUT se identifica con el nmero 1. stderr, denominado error estndar, en cuyo caso el proceso escribe los mensajes del error. De manera predeterminada, stderr se refiere a la pantalla. STDERR se identifica con el nmero 2.

Por lo tanto, de manera predeterminada, cada vez que se ejecuta un programa, los datos se leen desde el teclado y el programa enva su salida y sus errores a la pantalla. Sin embargo, tambin es posible leer datos desde cualquier dispositivo de entrada, incluso desde un archivo, y enviar la salida a un dispositivo de visualizacin, un archivo, etc.

Tuberas de comunicacin
Las tuberas (en ingls "pipes") (literalmente tuberas) son mecanismos de comunicacin especficos para todos los sistemas UNIX. Una tubera, simbolizada por una barra vertical (carcter "|"), permite asignar la salida estndar de un comando a la entrada estndar de otro, de la misma forma en que una tubera permite la comunicacin entre la entrada estndar de un comando y la salida estndar de otro. En el siguiente ejemplo, la salida estndar del comando ls -al se enva al programa sort, el cual debe extraer el resultado en orden alfabtico.
ls -al | sort

Esto permite conectar una cierta cantidad de comandos a travs de sucesivas tuberas. En el siguiente ejemplo, el comando muestra todos los archivos del directorio actual, selecciona las lneas que contienen la palabra "zip" (utilizando el comando grep) y cuenta la cantidad total de lneas:

You might also like