CONEXIÓN Y CONFIGURACIÓN DE INTERNET DESDE LINUX

Artículo 6: INTERNET RELAY CHAT (IRC)

Autor: (c) Santiago Romero
Revista: NetOnline (Prensa Técnica) nº 17, Enero-1999




Si entre nuestras necesidades de utilización de Internet está la de mantener conversaciones (escritas) con varios interlocutores organizándolas por canales aludiendo a diferentes temas, entonces el Internet Relay Chat (IRC) es nuestro servicio. En la entrega de este mes te desvelamos como conectar y trabajar en el IRC con Linux.


El IRC, acrónimo de Internet Relay Chat, es un sistema de conversación en línea para usuarios de Internet. Si disponemos de una conexión a Internet que ofrezca este servicio (cosa muy común en todos los distribuidores de Internet), será posible disfrutar de charlas en tiempo real sobre cualquier tema (de entre los cientos e incluso miles de canales que tendremos disponibles) con una gran cantidad de usuarios. Para ello tan sólo necesitaremos un cliente de IRC, como ircII (incluido con Linux en casi todas las distribuciones) o, como veremos, con variantes más visuales como BitchX, Zircon, cIRCus o Kirc. Mediante la simple ejecución de nuestro cliente IRC entraremos en nuestro servidor de IRC (previa configuración del programa cliente para que busque en la dirección correcta) y se nos dará la posibilidad de entrar en cualquiera de los canales (channels, agrupaciones temáticas), descritos por sus títulos (topics o títulos "del dia") donde encontraremos otros usuarios y algunos operadores (ops). También existe la posibilidad de hablar en privado con otro usuario, de enviar y recibir ficheros (vía DCC) así como unos usuarios especiales (que llevan una arroba (@) delante de su nombre) llamados operadores del canal (que han sido nombrados operadores por estar registrados en el canal o por otros operadores), que suelen estar ahi para controlar que la conversación gire en torno al tema establecido en el canal, aunque por desgracia en muchas ocasiones (en determinados canales) se dediquen a tirar gente del canal (acciones conocidas como ban o kick).

Los programas clientes de IRC suelen constar de una celdilla de texto en la parte inferior de la pantalla donde el usuario (nosotros) introduce el texto que tras pulsar ENTER es enviado al canal, apareciendo en la ventana de la conversación (prácticamente el resto de la pantalla), donde se pueden leer las frases escritas por todos los contertulios del canal en el orden en que éstas llegaron al servidor. Esto permite tener conversaciones, disputas y cooperaciones entre los diferentes miembros del canal (a veces apareciendo en una ventana en la parte derecha de la pantalla). Mediante lo que el usuario escribe (que leen los demás) y mediante lo escrito por los demas (leído por nosotros), se forma una discusión que va desde las conversaciones sobre linux en el canal #linux hasta las discusiones sobre DirectX u OpenGL en el canal #programacion. El IRC constituye pues un medio más rápido de comunicación (y por tanto muy útil) que las news o el email, donde necesitaremos algunas horas (tal vez 1 ó 2 días) para recibir respuesta a nuestra pregunta.

Lo primero que debemos averiguar es el nombre de nuestro servidor de IRC, tal como lo es irc.arrakis.es, el servidor irc de arrakis (consultar con nuestro proveedor de Internet). La mayoría de IRCs de España están interconectados dando lugar a lo que se conoce como el IRC Hispano, que será nuestro punto de encuentro con otros usuarios del IRC Español.


EL PROGRAMA IRCII

IrcII es uno de esos programas pequeños y sencillos que proporcionan gran efectividad para su tarea, tal y como lo es ftp para la transferencia de ficheros. IrcII es un cliente de IRC que de nuevo es casi parte del S.O. Linux, ya que lo encontraremos en cualquier distribución de GNU/Linux existente. Muchos de los que están leyendo esto probablemente habrán utilizado ya el IRC mediante el programa MIRC (o PIRCH) de Windows95... pues hay que decir ante todo que IRCii es la antítesis de MIRC; es decir: ircII es en modo texto, en principio no soporta colores, y todo funciona a base de comandos (aunque con la posibilidad de crear menúes y alias), pero es uno de esos programas que resultan esenciales, sobre todo en sistemas pequeños (como la gente que se lleva un diskette de arranque de Linux con soporte para redes y con el ircII para disfrutar del IRC en las Universidades, donde no todo el mundo dispone de una cuenta Unix, o donde no se suele permitir la instalación de clientes de IRC ni juegos de rol).

ircii

