Recapitulando el artículo anterior, El Shell de Unix – Linux, una shell es un intérprete de comandos, es la aplicación que permite al usuario comunicarse con el sistema operativo y darle órdenes. Existen varias shells:
o Bourne Shell (sh) – La shell clásica que se encuentra en todos los sistemas UNIX.
o Korn Shell (ksh)
o C Shell (csh)
o Bourne Again Shell (bash) – La shell de GNU que se encuentra en todos los sistemas Linux y en muchos otros UNIX.
La shell no solo es capaz de interpretar comandos, puede programarse usando ficheros de texto que ésta interpretará, se llaman scripts y la shell ofrece construcciones y facilidades para llevar a cabo su programación. Los scripts de shell son muy útiles para ciertos tipos de tareas:
o Tareas administrativas: algunas partes de los sistemas UNIX son scripts de shell, para poder entenderlos y modificarlos es necesario tener alguna noción sobre la programación de scripts.
o Tareas tediosas que solo se van a ejecutar una o dos veces, no importa el rendimiento del programa resultante pero si conviene que su programación sea rápida.
o Hacer que varios programas funcionen como un conjunto de una forma sencilla.
o Pueden ser un buen método para desarrollar prototipos de aplicaciones más complejas que posteriormente se implementarán en leguajes más potentes.
o Conocer a fondo la shell aumenta tremendamente la rapidez y productividad a la hora de usarla, incluso fuera de los scripts.
• Si un script de shell se queda pequeño para lo que queremos hacer, existen otros lenguajes interpretados mucho más potentes como Perl, TCL o Python.
Bourne Again Shell – Bash

En la wikipedia nos da una muy buena definición de esta shell:
bash es un shell de Unix (intérprete de órdenes de Unix) escrito para el proyecto GNU. Su nombre es un acrónimo de bourne-again shell (otro shell bourne) — haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros intérpretes importantes de Unix.
Hacia 1978 el intérprete Bourne era el intérprete distribuido con el Unix Version 7. Stephen Bourne, por entonces investigador de los Laboratorios Bell, escribió el intérprete Bourne original. Brian Fox escribió el intérprete bash en 1987. En 1990, Chet Ramey se convirtió en su principal desarrollador. bash es el intérprete predeterminado en la mayoría de sistemas GNU/Linux, además de Mac OS X Tiger, y puede ejecutarse en la mayoría de los sistemas operativos tipo Unix.
Los comandos básicos de esta shell son:
ls: lista el contenido de un directorio. Sintaxis: ls [opciones] [nombre_del_directorio]; por ejemplo:
$ ls -l mi_directorio ( la opción “-l” listará los archivos de “mi_directorio” más la información detallada de cada uno, como nobre largo,usuarios dueños,permisos del mismo, etc.).
cp: permite copiar archivos y directorios. Sintaxis: cp [opciones] [archivo_original] [archivo_destino]; por ejemplo:
$ cp -v archivo_original archivo_destino (la opción “-v” muestra información mientras copia el archivo).
cd: cambia nuestra ubicación actual hacia otro directorio elegido. Sintaxis: cd [directorio]; por ejemplo:
[usuario@localhost home/]$ cd / (no tiene opciones, en este ejemplo estamos parados en nuestro directorio personal “home/” y pasaremos al directorio raíz “/”).
mkdir: este comando permite crear directorios. Sintaxis: mkdir [opciones] [directorio_nuevo]; por ejemplo:
$ mkdir mi_directorio (tiene dos opciones básicas: “-m” que asigna los permisos especificados al directorio y “-p” que crea directorios emparentados en caso de que no existan).
mv: modifica el nombre de los archivos y directorios moviéndolos de una ubicación a otra. Sintaxis: mv [opciones] [archivo_ o_directorio_fuente] [archivo_o_directorio_destino]; por ejemplo:
$ mv -v mi_directorio otro_directorio (la opcion “-v” pregunta antes de sobreescribir los archivos existentes).
rm: elimina uno o más archivos. Sintaxis: rm [opciones] [archivos]; por ejemplo:
$ rm -v archivos (la opción “-v” muestra el nombre de cada archivo antes de eliminarlo).
rmdir: elimina un directorio, si esta vacío. Sintaxis: rmdir [opciones] [directorio]; por ejemplo:
$ rmdir mi_directorio (tiene una opción básica: “-p” elimina cualquier directorio emparentado que este vacío).
cat: muestra el contenido de un archivo en pantalla (salida estándar). Sintaxis: cat [opciones] [archivos]; por ejemplo:
$ cat -e archivo (la opción “-e” muestra el final de una linea y todos los caracteres no imprimibles).
chmod: modifica los permisos de archivos o directorios. Sintaxis: chmod [opciones] [permisos] [archivo]; por ejemplo:
$ chmod a+rw mi_archivo (hay 3 permisos básicos en los archivos y directorios, estos son r: lectura, w:escritura, y x: ejecución -solo se da este permiso para archivos posibles de ejecutarse como los scripts- en éste ejemplo damos permisos de lectura y escritura a “mi_archivo”, si suplantamos el “+” por un “-” negamos permisos, la opcion “a” se refiere a todos, si usamos “u” al usuario actual, “g” al grupo de usuarios y “o” se refiere a otros).


Comentarios recientes