%***********************************************************************
%
%       Spanish Translation by:  Carlos Garcia Arques,
%                                cgarcia@isabel.dit.upm.es
%
%       Revisado (cballard)      Jun 19, 1997
%
%***********************************************************************
\chapter{Hablando con los demás}\label{network-chapter}


\begin{quote}
  ``Una noción fundamental de Usenet es que es una cooperativa.''
  
  Cuando ya van para diez los años que llevo en Usenet, discrepo con
  lo anterior.  La noción fundamental de Usenet es el insulto airado.\\
  \raggedleft Chuq Von Rospach
\end{quote}

Los modernos sistemas operativos tipo \unix\ son muy buenos a la hora
de hablar con otras máquinas y funcionar en red.  Dos máquinas \unix\ 
diferentes pueden intercambiar información de muchas, muchas maneras
distintas.  Este capítulo va a intentar contar cómo se puede sacar
provecho de esta gran facilidad para la comunicación.

Trataremos de cubrir el correo electrónico, las noticias de Usenet, y
diversas utilidades básicas de comunicaciones de \unix.

\section{Correo electrónico}

Una de las facilidades más populares que ofrece \unix\ de forma
estándar es el correo electrónico.  Con él evitamos el habitual follón
de buscar un sobre, una hoja de papel, un lápiz, un sello, y un
servicio postal.  A cambio debemos enfrentarnos al follón de pelear
con el ordenador.

\subsection{Enviar correo}

Todo lo que hay que hacer es teclear \cmdln{mail {\sl
    nombre}}\impttindex{mail} y escribir el mensaje.

Por ejemplo, supongamos que queremos enviar correo a un usuario que se
llama {\tt sam}:

\begin{screen}\begin{verbatim}
/home/larry$ mail sam
Subject: Documentacion del usuario
Solo estoy probando el sistema de correo.
[Ctrl-d]
/home/larry$
/home/larry$
\end{verbatim}\end{screen}
% $
    
El programa \cmdnm{mail}\ttindex{mail} es muy simple.  Como
\cmdnm{cat}, acepta texto de la entrada estándar, línea a línea, hasta
que recibe un caracter de fin-de-texto como único carácter en una
línea: \eof.  Así, para enviar nuestro mensaje, tuvimos que pulsar
\ret y después \eof.

Usar \cmdnm{mail} es la manera más rápida de mandar correo, y es
bastante útil cuando se usa con redirección de entrada y/o salida.
Por ejemplo, si quisiéramos enviar por correo electrónico el fichero
\file{report1} a ``Sam'', podríamos escribir \cmdln{mail sam <
  report1}, o incluso \cmdln{sort report1 | mail sam}.

