esn.net - The IRC Primer

The IRC Primer

Written by: Nicolas Pioch ("Nap" on IRC)
Modified by esn.net
Edition 1.1b

    Have you ever wanted to talk with other computer users in other parts of the world? Well guess what... You can! The program is called IRC, (Internet Relay Chat), and it is networked much over North America, Asia Europe, and Oceania. When you're talking on IRC, everything you type will instantly be transmitted around the world to other users that might be watching their terminals at the time, they can then type something and respond to your messages, and vice versa. I should warn you that the program can be very addictive once you begin to make friends and contacts on IRC, especially when you learn how to discuss in 14 languages...

    Topics of discussion on IRC are varied, just like the topics of Usenet newsgroups are varied. Technical and political discussions are popular, especially when world events are in progress. IRC is also a way to expand your horizons, as people from many countries and cultures are on, 24 hours a day. Most conversations are in English, but there are always channels in German, Japanese, French, Finnish, and occasionally other languages.

    IRC gained international fame during the late Persian Gulf War, when updates from around the world came across the wire, and most people on IRC gathered on a single channel to hear these reports.

CONTENTS

1. Getting started
  1.1 Clients and Servers
  1.2 How to Behave on IRC
  1.3 Privacy on IRC
  1.4 First Steps
  1.5 Screen and Keyboard activity

2. Let's go!
  2.1 General Commands
  2.2 Communication and Private Conversations
  2.3 Channels and Public Conversations
  2.4 Channel and User Modes

3. Frequently Asked Questions
  3.1 What are good channels to try while using IRC?
  3.2 What if someone tells me to type something cryptic?
  3.3 I get strange characters on my screen, what are they?
  3.4 I keep hearing about "bots". What are they?

1. GETTING STARTED
  1.1 Clients and Servers

    IRC (original code was written by Jarkko Oikarinen) is a multi-user, multi-channel chatting network. It allows people all over the internet to talk to one another in real-time. It is a functional replacement and improvement to 'talk'; 'talk' is an old, primitive, atrocious, minimalist sort of keyboard/screen conversation tool, using a grotesque, machine-dependent protocol (blah!). IRC does everything 'talk' does, but with better protocol, allowing more than 2 users to talk at once, with access across the aggregate Internet, and providing a whole raft of other useful features.

    If you wish to be known by a nickname which is not your login name, you can do so. Each IRC user, ("client"), chooses a nickname. All communication with another user is either by nickname or by the channel that they or you are on (more information about channels later on).

    The most important thing to remember about IRC is that you have to be willing to explore and learn to use it... Take your time, try not to get flustered, enjoy yourself, and you will soon be making new friends all over the world!

    IRC is based on a client-server model. Clients are programs that connect to a server, a server is a program that transports data, (messages), from a user client to another. There are clients running on many different systems, (Unix, emacs, VMS, MSDOS, VM...), that allow you to connect to an IRC server.

1.2 How to behave on IRC

    The most widely understood and spoken language on IRC is English. However, as IRC is used in many different countries, English is by no means the only language. If you want to speak some other language than English, (for example with your friends), go to a separate channel and set the topic to indicate that. On the other hand, you should check the topic before you move to a channel to see if there are any restrictions about language. On a on-restricted channel, please speak a language everybody can understand. If you want to do otherwise,change channels and set the topic accordingly.

    It's not necessary to greet everybody on a channel personally. Usually one "Hello!" or equivalent is enough. And don't expect everybody to greet you back... On a channel with 20 people that would mean one screenful of "hellos". It's sensible not to greet, in order not to be rude to the rest of the channel. If you must say hello to somebody you know, do it with a private message. The same applies to "goodbyes".

    Also note that using your client facilities to automatically say "hello" or "goodbye" to people is extremely poor Netiquette. Nobody wants to receive autogreets. They are not only obviously automatic, but even if you think you're being polite, you're actually sounding insincere also interfering with the personal environment of the recipient when using autogreets. If somebody wants to be autogreeted on joining a channel, he'll autogreet himself.

    Remember, people on IRC form their opinions about you only by your actions, writings, and comments, so think before you type. If you use offensive words, you'll be frowned upon. Don't "dump" (send large amounts of unwanted information) to a channel or user. This is likely to get you kicked off the channel or killed off from IRC. Dumping causes network "burps"--connections going down because servers can't handle the large amount of traffic anymore.

