April 20, 2007

A beginner's guide to IRC

Author: Joe 'Zonker' Brockmeier

If you have questions about Linux or open source projects, real-time help is often just a keyboard away -- if you know where to look online. Forums, mailing lists, and Googling are all useful when you have questions, but if you really want answers fast, Internet Relay Chat (IRC) is the place to look. If you've never ventured into IRC, here's all you need to get started.

No doubt you're already familiar with instant messaging and have used AIM, MSN Messenger, Google Talk, or other IM services. The main difference between IRC and IM services is that IRC is designed for multi-user chat rather than one-on-one conversations, and that there are many IRC networks that users can participate on -- whereas most IM services restrict you to the network operated by the IM service owner, such as AOL or Microsoft. Because IRC is designed for multi-user chats, it's ideal for FOSS communities that want to offer a forum where users can get support in real time.

Choosing an IRC client

Once you decide to take the IRC plunge, you'll need to choose an IRC client. It's impossible to recommend a one-size-fits-all application because each client has strengths and weaknesses that will appeal to some users and turn others off. However, I'll mention some of the most popular clients here.

If you use instant messaging on Linux, you're probably familiar with Gaim. You might already be using it to chat via AIM, MSN, Yahoo! Messenger, Jabber, or one of the other protocols that it supports. In addition to all those IM protocols, Gaim supports IRC too. If you're using Gaim already, you might as well set it up to handle IRC for you as well.

KDE users might prefer Konversation, which is an IRC-only client, but full-featured and well worth looking at. It runs under any Linux desktop, of course, but integrates particularly well with the KDE desktop and KDE apps such as Konqueror.

GNOME users, on the other hand, might want to start with XChat-GNOME, which is a GNOMEized frontend for XChat, an IRC app for Linux and Windows, with a separate Mac port as well.

Another option, which we'll use for the rest of this article, is a Firefox extension called ChatZilla that adds IRC client functionality to Firefox. (It's also available as part of the Mozilla SeaMonkey suite, and for the Netscape branded browser, but those are much less common these days.)

Because ChatZilla is a Firefox extension, it has the benefit of being cross-platform -- which is nice if you use Linux at home and Windows at work, or vice versa. You can not only use the same client across multiple computers, but you can also sync profiles between them if you use Google Browser Sync (or a similar tool) to keep profiles synchronized between computers.

Getting started with IRC

To get ChatZilla, go to the Firefox Add-ons site and click "Install Now" while in Firefox. You'll be prompted to restart Firefox, and then you'll be able to start ChatZilla by going to Tools -> ChatZilla.

The first time you start ChatZilla it will load an information screen with links to some popular IRC networks, as well as links to the ChatZilla FAQ and IRC Help Web site. You'll also see a link to the ChatZilla Support Channel, which would take you to the moznet IRC network and the #chatzilla channel.

Now it's time to join a chat. Let's say you want to get some help with Kubuntu. Ubuntu's documentation note that Ubuntu's channels are on the Freenode network, and the help channel for Kubuntu is #kubuntu. (Channel names are always preceded by a "#" character.)

To connect to Freenode, enter /server irc.freenode.net in the text field, or enter irc://irc.freenode.net/kubuntu in Firefox's address bar. ChatZilla will connect to the Freenode server, and you should see a bunch of messages scrolling by in a tab labeled irc.freenode.net. You'll also see a message about your nickname, which is the unique name that you'll be using while in IRC.

If you're just popping into IRC to ask a quick question, then there's not much need to worry about your nickname. However, if you plan to participate in discussions on IRC a lot, you'll probably want to register your nick so that other users can't claim it when you're not logged in.

Pick a nickname that you like, and then enter /nick nickname in ChatZilla's text field. This will set your nickname. If the nickname you want is already taken, you'll see a message saying, "This nickname is owned by someone else." You may have to try a few different nicks before you find one that's free on a busy network like Freenode.

Once you've found an unclaimed nick, run /msg nickserv register password to protect your choice. After the password is set, you'll be prompted to identify yourself by entering it whenever you log into IRC. Note that nicknames don't carry across networks; if you register a nick on Freenode, it doesn't mean you'll own the same nick on another IRC network.

IRC etiquette

IRC has its own etiquette, and there are some definite dos and don'ts that you'll want to keep in mind before joining in the conversation.

Naturally, being nice goes a long way. Ubuntu Community Manager Jono Bacon says users should "be helpful," and deal with the fact that "some people are gonna ask some stupid things.... We all start somewhere, and no one learns by being shown up or humiliated. If you don't have a constructive, helpful answer, just don't answer."

Also, remember that many people don't monitor IRC conversations closely at all times. Most users check their IRC client's window occasionally as they do other work, so they may not see your question right away. There's no need to repeat a question or comment just because you haven't gotten an immediate response. That's a good way to annoy users who have read the question and who simply don't have a response.

If you notice that someone is trying to get your attention, let them know that you've seen them. Bacon says to let people know if you're busy, but "if someone gets in touch with you, try to respond where you can."

Don't be a nuisance in the channel. For instance, many users have their IRC client set to beep or give some indication when users join or leave a channel. Some also have their computer set to go to sleep after 10 or 15 minutes of inactivity -- thereby causing them to quit -- along with autoconnect -- causing them to rejoin IRC. Many users will find it annoying if you're leaving and rejoining a channel every 20 minutes because your computer goes to sleep and wakes up frequently, particularly if you're just lurking in the channel rather than actively participating.

Finally, make sure you're on-topic. Before dive-bombing a project's #project-devel channel with questions about using the software, you might want to check the project's Web site and see where the project wants you to go for questions. A project's -devel channels (or whatever they may be called) are almost always for development questions and discussions only. Going to -devel for a question on a project's usage is like calling 911 to report a parking violation. If you're lucky, you'll be gently redirected to the project's -user channel; if not, you might get a less friendly response.

For more on setting up a nickname, see the Freenode FAQ.

To join the #kubuntu channel, type /join #kubuntu. You should see something similar to Figure 1. On the left side of the ChatZilla window, you should see all of the users who are in the channel. Discussion between users will be displayed in the right pane.

Common IRC commands

In ChatZilla, or any IRC client, you can issue commands by preceding a word with a slash (/).

The first command you want to be familiar with is /help. This will display information about commands that you can use in ChatZilla. (This will also work in other IRC clients.) Just typing /help will display the generic help message. To learn how to use a command, type /help commandname.

How do you know what commands are available? Run /commands, and your client will display a full list of commands that you can use. This will differ from client to client. ChatZilla is one of the more full-featured clients, so you may not have as many commands available if you use a different client.

If you want to have a private conversation with a user over IRC, you can initiate a conversation using /query usernamemessage. Note that some users may not be receptive to private chats, so tread lightly if you don't know the user in question. You can also send messages without opening a conversation window by running /msg usernamemessage.

Want to know when certain users log into IRC? You can tell ChatZilla to give you a heads-up by running /notify username. When the user logs on or off, ChatZilla will give you a notice.

If you're not sure who a user is, you can run the /whois username command to get information about the user, such as their real name (if they've supplied it) and what server they're connecting from. If they've left IRC before you could run whois, ChatZilla also supports a whowas command -- if you run /whowas maskedman, the server will give you the same information you'd get from a whois command.

There's a lot more to IRC, but this should get you far enough to get started.

Click Here!