Capítulo 10
Hablando con los demás
"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.
Chuq Von Rospach
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.
10.1 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.
10.1.1 Enviar correo
Todo lo que hay que hacer es teclear "mail nombre" y escribir el mensaje.
Por ejemplo, supongamos que queremos enviar correo a un usuario que se llama sam:
/home/larry$ mail sam
Subject: Documentacion del usuario
Solo estoy probando el sistema de correo.
[Ctrl-d]
/home/larry$
/home/larry$
El programa mail es muy simple. Como cat, acepta texto de la entrada estándar, línea a línea, hasta que recibe un carácter de fin-de-texto como único carácter en una línea: |_Ctrl-d_|. Así, para enviar nuestro mensaje, tuvimos que pulsar |_Intro_| y después |_Ctrl-d_|. Usar 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 report1 a "Sam", podríamos escribir "mail sam < report1" , o incluso "sort report1 _ mail sam".
Sin embargo, la desventaja de usar mail para enviar correo es su primitivísimo editor. ¡No se puede cambiar ni una línea una vez se ha pulsado |_Intro_|! Así que yo recomiendo mandar correo (cuando no se use redirección) con el modo mail del Emacs. El tema se trata en la Sección 8.10.
10.1.2 Leer el correo
- mail [nombre]
El programa "mail" ofrece una forma algo liosa de leer el correo. Si se teclea "mail" sin parámetros, aparecerá lo siguiente:
/home/larry$ mail
No mail for larry
/home/larry$
"No mail for larry" significa: No hay correo para larry.
Me voy a enviar correo a mí mismo para poder utilizar el lector:
/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
&
El símbolo petición de órdenes del programa mail es un "et a la inglesa" ("&"). Acepta un par de órdenes sencillas, y muestra una breve pantalla de ayuda si se pulsa "?" seguido de |_Intro_|. Las órdenes básicas de mail son:
t lista-de-mensajes Mostrar los mensajes en la pantalla.
d lista-de-mensajes Borrar los mensajes.
s lista-de-mensajes fichero Guardar los mensajes en fichero.
r lista-de-mensajes Responder a los mensajes_esto es, comenzar a escribir un nuevo mensaje dirigido a quien fuera que envió los mensajes referidos.
q Salir y guardar los mensajes que no hayan sido borrados en un fichero llamado mbox en el directorio raíz del usuario.
¿Qué es una lista-de-mensajes? Consiste en una lista de números separados por espacios, o incluso un rango de los mismos como "2-4" (lo que es equivalente a "2 3 4"). Así mismo se puede introducir el nombre del remitente, de este modo la orden t sam mostrará todos los mensajes provenientes 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 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 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 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 mail, como elm, o pine.
10.2 Noticias más que de sobra
10.3 Localizar a la gente
El programa finger permite obtener información de otros usuarios del sistema y de todo el mundo. Sin duda el programa finger recibió este nombre por los anuncios de la AT&T que exhortaban a la gente a "salir y tocar a alguien". Dado que el Unix tiene sus orígenes en la AT&T, probablemente eso le hiciera gracia al autor.
- finger [-slpm] [usuario][@maquina]
Los parámetros opcionales de finger pueden resultar algo liosos. La verdad es que no es tan difícil. Se puede solicitar información de un usuario local ("sam"), información de otra máquina ("@lionsden"), información sobre un usuario remoto ("sam@lionsden"), o simplemente información sobre la máquina local (nada).
Otra característica 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 "finger Greenfield" , nos contestará que existe la cuenta sam de Sam Greenfield.
/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$
La opción "-s" hace que finger utilice siempre la forma abreviada (la que se obtiene normalmente cuando se hace finger a una máquina), y la opción "-l" hace que use siempre la forma larga, incluso al hacer finger a una máquina. La opción "-p" hace que finger no muestre los ficheros .forward, .plan, ni .project, y la "-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.
10.3.1 Planes y proyectos
Pero, ¿qué es eso de .plan y .project? Son ficheros que existen en el directorio raíz de un usuario y que se muestran cuando se le hace finger. Cada uno puede crear sus propios ficheros .plan y .project, la única restricción es que sólo se muestra la primera línea del fichero .project. Además, todo el mundo debe tener permisos de búsqueda (la "x" de ejecución) del directorio raíz del usuario en cuestión ("chmod a+x ~/") y debe ser posible para todo el mundo leer los ficheros .plan y .project ("chmod a+r ~/.plan ~/.project" ).
10.4 Uso remoto de sistemas
- telnet sistema-remoto
La forma más habitual de usar un sistema Unix remoto es con telnet. telnet es normalmente un programa muy sencillo de usar:
/home/larry$ telnet lionsden
Trying 128.2.36.41...
Connected to lionsden
Escape character is '^]'.
lionsden login:
Como puede verse, despues de teclear "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 telnet es hacer "logout" en el sistema remoto. Otra forma es tecleando la secuencia de escape, que (como en el ejemplo de arriba) es habitualmente ||_Ctrl-]_||.
Esto nos presenta un nuevo símbolo del petición de órdenes: telnet>. Entonces podemos teclear "quit" y |_Intro_| y la conexión con el otro sistema será cerrada y el programa telnet finalizará. (Si cambiáramos de idea, simplemente pulsando |_Intro_| volveríamos al sistema remoto).
Si se están usando las X, se puede crear un nuevo xterm para el otro sistema al que estamos saltando. Con la orden "xterm -title "lionsden" -e telnet lionsden &" crearemos una nueva ventana xterm que automáticamente ejecute telnet. (Si eso se hace con frecuencia, probablemente será deseable crear un alias o un programa de shell que lo haga automáticamente).
10.5 Intercambio de ficheros
- ftp sistema-remoto
La manera usual de intercambiar ficheros entre sistemas Unix es ftp, acrónimo que proviene de file transfer protocol (protocolo de transferencia de ficheros). Tras ejecutar la orden ftp, se nos pedirá que nos identifiquemos, de forma muy parecida a con telnet. Después de hacerlo aparece un símbolo de petición de órdenes especial: el símbolo ftp.
La orden "cd" funciona de la manera habitual, pero en el sistema remoto: cambia de directorio en el otro sistema. De la misma forma, la orden "ls" lista los ficheros en el sistema remoto.
Las dos órdenes más importantes son "get" y "put". get transfiere un fichero del sistema remoto al local, y put lleva un fichero del sistema local al remoto. Ambas órdenes tienen efecto en el directorio local en el que se haya arrancado ftp y en el directorio remoto en el que se esté en ese momento (que se puede haber cambiado con la orden "cd" ).
Un problema habitual con ftp es la distinción entre ficheros de texto y binarios. 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 ftp es ése, lo que significa que los programas que se envíen o reciban se corromperán. Por seguridad conviene usar la orden "binary" antes de empezar a transferir ficheros.
Para salir de ftp se usa la orden "bye".
10.6 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 páginas, cada una con su propia URL_Localizador Uniforme de Recursos asociado.
Los URLs son simpáticas secuencias de caracteres de la forma <http://www.rutgers.edu/>. Las páginas están por lo general escritas en HTML (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.
- netscape [url]
El navegador más popular de Linux es netscape; se trata de un navegador comercial que vende (y regala) Netscape Communications Corporation. netscape sólo funciona con las X.
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 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 lynx. 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.
- lynx [url]
Es un poco más complicado aprender a usar 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 lynx, se debe pulsar |_q_|. lynx tiene muchas órdenes más, consúltese la página del manual.