Lo más probable es que ya se disponga de él en el sistema, aunque siempre puede buscarse en el ftp de RedHat (en el mismo directorio de donde hemos venido bajando todos los programas comentados en esta serie de artículos). La instalación en formato rpm o deb no necesita comentarios, mientras que para los ficheros .tar.gz suele haber (una vez descomprimidos con tar xvzf nombre_fichero) un script de instalación (easyinst) que realizará el proceso de copia de los ficheros a sus directorios correspondientes.

Una vez instalado, y si estamos conectados a Internet, basta con llamar al cliente de IRC ircII para tratar de conectar con un servidor de IRC, mediante la invocación del ejecutable irc:


 [root@localhost sromero]#   irc

O mejor, especificando el nombre que tendremos dentro del IRC (nickname) y el servidor a utilizar:



 [root@localhost sromero]#   irc  SuperJuan  irc.arrakis.es

Al ejecutarlo tratará de conectarnos (si no le hemos especificado servidor en la línea de comandos) a cualquiera de los servidores de IRC que tiene establecidos por defecto (y que podremos cambiar editando el fichero /usr/lib/irc/ircII.servers), aunque también es posible especificarlo manualmente (tras ejecutar irc) mediante la siguiente orden:


 /server irc.arrakis.es

Server es uno de los múltiples comandos de ircII (también disponibles en el resto de clientes de IRC, por supuesto), mediante el cual le indicamos al programa que conecte con un servidor determinado. El hecho de llevar una barra (/) antes del comando le indica al IRC que estamos tratando de ejecutar el comando server en vez de tratar de escribir la cadena "server irc.arrakis.es" en pantalla). El artículo de este mes trata principalmente de eso, de la introducción al lector de los distintos comandos del IRC, de manera que se puedan utilizar estos en cualquiera de los clientes de IRC visuales (con ventanitas y menúes) que veremos en el próximo artículo.


CONECTADOS