Sin embargo, la desventaja de usar \cmdnm{mail} para enviar correo es
su primitivísimo editor.  !`No se puede cambiar ni una línea una vez
se ha pulsado \ret\,!  Así que yo recomiendo mandar correo (cuando no
se use redirección) con el modo mail del Emacs\index{Emacs}.  El tema
se trata en la Sección~\ref{emacs-mail-mode}.

\subsection{Leer el correo}

\begin{command}
  {\tt mail}\impttindex{mail} [{\sl nombre}]
\end{command}

El programa \cmdln{mail} ofrece una forma algo liosa de leer el
correo.  Si se teclea \cmdln{mail} sin parámetros, aparecerá lo
siguiente:

\begin{screen}\begin{verbatim}
/home/larry$ mail
No mail for larry
/home/larry$
\end{verbatim}\end{screen}
    
``No mail for larry'' significa: No hay correo para {\tt larry}.

Me voy a enviar correo a mí mismo para poder utilizar el lector:

\begin{screen}\begin{verbatim}
/home/larry$ mail larry
Subject: Sapos!
Y ranas!
EOT
/home/larry$ echo "culebras" | mail larry
/home/larry$ mail
Mail version 5.5 6/1/90.  Type ? for help.
"/usr/spool/mail/larry": 2 messages 2 new
>N  1 larry                 Tue Aug 30 18:11  10/211   "Sapos!"
 N  2 larry                 Tue Aug 30 18:12   9/191
&\end{verbatim}\end{screen}
% $
El símbolo petición de órdenes del programa mail es un ``et a la
inglesa'' (\cmdln{\&}).  Acepta un par de órdenes sencillas, y muestra
una breve pantalla de ayuda si se pulsa \cmdln{?} seguido de \ret.

Las órdenes básicas de \cmdnm{mail} son:

\begin{dispitems}
\item [{\tt t} {\sl lista-de-mensajes}] Mostrar los mensajes en la
  pantalla.
\item [{\tt d} {\sl lista-de-mensajes}] Borrar los mensajes.
\item [{\tt s} {\sl lista-de-mensajes} {\sl fichero}] Guardar los
  mensajes en {\sl fichero}.
\item [{\tt r} {\sl lista-de-mensajes}] Responder a los
  mensajes---esto es, comenzar a escribir un nuevo mensaje dirigido a
  quien fuera que envió los mensajes referidos.
\item [{\tt q}] Salir y guardar los mensajes que no hayan sido
  borrados en un fichero llamado \file{mbox} en el directorio raíz del
  usuario.
\end{dispitems}

¿Qué es una {\sl lista-de-mensajes}? Consiste en una lista de números
separados por espacios, o incluso un rango de los mismos como
\cmdln{2-4} (lo que es equivalente a \cmdln{2 3 4}).  Así mismo se
puede introducir el nombre del remitente, de este modo la orden {\tt t
  sam} mostrará todos los mensajes provinientes de Sam.  Si se omite
la lista-de-mensajes, se supone que la orden se refiere al último
mensaje mostrado.

Leer el correo con el programa \cmdnm{mail} presenta varios
inconvenientes.  El primero es que si un mensaje es más largo que la
pantalla, ¡el programa mail no se detiene!  Habrá que guardar el
mensaje en un fichero y usar \cmdnm{more} sobre él después.  El
segundo es que no ofrece una buena interfaz para manejar el correo
antiguo ---cuando se quiere guardar el correo para leerlo más tarde.

Emacs también permite leer el correo con \cmdnm{rmail}, pero este
libro no lo cubre.  Adicionalmente la mayoría de los sistemas Linux
vienen con algunos lectores de correo adicionales además de
\cmdnm{mail}, como \cmdnm{elm}\ttindex{elm}, o
\cmdnm{pine}\ttindex{pine}.

\section{Noticias más que de sobra}

\section{Localizar a la gente}

El programa \cmdnm{finger} permite obtener información de otros
usuarios del sistema y de todo el mundo.  Sin duda el programa
\cmdnm{finger} recibió este nombre por los anuncios de la
AT\&T\index{AT\&T} que exhortaban a la gente a ``salir y tocar a
alguien''.  Dado que el \unix\ tiene sus origenes en la AT\&T,
probablemente eso le hiciera gracia al autor.

\begin{command}
  {\tt finger}\impttindex{finger} [-slpm] [{\sl usuario}][{\sl
@maquina}]
\end{command}

Los parámetros opcionales de \cmdnm{finger} pueden resultar algo
liosos.  La verdad es que no es tan difícil.  Se puede solicitar
información de un usuario local (``{\tt sam}''), información de otra
máquina (``{\tt @lionsden}''), información sobre un usuario remoto
(``{\tt sam@lionsden}''), o simplemente información sobre la máquina
local (nada).

Otra caracteristica es que si se pide información sobre un usuario y
no hay ningún nombre de cuenta que coincida exactamente con el dado,
tratará de emparejar el nombre real con lo que se haya especificado.
Eso significa que si ejecutamos \cmdln{finger Greenfield}, nos
contestará que existe la cuenta {\tt sam} de {\sl Sam Greenfield}.

\begin{screen}\begin{verbatim}
/home/larry$ finger sam
Login: sam                              Name: Sam Greenfield
Directory: /home/sam                    Shell: /bin/tcsh
Last login Sun Dec 25 14:47 (EST) on tty2
No Plan.
/home/larry$ finger greenfie@gauss.rutgers.edu
[gauss.rutgers.edu]
Login name: greenfie                    In real life: Greenfie
Directory: /gauss/u1/greenfie           Shell: /bin/tcsh
On since Dec 25 15:19:41 on ttyp0 from tiptop-slip-6439
13 minutes Idle Time
No unread mail
Project: Debes estar bromeando! de que proyecto me hablas?
No Plan.
/home/larry$ finger
Login    Name                 Tty  Idle  Login Time   Office     Office Phone
larry    Larry Greenfield      1   3:51  Dec 25 12:50
larry    Larry Greenfield      p0        Dec 25 12:51
/home/larry$ 
\end{verbatim}\end{screen}
    
La opción \cmdln{-s} hace que \cmdnm{finger} utilize siempre la forma
abreviada (la que se obtiene normalmente cuando se hace \cmdnm{finger}
a una máquina), y la opción \cmdln{-l} hace que use siempre la forma
larga, incluso al hacer \cmdnm{finger} a una máquina.  La opción
\cmdln{-p} hace que \cmdnm{finger} no muestre los ficheros
\file{.forward}, \file{.plan}, ni \file{.project}, y la \cmdln{-m}
hace que, cuando se ha pedido información sobre un usuario, sólo de
información de un nombre de cuenta ---que no intente emparejar el
nombre que se le da con un nombre real.

\subsection{Planes y proyectos}

Pero, ¿qué es eso de \file{.plan}\ttindex{.plan} y
\file{.project}\ttindex{.project}?  Son ficheros que existen en el
directorio raíz de un usuario y que se muestran cuando se le hace
\cmdnm{finger}.  Cada uno puede crear sus propios ficheros
\file{.plan} y \file{.project} ---la única restricción es que sólo se
muestra la primera línea del fichero \file{.project}.

Además, todo el mundo debe tener permisos de búsqueda (la ``{\tt x}''
de ejecución) del directorio raíz del usuario en cuestión
(\cmdln{chmod a+x \texttilde{}/}) y debe ser posible para todo el
mundo leer los ficheros \file{.plan} y \file{.project} (\cmdln{chmod
  a+r \texttilde{}/.plan \texttilde{}/.project}).

\section{Uso remoto de sistemas}

\begin{command}
  {\tt telnet}\impttindex{telnet} {\sl sistema-remoto}
\end{command}

La forma más habitual de usar un sistema \unix\ remoto es con
\cmdnm{telnet}. \cmdnm{telnet} es normalmente un programa muy sencillo
de usar:

\begin{screen}\begin{verbatim}
/home/larry$ telnet lionsden
Trying 128.2.36.41...
Connected to lionsden
Escape character is '^]'.

lionsden login:
\end{verbatim}\end{screen}
% $

Como puede verse, despues de teclear \cmdln{telnet}, se nos presenta
un mensaje de acceso al sistema remoto.  Podemos introducir cualquier
nombre de usuario (!`siempre que conozcamos la contraseña!)  y después
usar el sistema remoto casi como si estuviéramos sentados allí.

