=========================================
Diferencias finales entre Shells de UNIX®
=========================================
Este tutorial es una obra en progreso
Contenidos
Introducción
Shell de Thompson
Shell de Bourne
Shell C
Otros Shells
Conclusión
Introdución
Los Intépretes de comandos (shells) de UNIX descriptos en este tutorial
incluyen a: Osh (un porte del shell de Thompson), sh (y los shells
similares a sh), csh (y shells similares a csh) y otros.
¿Cuáles son las diferencias críticas y/o similaridades entre varios
shells de UNIX? Las diferencias generalmente se refieren a sus
particularidades de sintaxis en la línea de comandos.
En las siguientes secciones, cada línea de comando de ejemplos está
nomenclada por "Ecl [123]:". Podrá tener una idea de cómo difiere el
shell comparando el "Ecl [123]:" de cada sección contra su
correspondiente Ecl [123]:" en las otras secciones.
Las similaridades entre los shells de UNIX descriptos en este tutorial
son más importantes que sus diferencias. Esto se debe al hecho de que
cuando aprende cómo usar un shell, en efecto también está aprendiendo
cómo utilizar los otros. En esencia, cada uno de los shell juega el
mismo rol desde el punto de vista del usuario. Ese rol es el de actuar
como una inferfaz de funcionalidad disponible en el sistema operativo
UNIX.
Shell de Thomson
En la historia de UNIX, el shell de Thompson precede al Shell de Bourne
y al shell de C, y su lenguaje de comandos es un subconjunto de dichos
shells. El flujo de control en el shell de Thomson está implementado via
if(1) y goto(1), los cuales son utilidades externas al shell. Sin
embargo, el control de flujo en los shell de Bourne y C ya están
incorporado en cada shell.
Un porte mejorado del shell de Thomshon está disponible en la SDF en
'/usr/pkg/bin/osh'. Puede leer su manual ejecutando 'man osh' en el
prompt de comandos. También puede leer su manual en línea si prefiere
hacerlo.
% if -r /netbsd echo /netbsd: Is readable ; \
if -w /netbsd echo /netbsd: Is writable
/netbsd: Is readable
..
Note que el comando 'setenv' indicado arriba no está disponible en el
Shell de Thompson original. Este es sólo una de las mejoras de osh.
¿Deseamos decir algo sobre el shell PWB?
Shell de Bourne
Este incluye el shell de Bourne original, sus derivados, y aquellos que
operan de forma similar. Un shell de Bourne verdadero, o un shell
similar a Bourne sirve típicamente como un intérprete de comandos en la
mayoría de los sistemas UNIX.
Encontrará un shell que opera de manera similar al shell de Bourne en la
SDF en '/bin/sh', También puede leer su manual ingresando 'man sh' en el
prompt de comandos. También puede leer su manual en línea si prefiere
hacerlo así.
$ ls -l `which sh ksh bash`
-r-xr-xr-x 1 root wheel 298431 Oct 24 2005 /bin/ksh
-r-xr-xr-x 1 root wheel 199717 Oct 24 2005 /bin/sh
-rwxr-xr-x 1 root wheel 963696 Jun 4 08:57 /usr/pkg/bin/bash
Ecl 3:
$ if test -r /netbsd ; then echo /netbsd: Is readable ; fi ; \
> if test -w /netbsd ; then echo /netbsd: Is writable ; fi
/netbsd: Is readable
Shell C
Este incluye al Shell C original, sus derivados, y aquellos que operan
en forma similar.
El Shell C está disponible en la SDF como '/bin/csh'. Puede leer su
manual ejecutando 'man csh' en el prompt de comandos. También puede leer
su manual en línea si prefiere hacerlo así.
% ls -l `which csh tcsh zsh`
-r-xr-xr-x 1 root wheel 214333 Oct 24 2005 /bin/csh
-r-xr-xr-x 1 root wheel 459408 Jun 29 2005 /usr/pkg/bin/tcsh
-r-xr-xr-x 2 root wheel 6352 May 11 2007 /usr/pkg/bin/zsh
Ecl 3:
% if (-r /netbsd) echo /netbsd: Is readable ; \
if (-w /netbsd) echo /netbsd: Is writable
/netbsd: Is readable
Otros shells
¿Se necesita esta sección?
Esta sección incluirá información sobre el Shell Z, rc (el Shell AT&T
Plan 9) y otros Shells de UNIX que no caen en ninguna de las categorías
anteriores.
Conclusión
Extenderse en las diferencias/similitudes en vista del contenido
precedente. Una de las cosas importantes a notar es que a pesar de que
existen diferencias, las similaridades son más importantes en mi
opinión. Después de todo, son las similaridades las que permiten al
usuario cambiar de un shell a otro con poca dificultad.