Internet Relay Chat
Wow, talk about a dinosaur! IRC seems like it has been around since the dawn of time. Without dating myself, I still remember logging into BBSs back in the eighties and nineties and getting help in chat rooms that would eventually become what IRC is today. Fast forward 20 years, past the internet startups, the AOL and prodigy chat rooms, even the "WHAT'S YUR ASL!?" chat rooms of Yahoo! Messenger, and let's jump right into 2011 and back to IRC. Where I work and play, I still come across techies fresh out of college that have never heard of IRC. Has IRC become so obscure over the years that it has been shuffled to the back of the room as one of those 'old people' technologies? Just because there are no fancy emoticons, webcam viewing and audio chat doesn't mean IRC has become any less valuable a tool of the trade, especially in tech circles.
So what do people use IRC for? Well, probably the same thing that they used it for 10+ years ago: chatting. You can find channels for just about anything your heart desires these days. But, since this is a #linuxjournal article, I'll be focusing on tech stuff. Linux Journal has been on IRC for a few years now, specifically on freenode.net's irc server. Freenode.net seems to be a gathering place for techies from all walks of life, and includes help channels for just about every major open-source software and distribution out there. While writing this blogpost, I did a quick search of channels and came across 12,830 open channels, with the top 5 being: #ubuntu, #debian, #archlinux, #linux, and #gentoo. Granted, these channels have a very large number of people in them (hundreds), and getting questions answered can be quite frustrating to someone new to IRC. But there's hope. I promise. I can't tell you how many problems that I have had solved late at night because there are channels like #bacula, or #nagios, or any other specific channels out there that cater to the open-source crowd. There is always someone awake somewhere in the world that has had a similar problem and is willing to help out a fellow tech.
To start with, if you're new to IRC the first thing you will need is an IRC chat client. The two big names I hear on IRC as far as Linux clients go are XChat for graphical interfaces, and IRSSI for console interfaces. Being that I'm from the old-school console days I use IRSSI, but to each their own. So the first thing you need to do is grab XChat or IRSSI from your local repos.
**Now don't go posting nasty comments about how I didn't mention your favorite flavor of xyz IRC client. I've tried my share of IRC clients over the years, and they all do the same thing more or less: connect you to an IRC server.
In this post I won't be getting into the nitty gritty of custom scripts, user interfaces and auto connections. If you're interested in 'blinging' your IRC client, LJ authors have written posts in the past on irssi and xchat scripts. But what I will be talking about is the basics: logging in, services and channels.
So, let's get started!
When you start up XChat it will prompt you for 3 nicknames, a user name and your real name. The reason for this is..well, there are literally thousands and thousands of people on an IRC server, so the name you think is unique just might be registered by another user. So go ahead and pick 3 nicknames, and put a 'Real Name' in there. No, it doesn't really have to be your real name. After that, scroll down on the list of Networks and highlight 'freenode' and click 'Connect'. Once freenode.net connects, you should be prompted to join a channel. Since of course this is a #linuxjournal blog post, go ahead and check the radio button that says 'Join this channel: and type: #linuxjournal and click 'OK'. And there you have it, successfully connected to the #linuxjournal chat room. If you want to get a list of other channels that interest you, select Server -> List of Channels. From here you can do a search or download the entire list and search.
Ah, the beauty of the commandline interface. Why do I like this one so much? Mainly because I can create an irssi session inside of GNU Screen and just detach my screen session. That way I can ssh into my machine at any time, re-attach my screen session and my IRC session is still connected.
From a commandline, type: irssi. this will bring up a black window with [(status)] at the bottom left of your screen. To connect to freenode.net type: /server irc.freenode.net. Once connected, change your nickname with the command: /nick thisismyusername. Once you have successfully joined freenode.net and changed your nickname you can join #linuxjournal with: /join #linuxjournal.
Because the Commandline is slightly different than XChat, here are some tips and tricks that work both in X-chat and irssi:
/names - List users /nick - Change your nickname /join #channel - Join a channel
/part #channel - Leave a channel
/quit - Quit IRC /msg nickname message - Send a private message to someone
IRC Servers are usually kept policed by 3 services: nickserv, chanserv and memoserv. Nickserv is akin to an ID card on IRC. With nickserv you can register your nickname so that someone else can't take your nickname, identify to nickserv when you log in to prove you are who you say you are, and even 'ghost' or force someone who is using your registered nickname to change their nickname.
Lets say you picked a new name called: linuxminion. The first thing we want to do is see if linuxminion is registered or not, so we ask nickserv.
/msg nickserv info linuxminion -NickServ(NickServ@services.)- linuxminion is not registered. Oh look! We can have linuxminion. Time to register linuxminion:
1. /nick linuxminion 2. /msg nickserv REGISTER password firstname.lastname@example.org
Of course, change 'password' to a secure password you want to use, and email@example.com to an email address that you use in case you need to reset your password at some point. But there you have it, now your new nickname is registered. If you want to identify to nickserv type the following:
1. /msg nickserv IDENTIFY password
Nickserv will come back stating that you have identified for the user that you are logged in as. If you are a member of certain channels that give you operator(@) or voice(+) status, you will automatically be opped or voiced once you register and join the channel.
For more information on what you can do with nickserv or chanserv, you can always consult the respective help with: /msg nickserv help or /msg chanserv help. Then drill down from there: /msg nickserv help register, etc. Send private message: /msg nickname message
Now it's on to Memoserv. Even some veteran IRC users are unaware of memoserv and its uses. Think of memoserv as an offline mailbox for users. If you don't know the person's email address, you can send them a memo with memoserv. If the person is logged in and idle, or when the person logs in again; freenode.net will let them know that they have a new message waiting.
To send a new message: /msg memoserv SEND username message must be less than 300 characters
To List your messages: /msg memoserv LIST
To Read Message 1: /msg memoserv READ 1
To Delete message 1: /msg memoserv DELETE 1
I just want to briefly touch on etiquette in IRC. Granted most of us have been around the block a time or two, but there are some 'unwritten' rules of the road that I have learned in the many, many years I have been on IRC that I will briefly lay out here.
1. IRC is World Wide. That means if it's daytime for you, it's not always daytime for everyone in the channel. If it's after work hours for you, it might be work hours for them. If you post a question in a channel and it seems like no one is saying something, they just might be busy. Don't get frustrated and think everyone is a moron and storm off. Give it some time.
2. See Rule #1 (I've always wanted to say that). But that also rings true for busy channels. If a channel is busy, don't just butt in and ask a question when there's a discussion going. Just wait until there's a pause somewhere or someone's question has been answered before you jump in. There are plenty of people willing to help you out if you just give them a chance. But if you butt into a conversation about the problems your having, you're less likely to get help. Instead, see if you can help resolve the problem the other person is having. Maybe they have a solution for you.
3. CAPS LOCK GAAAAAH. Caps locks are evil, I don't care who you talk to, caps locks are just evil. I don't know why they actually built these into a keyboard..they should have gone the way of the 5 1/4".
4. Cursing/Racist remarks - I know at least in the channels I frequent (mileage may vary depending on the channels you enjoy), Racist remarks, politics, religion and heavy petting cursing just isn't tolerated and will get you banned.
Well there you have it, A quick and dirty intro to IRC for those of you who are new to IRC, and maybe some tips and tricks to those veteran IRC users out there. IRC is a very powerful 'social networking' tool if you know how to use it. As I said before, I have solved many technical problems over the years thanks to IRC and timezones. If you're ever on #linuxjournal and this works, say hi to jayson. If it doesn't, you can blame ShawnPowers.