Other prohibited actions include:
  *Harassing another user. Harassment is defined as behavior towards another user with the purpose of annoying them.
  *Annoying a channel with constant beeping.
  * Any behavior reducing the functionality of IRC.

1.3 Privacy on IRC

    You should always keep in mind that messages you send to someone over IRC are passed along all the servers between you and and the person you're writing to. When you're sending a letter to someone, any postman on the way could open it and read its contents. Any IRC administrator could compile his server in "debug" mode and log all messages that are transmitted through his node. It's a good idea not to trust the servers.

    How to establish direct communications between clients will be explained later, (see DCC CHAT in section 2.5). This method should be used when you don't want anyone else on IRC to intercept your private messages.

1.4 First steps

    Note: With most IRC clients, you can type "/help" for assistance. Many IRC servers allow such commands as "/help intro" or "/help newuser" for additional information.

    All IRC commands begin with the "/" character. Commands are not case sensitive, and can be abbreviated to their first letters: "/SI" and "/sign " stand for /SIGNOFF and will both end your IRC session (more in section 2.1).

    Anything that does not begin with "/" is assumed to be a message to someone and will be sent to your current channel, or to a person you are QUERYing, (the QUERY command will be detailed later on).

1.5 Screen and keyboard activity

    Screen appearance will vary depending on the IRC client you use. If you're using WSIRC, you'll be presented with several windows. The main window allows you to send commands to the IRC server (such as "/help"). Whenever you join a channel, an additional window will open. Thus, you can have several simultaneous conversations at once--each in its own window. 2. LET'S GO!
  2.1 General Commands

Keyword: "nick"
Action: Changes your nickname

Keyword: "quit"
Action: Exits your IRC session (equivalent to "bye", "signoff", and "exit")

Keyword: "help"
Action: Prints help to your screen

Keyword: "whois"
Action: Displays information about someone

Keyword: "whowas"
Action: Displays information about someone who just left

Keyword: "away"
Action: Leaves a message saying you're not paying attention Examples:

"/NICK [nickname]" (not including the quotation marks) would change your nickname to whatever you like. Everyone who wants to talk to you sees this name - also, at the moment, nicknames are limited to 9 characters max. Your nickname will be the same as your login name by default. Nickname clashes are not allowed; this is enforced by the servers. If your intended nickname clashes with someone else's as you enter IRC, you will not be able to enter until you change it to something else. Thus, entering the command "/NICK Nappy" (as always, DO NOT include the quotation marks) would change your nickname to "Nappy" and result in a message notifying you of the change.

"/WHOIS [nickname]" would show information about someone. Thus, entering the command "/WHOIS Nap" would result in a message similar to the following:

*** Nap is pioch@poly.polytechnique.fr (Klein bottle for sale... inquire within.)
*** on channels: @#Twilight_Zone @#EU-Opers
*** on via server poly.polytechnique.fr (Ecole Polytechnique, Paris, FRANCE ! )
*** Nap has a connection to the twilight zone (is an IRC operator)
*** Nap has been idle 0 seconds
If you entered the command "/whois Nappy", and there was no such user on-line, you would receive a message similar to the following:

*** Nappy: No such nickname

    Sometimes WHOIS won't help you much, because the person you want to know more about just left IRC or changed nick. However, you can use WHOWAS to get this information for a while. "/WHOWAS [nickname] shows information about who used the given nickname last, even if no one is currently using it. Thus, "/WHOWAS Nappy" would result in a message similar to the following:

*** Nappy was pioch@poly.polytechnique.fr (Artistic ventures highlighted. Rob a museum.) on channel *private*
*** on irc via server poly.polytechnique.fr (Signoff: Mon Jun 22 20:15:23)

2.2 Communication and Private Conversation

Keyword: "msg"
Action: Sends a private message