La manera normal de salir de \cmdnm{telnet} es hacer \cmdln{logout} en
el sistema remoto.  Otra forma es tecleando la secuencia de escape,
que (como en el ejemplo de arriba) es habitualmente \key{Ctrl-]}.
Esto nos presenta un nuevo símbolo del petición de órdenes: {\tt
  telnet>}.  Entonces podemos teclear \cmdln{quit} y \ret\ y la
conexión con el otro sistema será cerrada y el programa \cmdnm{telnet}
finalizará.  (Si cambiáramos de idea, simplemente pulsando \ret\ 
volveríamos al sistema remoto).

\xwarn Si se están usando las~X, se puede crear un nuevo \cmdnm{xterm}
para el otro sistema al que estamos saltando.  Con la orden
\cmdln{xterm -title \dq lionsden\dq\ -e telnet lionsden
  \&}\ttindex{xterm} crearemos una nueva ventana \cmdnm{xterm} que
automáticamente ejecute \cmdnm{telnet}.  (Si eso se hace con
frecuencia, probablemente será deseable crear un alias o un programa
de shell que lo haga automáticamente.)

\section{Intercambio de ficheros}

\begin{command}
  {\tt ftp}\impttindex{ftp} {\sl sistema-remoto}
\end{command}

La manera usual de intercambiar ficheros entre sistemas \unix\ es {\tt
  ftp}, acrónimo que proviene de {\bf f}ile {\bf t}ransfer {\bf
  p}rotocol (protocolo de transferencia de ficheros).  Tras ejecutar
