Shell


En Unix existen varios interpretes de comandos como:

			Bourne Shell
			C Shell
			Korn Shell
y varios más, aquí solo veremos algunas características de c-shell.

Este interprete tiene la característica de llevar una historia de los comando realizados:

moises@tonatiuh% history
. . .
    58	more folder
    59	cat dos tres > & err
    60	cat err
    61	history
    62	man man
    63	history

Esto evita volver a teclear los comandos que se deseen repetir y solo se indica que comando se requiere ejecutar nuevamente.

Así, con "!!" repite el último comando, con "!#" se repite el # (número) de comando indicado o también con "!" y las primeras letras de un comando.


moises@tonatiuh% !!

moises@tonatiuh% !60

moises@tonatiuh% !man


También se pueden definir variables que permitan evitar el teclear una línea grande constantemente.

Definamos la variable "tarea1" que tiene la ruta de un directorio:

moises@tonatiuh% setenv tarea1 ~/curso/linux

Para ver el contenido de la variable usamos:
moises@tonatiuh% echo $tarea1
/home/moises/curso/linux

Y para usarla se realiza:
moises@tonatiuh% cd $tarea1
/home/moises/curso/linux

Esta facilidad también la usa el sistema operativo para definir variables que indiquen como esta definido el ambiente del usuario, las rutas donde se encuentra el software, las librerías para ejecutar programas o compilar, etc.

Algunas de estas variables son:

moises@tonatiuh% setenv | more
DISPLAY=:0.0
HOME=/home/moises
MANPATH=/usr/man:/usr/openwin/man:/opt/SUNWspro/man:/usr/local/man:
/usr/localTeX/man:/opt/skyview/man
OPENWINHOME=/usr/openwin
PATH=/bin:/usr/bin:/usr/sbin:/etc:/usr/openwin/bin:/usr/ccs/bin:
/opt/SUNWsprobin:/usr/ucb:/usr/local/bin:/usr/local/TeX/bin
:/opt/algor/bin:/opt/skyview/bin:/usr/local/hotmetal/bin:/local/bin:
/home/moises/bin:/home/moises:.
LD_LIBRARY_PATH=/usr/openwin/lib:/opt/SUNWspro/lib:/usr/local/lib
:/opt/midas/5NOV/lib:/usr/dt/lib
. . .

En muchas ocasiones no solo tenemos que ejecutar un comando, más bien una serie de comandos. Para evitar posibles errores al momento de teclear, se pueden definir "alias", es decir, una palabra que contenga la cadena de comandos que frecuentemente usamos.

Algunos alias definidos por default son los siguientes, donde la primera columna indica el alias y la segunda los comandos a realizar:

moises@tonatiuh% alias
XT	xterm -g 80x44 -fn lucidasans-typewriter-14 -sb &
bye	clear;logout
cd	cd !*;echo $cwd
la	ls -a
ll	ls -la
ls	ls -F
xr	xhost !* ; rlogin !*

Los shell no solo son interpretes, también se les considera lenguajes de programación porque podemos definir variables y realizar ciclos. El siguiente ejemplo lo pueden usar para bajar a su cuenta las imágenes FITS de una cinta DAT o EXABYTE. Solo hay que ponerlo en un archivo de texto y cambiarle los permisos con "chmod u+x archivo".
moises@tonatiuh% more cintafits
#
mt -f /dev/rmt/0 rew
set indi=1
set tope=101
while ($indi < $tope)
	dd if=/dev/rmt/0n of=mt$indi.fits ibs=2880b
	echo ya lei el No. $indi
	@ indi++
end