% Linux Installation and Getting Started    -*- TeX -*-
% shells.tex
% Copyright (c) 1992, 1993 by Matt Welsh, Larry Greenfield and Karl Fogel
%
% This file is freely redistributable, but you must preserve this copyright 
% notice on all copies, and it must be distributed only as part of "Linux 
% Installation and Getting Started". This file's use is covered by
% the copyright for the entire document, in the file "copyright.tex".

% Traduccion realizada por Eduardo Lluna Gil. Envie sus comentarios a:
%            Eduardo Lluna Gil, 2:346/207.8 (FidoNet)
%            elluna@aii.upv.es (InterNet)
% $Log: shells.tex,v $
% Revision 0.5.0.1  1996/02/10 23:45:15  rcamus
% Primera beta publica
%
%

\section{Tipos de int\'erpretes de comandos}
\index{shell!int\'erpretes de comandos}
\index{int\'erpretes de comandos|(}

Como hemos mencionado anteriormente en numerosas ocasiones, UNIX es un
sistema operativo multitarea y multiusuario. La multitarea es {\em muy\/}
\'util, y una vez la haya probado, la usar\'a continuamente. En poco tiempo
podr\'a ejecutar programas ``de fondo'', conmutar entre m\'ultiples tareas y
``entubar'' programas unos entre otros para conseguir resultados complejos
con un \'unico comando.

Muchas de las caracter\'{\i}sticas que trataremos en esta secci\'on son
proporcionadas por el int\'erprete de comandos. Hay que tener cuidado en no
confundir UNIX (el sistema operativo) con el int\'erprete de comandos-- este
\'ultimo, es un interface con el sistema que hay debajo. El int\'erprete de
comandos proporciona la funcionalidad sobre el UNIX.

\index{int\'erpretes de comandos!definici\'on}
El int\'erprete de comandos no es solo un int\'erprete interactivo de los
comandos que tecleamos, es tambi\'en un potente lenguaje de programaci\'on, el
cual permite escribir {\bf guiones}, que permiten juntar varias \'ordenes
en un fichero. Los usuarios de MS-DOS reconoceran esto como los
ficheros ``batch''. El uso de los guiones del int\'erprete de comandos es 
una herramienta muy potente que le permitir\'a automatizar e incrementar 
el uso de UNIX. Ver la secci\'on~\ref{sec-shell-script} para m\'as 
informaci\'on.

\index{int\'erpretes de comandos!Bourne shell}
\index{int\'erpretes de comandos!C shell}
\index{Bourne shell}
\index{C Shell (csh)@C Shell ({\tt csh})}
\index{/bin/sh@{\tt /bin/sh}}
\index{/bin/csh@{\tt /bin/csh}}
Hay varios tipos de int\'erpretes de comandos en el mundo UNIX. Los dos m\'as
importantes son el ``Bourne shell'' y el ``C shell''. El int\'erprete de 
comandos Bourne, usa una sintaxis de comandos como la usada en los 
primeros sistemas UNIX, como el System III. El nombre del int\'erprete 
Bourne en la mayor\'{\i}a de los UNIX es {\tt /bin/sh} (donde {\tt sh} 
viene de ``shell'', int\'erprete de comandos en ingl\'es). El int\'erprete 
C usa una sintaxis diferente, a veces parecida a la del lenguaje de 
programaci\'on C, y en la mayor\'{\i}a de los sistemas UNIX se encuentra 
como {\tt /bin/csh}.

\index{int\'erpretes de comandos!Bourne again shell}
\index{Bourne again shell}
\index{bash@{\tt bash}}
\index{/bin/bash@{\tt /bin/bash}}
\index{Tcsh}
\index{/bin/tcsh@{\tt /bin/tcsh}}
\index{tcsh@{\tt tcsh}}
Bajo Linux hay algunas diferencias en los int\'erpretes de comandos
disponibles. Dos de los m\'as usados son el ``Bourne Again Shell'' o 
``Bash'' ({\tt /bin/bash}) y Tcsh ({\tt /bin/tcsh}). Bash es un 
equivalente al Bourne con muchas caracter\'{\i}sticas avanzadas de la C 
shell. Como Bash es un superconjunto de la sintaxis del Bourne, cualquier 
gui\'on escrito para el int\'erprete de comandos Bourne standard 
funcionar\'a en Bash. Para los que prefieren el uso del int\'erprete de 
comandos C, Linux tiene el Tcsh, que es una versi\'on extendida del C 
original.

El tipo de int\'erprete de comandos que decida usar es puramente una cuesti\'on
de gustos. Algunas personas prefieren la sintaxis del Bourne con
las caracter\'{\i}sticas avanzadas que proporciona Bash, y otros 
prefieren el m\'as estructurado int\'erprete de comandos C. En lo que 
respecta a los comandos usuales como {\tt cp}, {\tt ls}..etc, es 
indiferente el tipo de int\'erprete de comandos usado, la sintaxis es la 
misma. Solo, cuando se escriben guiones para el int\'erprete de comandos, 
o se usan caracter\'{\i}sticas avanzadas aparecen las diferencias entre 
los diferentes int\'erpretes de comandos.

Como estamos discutiendo sobre las diferencias entre los int\'erpretes de
comandos Bourne y C, abajo veremos esas diferencias. Para los prop\'ositos de
este manual, la mayor\'{\i}a de las diferencias son m\'{\i}nimas.
(Si eres realmente curioso a este respecto, lee las p\'aginas de manual para
{\tt bash} y {\tt tcsh}).

\index{int\'erpretes de comandos|)}
