Archived copy of http://www.chatnet.org:80/help/primer.htm as of 2000-12-05 · original content, not edited · ChatNet Old Stuff

An IRC primer.

By: Josh Hope

This FAQ is a compilation of Frequently Asked Questions and their answers about IRC.

 What does 'IRC' stand for?

IRC means simply: Internet Relay Chat

Um, okay. What do you do on IRC?

IRC is a way of chatting over the Internet. IRC is very similar to the chat rooms you'd find on America Online, but at the same time it is very different. IRC is a more stimulating environment. IRC is not censored, nor is there anyone with power over all the IRC networks that form.

How can I start chatting?

First, you need a connection to the Internet. The standard way of getting connected to the Internet is through an ISP. You can use some national services to get connected. National services that offer full Internet access: America Online (only to Windows users) and CompuServe.

I am connected to the Internet, now what?

You must find an IRC client suitable to the platform you are running. If you are in UNIX, you should get ircII. If you are using the Mac OS, get IRCle (http://www.xs4all.nl/~ircle/ ). If you use Windows, the suggested IRC client is mIRC or the ircII Windows port.

I have my client and everything is funky dory! What networks are available? What is a network?

IRC follows the client/server protocol so many other Internet services follow. An IRC client (ircII, ircle, mIRC) connects to a server. A bunch of (or a few) servers connected to each other forms a network, or simply a net. There are 5 major nets out there:

EFnet -- The oldest and most hostile.

UnderNET -- Formed to take the strain off of EFnet a while ago. Now it is pretty crowded and in some channels (rooms) it is impossible to get help or a point across.

UpperNET -- A new net formed to compete with EFnet and UnderNET (and other new nets); usually empty rooms.

InnerNET -- Another new net formed to compete with EFnet and UnderNET (and other new nets); usually empty rooms.

ChatNET -- Again, a new net (the newest). This net is new and growing by leaps and bounds everyday. The best growth potential of the new nets is found here.

Now how do I get to connected to any of these nets?

Simple. (The rest of this infers that your IRC client has already been configured and you are having no troubles. See the IRC client docs that came with the client for more information on how to set it up.) Open your IRC client. Now, to connect to any of these nets, type the following, depending on which net you want:

For ChatNET: Type: /server us.chatnet.org:6667

   or /server eu.chatnet.org:6667

After you type that, messages should start appearing on your client's screen. If they don't, check your documentation or try another net.

Good. I am in a net! Now how do I join channels? How do I get a list of channels?

To do anything in IRC you need to use a command. Commands always start with the '/' character. For example, in the above answer about connecting to servers, you used: '/server <server>'. That is called the server command. From now on, when a command syntax is given in this documentation, it will be given in the following form:

/<command> <stuff for the command|or you can use this stuff> [optional stuff]

The '/' character is always used. The stuff between the '<' and '>' symbols represents stuff that must be there in order for the command to work. The '|' symbol means or. In the example above, read it:

"stuff for the command" or "or you can use this stuff". The stuff in brackets ('[' and ']') is stuff that is optional. Again, using the server example, the server command syntax is:

/server <server> [port]

You must type '/server'. You replace '<server>' with the server you are connecting to. If you wish, you may specify a port (ports are usually between 6660 and 6669).

Now back to the topic. The command syntax to join a channel is:

/join <# or &><channel name> [channel key]

Explaining the syntax: The first argument, '<# or &>', specifies what type of channel. The channels starting with a '#' character are global channels. Anybody on any server in that net can visit and access that channel. The channels starting with a '&' character are local channels. These are almost never used, but they are part of the medium, so I include them here. The '<channel name>' is the name of the channel. The '[channel key]' is the password for the channel (most channels don't have a password). Now, to join the global channel #Macintosh, I would type:

/join #macintosh

If channel macintosh was protected, and the password was Macs, then I'd type:

/join #macintosh Macs

If you wanted to join the local channel local, you would type:

/join &local

List of common channels:

#macintosh -- For Macintosh help and information

#help -- For general help questions.

#linux -- For LINIX help and information

#nuthouse -- To talk to opers and/or admins of servers

#newbies -- For new users to IRC

#irchelp -- For help on IRC

 #doghouse – For K9 and cservice related questions.

To get a list of channels, the command syntax is:

/list [-min #] [-max #] [-topic]

Explaining the syntax: On the UnderNET and EFnet, listing can cause you to be knocked off the net. This is because all the servers flood your connection and your connection is lost. On the new nets, just a plain '/list' with no arguments is fine. For '[-min #]', you substitute the minimum number of users to be in a channel for it to list. Same with '[-max #]', except it is maximum. The '[-topic]' argument will only list channels with a topic.
Examples:

/list

Will list all channels. Could result in being knocked off the net if on UnderNET or EFnet.

/list -min 5

Will list all channels with at least 5 people in them

/list -min 5 -max 20 -topic

Will list all channels that have at least 5 people in them, but not more than 20 people. The channel also must have a topic to be shown in the list.

How do I find information on a person?

There are two commands that can do this. The who command gives you a little information, while the whois command gives you a lot of information. Below is the who command syntax:

/who <nick|host|channel>

Explanation of syntax: The nick is the online name of that person. If you don't know the nick, but know what ISP they use, you can use the host argument instead of the nick argument and see everyone from his ISP. You can use the channel argument to see who is in a certain channel.

Examples:

/who Melkor

Will give you information on the person with the nick: Melkor.

/who *.glasscity.net

Will give you information on all persons online with the ISP GlassCity.Net. The '*' character is a wildcard.

/who #macintosh

Will list the people in #macintosh.

Below is the whois command syntax:

/whois <nick|channel>

Explanation of syntax: The nick is the online name of that person. Using the channel argument instead of the nick argument will give you information about all the people in a certain channel.

Examples:

/whois Melkor

Will display detailed information on the person using the nick: Melkor.

/whois #macintosh

Will display detailed information on all the people in #macintosh.

Is there a way to find out information on a person who was here?

Yes. You use the command whowas. A person's whowas info only lasts like 5 or 10 minutes after that person left. Below is the command syntax for whowas.

/whowas <nick>

Explanation of syntax: The nick is the online name that person was using before he left.

Examples:

/whowas Melkor

Will display the who information for the former person carrying the Melkor nick.

How do I communicate with a person privately?

There are a few ways of doing this. If your client supports the query command, use it. Syntax of query:

/query <nick|channel>

Explanation of syntax: The nick is the online name of that person. The channel argument will query all people in a channel, which will show up to them as normal channel conversation.

Examples:

/query Melkor

Will open a query with Melkor.

/query #macintosh

Will open a query with #macintosh.

You can also use the msg command, which is what the query command is based on. In a msg, however, you must use the command syntax before any and all messages you send to a person (or channel). Below is the syntax for msg.

/msg <nick|channel> <message>

Explanation of syntax: The nick is the online name of that person. The channel argument will message all people in a channel, which will show up to them as normal channel conversation.

Examples:

/msg Melkor What's up?

Will send the message 'What's up?' to the person with the nick Melkor.

/msg #macintosh I know!

Will send the message 'I know!' to #macintosh.

You can also use the DCC CHAT command. Using this command will connect your client and the other person's client together. This prevents any and all lag or netsplits (see later) from interrupting your conversation. Syntax for DCC CHAT:

/dcc chat <nick>

Explanation of syntax: The nick is the online name of that person you want to connect to. After you issue this command, the other person will get a message on their screen informing them you want to chat with him. He will then have to type the same command you typed, but substitute your nick where you put his nick.

Examples:

/dcc chat Melkor

Will tell the person with the nick Melkor that you want to DCC CHAT with him. If Melkor wanted to accept the chat, he would type:

/dcc chat <your nick>

If when the other person (or you) accepts the DCC CHAT, and another window does not appear on your screen, instead you get messages like:

=Melkor= Hello

On your screen, then in order to chat with that person (Melkor in this case), you need to type:

/msg =<nick> <message>

This is the case if you are using ircII. If a new window does appear on your screen, then you can just pretend that window is a direct connection to that person and you can just type your comments to that person, and you can see his comments in that window.

Of course, you can use another form of private communication:

Creating your own channel. Just join a channel with a weird name and tell your friend the name so he can join. Then you both can chat in private, unless someone else joins. ;)

How do I send a file?

To send a file to someone, you need to again use the DCC command. Below is the syntax:

/dcc send <nick> [file name and path]

Explanation of syntax: The nick is the name of the person you want to send a file to. In ircII, you must use the last argument, '[file name and path]' to send a file. If the file resides in the same directory as ircII is located in, then you just need the file name. Otherwise you also need a path. If just '/dcc send <nick>' does not work, then you must specify a file name and path.

Examples:

/dcc send Melkor index.html

Will send the file 'index.html' to the person with the nick Melkor.

How do I receive a file someone is sending to me?

When someone wants to send you a file, he uses the DCC SEND command shown above. When you get a message on your screen informing you the other person has requested a DCC SEND to you, you must use the DCC GET command to get the file. Syntax:

/dcc get <nick> [file name]

Explanation of syntax: The nick is the name af the person you want to get the file from. If you want all files the person is offering (usually people only offer one file), just '/dcc get <nick>' will work fine and dandy. If you don't want all the files, only a certain one, then specify the file name in the '[file name]' argument.

Examples:

/dcc get Melkor

Will get all files the person with the nick Melkor is offering to you.

/dcc get Melkor index.html

Will get the file 'index.html' that Melkor is offering to you.

What is lag ?

If you've been on IRC before, you know about lag. Lag is usually caused by slow servers or badly routed server connections. You know someone is lagged if their messages just spew on the screen all at once. You know if you are lagged if all messages from everyone just start spewing on your screen, then stop, then spew, etc. The only way to fix lag is to switch servers or ports. Again the server command syntax:

/server <server> [port]

Sometimes, though, lag will go away by itself, or the admins of the lagged servers will fix them by rerouting the server connections. If a server constantly lags, then try to find another server.

What is a net-split ?

Net splits occur when two servers become disconnected to each other. This can happen when IRCops or admins are rerouting servers, or when a server starts malfunctioning, or when a router goes down, or when a server goes down. Usually the IRCops or admins will try their best to keep the servers connected.

CTCP commands

There are a wide variety of CTCP commands. Some of these are useful, others are kind of fun. The most widely used CTCP command is the PING command. First the syntax for CTCP commands:

/ctcp <nick|channel> <command>

Explanation of syntax: The nick is the online name of the person you wish to direct the CTCP command to. You could also direct the command to a channel. Now, below is a list of CTCP commands and their uses.

PING (Syntax: /ctcp <nick|channel> PING)

As I mentioned earlier, this is the most commonly used CTCP command. This will tell you whether the target is lagged or not. All clients will automatically respond to this, usually showing a *PING* on your screen. If it took a long time for that to show up, the target is lagged.

PONG (Syntax: /ctcp <nick|channel|server address> PONG)

The pong command is fun to try on servers. If you PONG (or PING) a server, it will return the opposite (PING and PONG are opposites). Some IRC clients don't handle the PONG CTCP and will return an ERRMSG.

VERSION (Syntax: /ctcp <nick|channel> VERSION)

This will return the type and version of the target's IRC client.

FINGER (Syntax: /ctcp <nick|channel|host> FINGER)

Will Finger the target. Most of the time it will return the user's e-mail address, and maybe some information. Not all clients support CTCP FINGER.

INFO (Syntax: /ctcp <nick|channel> INFO)

May return some information on the target. Not all clients support CTCP INFO.

TIME (Syntax: /ctcp <nick|channel> TIME)

Will return the time in the target's time zone.

SOUND (Syntax: /ctcp <nick|channel> SOUND <sound name>)

The target client will play that sound if that sound exists and if the client can handle CTCP SOUND. A lot of people on IRC hate this CTCP. Only mIRC, pIRCH and ircle can handle this, so far.

Op Commands

From here on, this manual will explain commands you can use if you have op status in a channel. This can either be given to you by another user, or by creating a channel (to create a channel, just join a channel that does not exist).

How do I change modes?

Modes affect how a channel operates, which people can join the channel, and other things. (Non op sidenote: There are also user modes: diosw. d is deaf, you can't see channel conversation. i is invisible, you can't be seen in a whois or who unless the person who whos or whoises you is in the same channel as you. o is only applicable if you are an IRCop, and can not be set. s allows you to see server messages [unimportant if you are not an IRCop]. w allows you to see WALLOPS, messages from and to IRCops. To set a user mode, use the syntax:

/mode <your nick> <+ or -><mode letter>

Syntax of the mode command:

/mode <channel> <+ or -><mode letter> [extra info]

Explanation of syntax: Channel is the channel you are in. The '<+ or ->' argument says whether you want the made added (+) or taken off (-). The mode letter is the letter of the mode you are changing. If the mode needs more info, you use the '[extra info]' argument. You can do multiple mode changes like: /mode <channel> +nt, which will set the n and t flags for a channel. Below I list the mode letters and what they do, and a more in depth syntax for those mode changes.

t (Syntax: /mode <channel> <+ or ->t)

If the channel is +t, then only people who are oped in that channel can change the topic (see later). If the channel is -t, then anyone can change the topic.

n (Syntax: /mode <channel> <+or ->n)

If the channel is +n then no one from outside the channel can send a msg to the channel. If the channel is -n then anyone on the net can send a msg to your channel, which can get annoying. Most channels are +nt.

i (Syntax: /mode <channel> <+ or ->i)

This makes the channel invite only. When a channel is invite only, only an op can invite a person to that channel.

i(Invite syntax: /invite <nick> <channel>.)

This can help to keep the channel private, for private conversations.

p (Syntax: /mode <channel> <+ or ->p)

With the p activated in a channel, the channel is private and does not show up in a channel list (It shows up as 'Priv' in a list).

s (Syntax: /mode <channel> <+ or ->s)

The s tag makes a channel secret, and it doesn't show up in a whois on a channel member and disappears completely from a channel list. You can not set the p and s tags at the same time in a channel on the newer servers.

m (Syntax: /mode <channel> <+ or ->m)

The m tag moderates a channel. This means that only users with ops or the v tag (see later) can speak in the channel. All other users can see what the people who can talk say.

l (Syntax: /mode <channel> <+ or ->l [#])

This is the first tag to use the '[extra info]' argument. The l tag sets the limit of users that can join a particular channel. You must specify the number in the '[#]' argument. If you are turning the tag off, you do not need to use the '[#]' argument.

k (Syntax: /mode <channel> <+ or ->k [key])

This tag sets a channel key for a channel. When you turn the tag on, you must specify a key. When you turn off, you do not need to specify a key.

o (Syntax: /mode <channel> <+ or ->o <nick>)

This ops or deops a certain nick in your channel. The '<nick>' argument is a must in both turning the tag on and turning it off. Be careful who you op in a channel, they can then turn around and deop you and do some nasty stuff. You can shorten this command in some clients with the syntax:

/op <nick> to op and /deop <nick> to deop.

v (Syntax: /mode <channel> <+ or ->v <nick>)

This will allow users to talk in channels that have the m tag set to on. You must have the '<nick>' argument when turning the tag on or off.

b (Syntax: /mode <channel> <+ or ->b < nick!user@host >)

This will ban a person from a channel. That person can not join the channel ever again unless someone changes the ban. With this command, you get into the ' nick!user@host' argument. To find a person's nick!user@host you do a whois on that person. Usually, you want to use a wildcard (*) for a persons nick, or they could dodge the ban by changing nicks. You find the user out from their who or whois information. It is all the information before the atmark. (A tilde [~] does not count.) When putting down the host, it is safe to put a wild card then omit the first part of the host. For example, a person with the nick!user@host: Melkor!scrptwiz@home.glasscity.net. You want to ban him. You would do a: /mode <channel> +b *!scrptwiz@*.glasscity.net.
This way he can't change dialup numbers, etc.

How do I kick someone?

You kick someone from a channel when they are acting up and you want to give them a warning. If the person continues to act up, you ban them (see above). To kick, you use the command syntax:

/kick <channel> <nick> [reason]

Explanation of syntax: The channel is your channel. The nick is the name of the person you wish to kick. You can specify a reason if you wish.

Examples:

/kick #macintosh Melkor You are a lamer

Will kick the person with the nick Melkor from #macintosh, showing him the message: 'You are a lamer' on his way out.

How do I change the topic?

If the channel is -t, anyone can change the topic. Otherwise, only ops can change the topic. The syntax to change topics:

/topic <channel> <topic>

Explanation of syntax: The channel is the channel you are in. The topic is what you want the topic to be.
Examples:

/topic #macintosh Macintosh: The Computer That Doesn't Suck

This will set the topic on #macintosh to 'Macintosh: The Computer That Doesn't Suck'.