Keyword: "query"
Action: Starts a private conversation

Keyword: "notice"
Action: Sends a private message

Keyword: "notify"
Action: Warns you of people logging in or out of IRC

Keyword: "remove"
Action: Removes output from specific people from your screen. Examples:

"/MSG [nickname][channel]" sends a message that only the specified person can read. "/MSG Nap Hello there" would send the private message "Hello there" to Nap (and no one else). If you want to send a private message to more than one person, you can specify a list of nicknames separated by commas (no spaces). Thus, "/MSG Nap,Sorg This message is for both Nap and Sorg" would send the text "This message is for both Nap and Sorg" only to the people with the nicknames of Nap and Sorg.

    Although you can have a private conversation by only using "/MSG" command, typing "/MSG [nickname] [text]" can quickly become tedious. That's where the "/QUERY" command comes in handy. "/QUERY [nickname]" starts a private conversation with [nickname]. Thus, the "/QUERY Nap" command would start a private conversation with the person using the nickname "Nap". If you're using the WSIRC client, a new window will appear on your screen in which the conversation will be held.

    As you begin to make new friends over IRC, you'll want to mark certain nicknames such that you will be warned when they signon or off. The "/NOTIFY [nickname]" command adds [nickname] to the list of people you'll be warned when they enter or quit IRC. Thus, if you entered the "/NOTIFY Nap Bobo" command, you would receive a message similar to the following when "Nap" or "Bobo" logged on:

*** Signon by Nap detected

    Eventually, you may wish some day not to see messages from a specific user on your screen. This may happen when someone is dumping large amounts of garbage, or if someone is harassing you. The proper response to such a behavior is to "IGNORE" that person. "IGNORE" is a very powerful command, and can be used in many ways. The syntax is "/IGNORE [nickname][user@host]". You can IGNORE a specific user or, using "wildcards", everyone from a specific server. Entering "/IGNORE *@cheshire.oxy.edu ALL" would cause all messages from anyone at "cheshire.oxy.edu" to be ignored.

2.3 Channels and public conversations

    On IRC, there are a lot of places where you can "hang out"; those places are called 'channels' (most of the information in this section can also be obtained by using the "/HELP CHANNEL" command). You can compare conversations on a channel to a conversation among a group of people: you see/hear everything that is said, and you can reply to anything that's said. What you type is received by everyone who's willing to listen - and everyone who's late won't hear what was said before, unless someone repeats the conversation.

    All channels on IRC have names: a "#" sign followed by some kind of text-string, like "#C++" or "#Asians" or "#EU-Opers". The name of the channel will often indicate the type of conversation that's going on in there, but don't count on it.

Keyword: "list"
Action: Lists all channels, the number of users on each channel, and the topic of the channel

Keyword: "join"
Action: Joins a channel

Keyword: "who"
Action: Lists the users in a channel

Keyword: "invite"
Action: Invites another user to join a channel

Keyword: "leave"
Action: Leaves a channel

Keyword: "kick"
Action: Removes someone else from a channel

Keyword: "topic"
Action: Changes the topic of the channel

Examples:

"/LIST [flags] [channel mask]" lists all current "channels", number of users, and topic. The displayed list may be quite long, so you can limit it using flags. "/LIST -MIN 10" would only list channels that have at least 10 users.

    To join in the conversation on a certain channel you use the JOIN command. Entering "/join #math" would cause you to join the "#math" channel. If you're using WSIRC, a new window will appear on your screen.

    Upon entering a channel, you are given useful details about it: list of users talking in that channel, topic, etc. Joining a channel does not cause you to leave your previous channel. If you're using WSIRC and have joined 2 different channels, you'll have a total of 3 windows on your screen: one window for each channel, and one window that you use to communicate directly with the IRC server.

    Once in a channel, you may wish to get a detailed list of the people IRC-ing inside. That's where the "WHO" command comes in handy. "/WHO #math" would give you a list of users in the "#math" group.

   It is also possible, when you are already on a channel, to ask someone to join your channel. The command is called INVITE. Entering "/INVITE Bobo #math" would send a message to "Bobo" inviting him/her to join the "#math" channel.

    To leave a channel, just issue a LEAVE command. If you're using WSIRC, make sure that the window of the channel you want to LEAVE is your active window.

   Since there's a way to invite someone to a channel, it only makes sense that you should be able to kick someone off if he or she is behaving like a jerk, annoying people or flooding the channel with unwanted information. "/KICK #math Bobo" would kick Bobo off of the #math channel. Note that only "channel operators" can use this command.

    Channels have topics that indicate the current topic of conversation. You can change this topic on a channel with the TOPIC command. Thus, "/TOPIC #math Math is fun!" would change the topic of the #math channel to "Math is fun!"

    At times, you may want to send a description of what you're doing, how you're feeling, or anything concerning you. That's where the "/ME" command comes in. The syntax is "/me [descriptive action]". If my nickname is Bobo, and I use the command "/me looks around the room...", the other members of the channel will see the following:
"Bobo looks around the room..."
    Don't forget to include the proper punctuation in your [descriptive action], and watch your grammar. Remember that the "/me" command uses the third-person narrative (i.e., "he", "she", or "it").

2.4 Channel and user modes

    Channels can have additional constraints, which can be set by the MODE command (most of the information in this section can also be obtained by using the "/HELP MODE" command). To understand this, recall that the first person to JOIN a channel effectively creates it and is initially "in charge" of the channel, ("Channel Operator" or "chanop"). He/She can subsequently add those constraints, make other people chanops at leisure.

Keyword: "mode"
Action: Changes channel or user mode

    "Public" is the default mode for a channel. When someone is on a public channel, he can be seen by all other users, (if his own user mode permits this). Anyone can notice users on a public channel and join such a conversation.

    "Private" means that, although anyone can see members of such a channel, you can't tell what channel they are on unless you are already on that channel with them. They just appear as "Prv: *" in LIST or NAMES. Since the number of potential channels is in the billions, this is quite some security - all you give away is the acknowledgement that you're IRC-ing.

    If you're on a secret channel, someone who isn't on the same channel can't see that you're there at all; your name doesn't show up in a LIST of active users. The only indication of your presence is that, when entering IRC, all new users are told that there are "NNNNN users on XXX servers". If someone checks on all users and finds less than NNNNN of them, he knows that other people are hiding on secret channels. But a secret channel user still can't be found except by checking through every channel (a hopeless proposition in the face of the huge number of possible channel names). Security through obscurity finally means something. 3. FREQUENTLY ASKED QUESTIONS
3.1 What are good channels to try while using IRC?

    #Hottub and #initgame are almost always teeming with people. #Hottub is meant to simulate a hot tub, and #initgame is a non-stop game of "inits" (initials). Just join the fun and find out!

    Many IRC Operators are in #Twilight_Zone, while European Operators concentrate in #EU-Opers... So if you join an Operator channel and don't hear much talking, don't worry, it's not because you joined, Operators don't talk much on such channels anyways!

3.2 What if someone tells me to type something cryptic?

    NEVER type anything anyone tells you to without knowing what it is. End of story.

3.3 I get strange characters on my screen, what are they?

    IRC has quite a lot of people from Scandinavian countries, }{|][\ are letters in their alphabet (IRC is supposed to support the ISO Latin-1 8-bit character set, but your client must be able to display them...)

3.4 I keep hearing about "Bots". What are they?

    Bots are not real people. There are actually computer programs, many of which are used to keep a channel open. If everyone leaves a channel, it is shut down. Placing a bot in the channel keeps it up and running infinitely.

    How do you know when you've come across a bot? It's often difficult to tell bots from real people. The IRC server may tell you that there are 3 people on a particular channel. You join that channel, but no one says anything to you or each other. In a situation like this, it's likely that the 3 people on that channel are bots.     This is by no means a comprehensive guide to IRC. In reality, however, the average user doesn't need more than this information (and, in fact, may need much less ) to get started with IRC. As with any valuable skill, it takes a little while to learn. But once you do, you'll quickly become addicted. With any luck, you'll be able to find a friend on IRC who can teach you the finer points. Good luck, and have fun!!!