la orden \cmdnm{ftp}, se nos pedirá que nos identifiquemos, de forma
muy parecida a con \cmdnm{telnet}.  Después de hacerlo aparece un
símbolo de petición de órdenes especial: el símbolo {\tt ftp}.

La orden \cmdln{cd} funciona de la manera habitual, pero en el sistema
remoto: cambia de directorio en el \emph{otro} sistema.  De la misma
forma, la orden \cmdln{ls} lista los ficheros en el sistema remoto.

Las dos órdenes más importantes son \cmdln{get} y \cmdln{put}.
\cmdnm{get} transfiere un fichero del sistema remoto al local, y
\cmdnm{put} lleva un fichero del sistema local al remoto.  Ambas
órdenes tienen efecto en el directorio local en el que se haya
arrancado \cmdnm{ftp} y en el directorio remoto en el que se esté en
ese momento (que se puede haber cambiado con la orden \cmdln{cd}).

Un problema habitual con \cmdnm{ftp} es la distinción entre ficheros
de texto y binarios.  \cmdnm{ftp} es un protocolo muy antiguo, y antes
tenía ventajas suponer que los ficheros que se transferían eran de
texto.  El comportamiento por omisión de algunas versiones de
\cmdnm{ftp} es ése, lo que significa que los programas que se envíen o
reciban se corromperán.  Por seguridad conviene usar la orden
\cmdln{binary} antes de empezar a transferir ficheros.

Para salir de \cmdnm{ftp} se usa la orden \cmdln{bye}.

\section{Viajando por la telaraña}

La Telaraña Mundial (World Wide Web), o WWW, es un uso muy popular de
la Internet.  Consiste en un conjunto de {\bf páginas}, cada una con
su propia URL---{\sl Localizador Uniforme de Recursos\/} asociado.
Los URLs son simpáticas secuencias de caracteres de la forma
\url{http://www.rutgers.edu/}.  Las páginas están por lo general
escritas en HTML ({\sl Lenguaje de Composición de
  Hipertexto})\index{URL}\glossary{URL}\glossary{localizador uniforme
  de recursos}\glossary{HTML}\glossary{lenguaje de composición de
  hipertexto}.

El HTML permite al autor de un documento enlazar ciertas palabras,
frases, o imágenes, con otros documentos que se hallen en cualquier
lugar de la telaraña.  Cuando un usuario lee un documento, puede
moverse rápidamente a otro picando en una palabra clave o en un botón
y se le mostrará el otro documento en cuestión---que posiblemente esté
a miles de kilómetros del primero.

\begin{command}
  {\tt netscape} [{\sl url}]
\end{command}

\xwarn El navegador más popular de \linux\ es
\cmdnm{netscape}\ttindex{netscape}; se trata de un navegador comercial
que vende (y regala) Netscape Communications Corporation.
\cmdnm{netscape} sólo funciona con las~X.

\cmdnm{netscape} trata de ser tan fácil de usar como sea posible y
utiliza el conjunto de widgets Motif para lograr una apariencia muy a
lo Microsoft Windows.  El conocimiento básico para poder usar
\cmdnm{netscape} es que las palabras azules subrayadas son enlaces,
así como muchas de las imágenes.  (Se puede averiguar cuales imágenes
son enlaces picando en ellas.)  Picando en esas palabras con el botón
izquierdo del ratón, aparece una nueva página.

\linux\ soporta muchos navegadores más, incluyendo el navegador
original \cmdnm{lynx}\ttindex{lynx}.  \cmdnm{lynx} es un navegador
orientado a texto---no muestra ninguna imagen que es con lo que
actualmente se relaciona al Web---pero funciona sin las~X.

\begin{command}
  {\tt lynx}\impttindex{lynx} [{\sl url}]
\end{command}

Es un poco más complicado aprender a usar \cmdnm{lynx}, pero
normalmente se le coge el truco después de jugar un rato con las
flechas del cursor.  Las flechas hacia arriba y hacia abajo nos mueven
entre los enlaces de una página.  La flecha hacia la derecha sigue el
enlace seleccionado (resaltado).  La flecha hacia la izquierda vuelve
a la página anterior.  Para salir de \cmdnm{lynx}, se debe pulsar
\key{q}.  \cmdnm{lynx} tiene muchas órdenes más---consúltese la página
del manual.

% Local Variables: 
% mode: latex
% TeX-master: "guide"
% End: 
