Objective-C: El Shell Bash
Hoy les introduciré a uno de los temas más importantes en el ámbito de la programación en Objective-C, me refiero al manejo de Bash (Bourne Again Shell – Otro Shell Bourne) de GNU. Este Shell es el que proporcionan por defecto muchos sistemas UNIX entre ellos Mac OS X o Linux. Los ejemplos mostrados en esta guía, serán presentados sobre Mac OS X, pero debido a la interoperatividad que caracteriza a Bash, estos ejemplos deberían ser exactamente igual de útiles en otros sistemas UNIX. Cuando existan diferencias las indicaremos para que usuarios de otros sistemas puedan seguir correctamente este documento.
Antes de continuar, debo dejar claros algunos puntos que considero de interés. En primer lugar, este curso sobre Objective-C no es un curso del tipo Raw-In (Expreso), sino que la primera parte del mismo tomará aproximadamente un mes. Por otra parte, como dije previamente estos post están pensados en primera instancia para programadores o personas con ciertas nociones básicas de programación. Sin embargo, cualquiera puede programar en Objective-C (siempre y cuando se interese por hacerlo), si en principio algunos términos y palabras parecerán extraños, les aseguro que al final del mes les serán más familiares que sus mascotas. Dicho esto….adelante!
Reseña Histórica
Su nombre es un acrónimo de bourne-again shell (otro shell bourne) el cual es un juego de palabras (born-again) que 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 versión 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 (desde la versión 10.2), y puede ejecutarse en la mayoría de los sistemas operativos tipo Unix. También se ha llevado a Microsoft Windows por el proyecto Cygwin.
¿Qué Shell estamos usando?
Si queremos saber que versión del shell tenemos instalada, procedemos a usar el siguiente comando:
$ echo $SHELL
/bin/Bash
Este comando nos indica que shell estamos usando y en que unidad está instalado.
Si queremos conocer la versión de Bash podemos usar el comando:
$ echo $BASH_VERSION
2. 05b .01 (1)-release
También podemos saber donde está instalado Bash con el comando:
$ whereis bash
/bin/bash
Puedes saber cuales son los shell de los que dispones en tú máquina, utilizando el siguiente comando:
$ cat /etc/shells
/bin/bash
/bin/csh
/bin/sh
/bin/tcsh
/bin/zsh
Si por alguna razón no está usando Bash, pero lo tiene instalado (o lo acaba de instalar) en su máquina, puede hacer que Bash sea el shell por defecto de su cuenta con el comando:
$ chsh -S /bin/Bash
Si prefiere usar una versión más moderna de shell de la que viene pre instalada en Mac OS X puede bajársela del proyecto Fink:
$ fink list Bash
Information about 4975 packages read in 12 seconds.
Bash 3.0-2 The GNU Bourne Again Shell.
Bash-completion 20041017-1 Command-line completions…
Bash-doc 3.0-1 Extra documentation for…
$ fink install bash
Y cambiar a este shell con:
$ chsh -s /sw/bin/Bash
Pero antes deberás introducir este shell en
/etc/shells, de lo contrario chsh no se lo aceptará como un shell valido.
Si ahora nos logueamos de nuevo con el comando login y preguntamos por la versión de Bash:
$ echo $BASH
/sw/bin/Bash
$ echo $BASH_VERSION
3.00.0 (1)-release
Puede verse que estamos usando la versión 3.00 de Bash, esta versión será la que usaremos a lo largo de toda esta guía, por dicha razón recomiendo que actualicen sus versiones para que no hayan problemas en el futuro a la hora de realizar los ejemplos.
Por hoy es todo, pero mañana continuaremos, cualquier duda respecto a lo expuesto exprésala en los comentarios.
Nota: Esta guía es una colaboración de Fernando López Hernández y www.macprogramadores.org para applediario.
Teo
7 abril, 2008Motivacion, motivacion, motivacion.