Una vez conectados al IRC ya es posible entrar en un canal de conversación. Es posible listar los canales del IRC con el comando /list, aunque no es recomendable debido a la gran cantidad de ellos. Por contra es mejor conocer los canales a los que queremos entrar (como #linux, #programacion, #programacion_d_juegos, #hacking, #emuladores, o, si tenemos problemas, #ayuda_irc). Para entrar en un canal se utiliza el comando /join seguido del canal al que se desea entrar:


 /join  #linux

Tras ejecutar esto, nos encontraremos dentro de un canal muy poblado hablando sobre el mejor Sistema Operativo existente hasta el momento. Cualquier frase que tecleemos en este momento (es decir, cualquier cosa que no sea un comando, precedido por '/'), será enviado al canal y leido por el resto de usuarios del canal. Si es nuestra primera sesión de IRC, mejor algo de nettiquete y una sencilla presentación y saludo al canal, seguido de cualquier duda o ayuda que se quiera dar al resto de usuarios. Para saber quien está conectado en un determinado canal, entramos en él y ejecutamos el comando /who * (aunque también puede hacerse mediante el comando /names #canal, en este caso, /names #linux).

Si en cualquier momento deseamos salir del canal, basta con ejecutar el comando /part (o /leave) para abandonar el canal actual, (o part #canal) ya que, como veremos a continuación, no se está limitado a hablar en un sólo canal temático.


COMPLICANDO LAS COSAS: MULTIVENTANA

El IRC no está diseñado para hablar en un único canal. Mediante /join podemos entrar en más de un canal, aunque en principio los textos provenientes de uno u otro se mezclarán en la misma pantalla (con una indicación acerca de cuál es el canal de procedencia), además de que para hablar en uno u otro canal se necesitará utilizar el comando /msg (con lo cual dirigiremos los mensajes a un canal u otro):


/join #linux
/join #emuladores
/msg #linux Hola a los usuarios de Linux!
/msg #emuladores Hola! Ha salido algun emulador hoy?
/msg pepe Hola Juan!

Con este programa no estamos obligados a leer todo el texto en la misma ventana, sino que es posible crear diferentes ventanas virtuales (escondidas, de manera que sólo vemos una en pantalla, o partidas en la misma pantalla), mediante el comando /window new, y cerrar la ventana actual mediante /window kill. Podemos cambiar entre ventanas mediante las teclas Ctrl+x p (ventana anterior o previous, mediante ctrl+'x' simultáneamente, soltar, y luego pulsar 'p') y Ctrl+x n (siguiente o next). Veamos como cambia la cosa:


/join #linux
/window new
/join #emuladores
(ctrl+x p -> estamos en #linux)
Hola a los usuarios de Linux!
(ctrl+x n -> estamos en #emuladores)
Hola! Ha salido algun emulador hoy?
/window new
/query Juan
Hola Juan!

Tras esto dispondremos de 3 ventanas entre las que podremos cambiar en cualquier momento, una en la que se habla en #linux, la de #emuladores, y una tercera donde se mantiene una conversación privada con Juan (mediante el comando /query). Mediante /window hide es posible hacer una ventana oculta (en vez de partir la ventana actual). Es muy recomendable tener instalado el paquete screen para el soporte multiventana, o trabajar en xterms, donde este soporte también se da. De otro modo, el soporte multiventana se dará en pantalla partida (tantas secciones como ventanas dispongamos).


RESUMEN DE COMANDOS DEL IRC

Entre los comandos más habituales del IRC están aquellos que podemos ver en el cuadro 1 (donde lo denotado entre corchetes [ y ] especifica que dicho parámetro es opcional).


COMANDOS DEL IRC

/help [comando]             Proporciona ayuda en línea sobre el comando especificado.
/join #canal                Entra en el canal especificado (ej: /join #linux).
/list [#cadena]             Lista los canales disponibles en el servidor, con la posibilidad
                            de especificar una cadena de búsqueda. (#cadena).
/whois [usuario]            Proporciona datos acerca del usuario que se le especifique,
                            como su nombre (si configuró correctamente su cliente
                            de IRC), dirección email o dirección IP.
/me [frase]                 Indica al resto del canal lo que piensas, resaltándolo.
                            Es el responsable de leer frases como
                            "_Juan_ piensa que esta conversación es muy tonta.".
                             (ej: /me Que aburrido!).
/part [#canal]              Abandona un canal (o el canal actual si no se especifica otro).
/msg [usuario] [mensaje]    Envía el mensaje especificado al usuario que se le
                            indique (ej: /msg juan Hasta luego!).
/dmsg [usuario] [mensaje]   Similar a msg, pero para un chat dcc.
/query [usuario] [mensaje]  Permite iniciar una conversación privada (un query)
                            con otro usuario.
/query                      Cierra la conversación privada actual.
/nick [nombre]              Permite cambiar nuestro nickname al especificado.

/dcc send [usuario] [fichero]   Permite el envío de un fichero al usuario
                                especificado (ej: /dcc send Juan /etc/dosemu.conf).
/dcc get [usuario] [fichero]    Permite recibir un fichero de un usuario.
/dcc chat [usuario]             Permite iniciar un chat (conversación directa)
                                con un usuario.
/dcc close chat [usuario]       Cerrar el chat previamente abierto.

/quit [razon]               Sale del programa y, opcionalmente, muestra un mensaje
                            con la razón del abandono
                            (ej: /quit Me tengo que ir!).
/away [razon]               Avisa al resto de usuarios de que nos vamos a ausentar
                            momentáneamente del IRC (ej: /away El telefono!).
/invite [usuario] [#canal]  Invita al usuario especificado al canal que se le indica.
/who *                      Muestra los nombres de los usuarios del canal actual.
/clear                      Limpia la ventana de texto actual.
/date o /time               Muestran la fecha u hora actual.
/exec -out [comando]        Ejecuta el comando especificado (por ejemplo, ls), y saca
                            los resultados por la pantalla del canal.
/flush                      Hace parar la salida obtenida desde el servidor. Muy util
                            para teclearlo, por ejemplo, ante un /list.

/ignore [usuario] [tipo_de_mensaje]:     Ignora los mensajes enviados por determinados
                                         usuarios (es decir, no aparecen sus frases en
                                         pantalla). En él usuario pueden especificarse
                                         comodines (*), mientras que el tipo de mensaje
                                         puede ser ALL (todos), NOTICES (notificaciones),
                                         PUBLIC (conversación normal del canal),
                                         INVITES (invitaciones) o NONE (ninguno).
                                         Ejemplo: /ignore Pepe ALL -PUBLIC
                                         (ignorar todos los mensajes de Pepe excepto
                                         (-) los que vayan al canal (publicos)).
/leave [#canal]             Deja el canal especificado o el actual si no
                            se especifica ninguno.
/mode                       Permite a los operadores cambiar modos (ver /help mode).
/names [#canal]             Muestra los nombres de los usuarios del canal especificado
                            (o de todos si no se especifica).
/notice [#canal] [mensaje]  Envía un mensaje privado a todos los usuarios
                            de un canal.
/notify [usuario]           Permite especificar una lista de usuarios para que al
                            entrar al IRC se nos avise de si estos están presentes,
                            o de si entran o salen del IRC (para encontrar siempre al
                            amiguete de turno). Ej: /notify pepito.
/ping [usuario]             Envía un ping (una señal con la hora actual) a un
                            usuario para que este la devuelta y podamos saber (por el
                            tiempo transcurrido) la velocidad de respuesta de la red
                            (si está lenta, rápida...).
/save [opciones] [fichero]  Salva las opciones actuales del IRC en un fichero
                            (ver /help save).
/say y /send +texto         Imprime el texto especificado en el canal, permitiendo
                            alias, binds, etc.
/set log on                 Permite guardar en un fichero de texto lo hablado en
                            las sesiones.
/set logfile [fichero]      Permite especificar el fichero a usar
                            (ej: /set logfile /home/somero/milog.txt).
/window log on              Permite guardar en un fichero de texto lo hablado
                            en la ventana actual.
/window logfile [fichero]   Permite especificar el fichero a usar
                            (ej: /set logfile /home/somero/milog.txt).
/alias [comandos]           Crea un alias para [comandos].
                            También permite parámetros.


Aparte de los comandos especificados, otro comando muy útil es /alias, que nos permitirá crear atajos a órdenes habituales:


/ALIAS  Hola  MSG #linux Hola a todos los usuarios del canal!
/ALIAS  Hola  MSG  $0  Hola, $0! $1

Para este último alias, tras ejecutarlo, si tecleamos "/Hola Juan Que tal?", será expandido a "/msg Juan Hola, Juan! Que tal?", con lo que dicho saludo aparecerá en la pantalla de Juan como mensaje privado dirigido a él. Otros comandos interesantes (ver lista) son los comandos de DCC, que nos permitirán enviar y recibir ficheros a/de otros usuarios del IRC.

El resto de comandos del IRC (y una ayuda y descripción de todos ellos), puede encontrarse en el propio programa (/help comando), o en el subdirectorio /usr/lib/irc/help, de donde cuelga toda una estructura de directorios con ficheros de ayuda en texto puro (editables con cualquier procesador de textos o listables con cat o less) con el nombre de los distintos comandos. Todas estas opciones se suelen incluir en scripts (similares a ficheros de comandos) que son cargados durante el arranque y añaden nuevas opciones y funcionalidades al programa. Otra referencia es /usr/doc/irc*, donde hay ejemplos de menúes, la página man de ircII y los cambios que han ido habiendo en el programa desde su versión inicial.


RESUMEN DE TECLAS DE IRCII

Las teclas más utilizadas en ircII son las siguientes:

 Ctrl+x p      :   ir a la ventana virtual anterior (o /window previous).
 Ctrl+x s      :   ir a la ventana virtual siguiente (o /window next).
 Ctrl+x [nº]   :   abrir N ventanas (o /window add N>.
 Ctrl+x c      :   crea una nueva ventana (o /window add).
 Ctrl+x a      :   va a la última ventana.
 Ctrl+x k      :   cierra la ventana actual.
 Alt+p         :   subir por la pantalla actual.
 Alt+n         :   bajar por la pantalla actual.
 Ctrl+b        :   escribir en negrita.
 Ctrl+_        :   escribir en subrayado.

Además disponemos de Ctrl+c para interrumpir el programa.


OTROS CLIENTES DE IRC

Como veremos en la próxima entrega, existen otros clientes de IRC para X Window con un sistema de manejo más sencillo: soportando multiventana, autoraise (es decir, que cuando cambia el contenido de una ventana esta cambia a primer plano), colores, menúes para los comandos más habituales, etc. Los veremos en versiones X Window, de txto (aunque más avanzados que ircII, como BitchX) e incluso específicos para KDE (kirc, kvirc), y nos harán la comunicación en el IRC mucho más sencilla, sin olvidar los comandos que hemos aprendido hoy, que complementarán todo lo que les falte a estos clientes (al disponer de unas opciones determinadas se nos limita el control a lo dispuesto por el programa, mientras que mediante los comandos IRC, comentados hoy, podremos suplir cualquier necesidad que no esté disponible en los menúes).


EN RESUMEN

Mediante irc se tiene ahora acceso desde nuestro Linux a otro de los útiles (aunque generalmente prohibidos en las Universidades ;-) servicios de Internet, el chat. En la próxima entrega se tratarán otros clientes de IRC más visuales, así como la manera de obtenerlos de Internet y su utilización.

Figura 1: "Aspecto del programa ircII."

Santiago Romero


Volver a la tabla de contenidos.