Basic IRC use and administration
Note: This tutorial was originally written for Unerror.net by Daniel J. Enman. You may reproduce this document only with prior consent of Daniel J. Enman. This tutorial is owned by Unerror.net and Daniel J. Enman, and is subject to copyright laws. If you wish to post this tutorial on your site, you may do so as long as you ask me (firstname.lastname@example.org) and leave this notice intact. The original is posted here. It will probably be much easier to read than this version. You can also download this tutorial in .doc format from here.
Table of contents.
Part 1. ............. Introduction
Part 2. ............. Getting on IRC
Part 3. ............. Basic IRC commands
Part 4. ............. Channel administration
Part 5. ............. Server administration
Part 6. ............. Notes on IRC
Part 1. Introduction
As I'm sure most of you know, I've been running an IRC Network for quite some time now. I figured I need to write a tutorial for Unerror.net to get the collection started anyways, why not do it on something I at least think I know what I'm talking about. This is a very basic tutorial. I'll write some more in depth tutorials on some of the stuff discussed here, later on.
To know how to use and administer an IRC server, you first have to know what an IRC server is, and some background information on it. IRC stands for Internet Relay Chat. It's a real-time chat application. What about AIM or MSN? you say? Those are good person-to-person IM clients, but they don't have the general aspect of IRC at all. You'll see what I mean when we get into IRC more.
In most cases IRC uses port 6667 on the server side (similar to HTTPd [web], uses 80). The client side port is chosen at random. Before you can administer an IRC server, I highly suggest you get in touch with at least the basics of IRC.
This tutorial will help you do all of it, but you can't learn unless you try to do things on your own. That's the problem most people have, they expect they can read tutorial and know how to do it, however, this is untrue, you have to venture out on your own to learn, and if you're not willing to do this, you really shouldn't be running an IRC server, trust me, it's not worth running if you aren't going to put effort into it.
Part 2. Getting on IRC
Alright, so you've still decide you want to get an IRC and learn the basics, and maybe even become an OPER and do a little IRC administering. Well, first you need to connect to IRC. This is pretty simple, first you need an IRC client. I suggest X-Chat for both Windows and Linux. However, if you're going to use X-Chat on Windows, you're either going to have to use the SilverEx version (Linux version: http://xchat.org/files/source/2.4/?S=D (src), http://xchat.org/files/binary/rpm/ (rpm)) (Windows version: http://silverex.info/download/ You need the GTK Runtime to use the SilverEx version. It is available on the site, under the installer file.) Another popular client is mIRC (http://www.mirc.com/).
Once you have your client installed, start it up. I'm going to follow with X-Chat, because I don't use mIRC. Start up X-Chat, and you'll get a server window pop up. Everything on this window should be pretty self explanatory. Put in your nickname you want to use, your secondary nickname, if that one is taken, and the third nickname, if you first and second are taken, the user name, and your real name. (I would suggest not putting your real name, but perhaps your nickname) You can edit it after you read this tutorial, and add some servers to the list, but for now, just click close. (You can open it again, by going X-Chat->Server list or pressing CTRL+S).
Once it's closed, you should end up with a black (or white in the newer X-Chat versions... I hate the white theme) window. In the input box type /server server.address (for example irc.freenode.net). For this tutorial, I'll use the Unerror Network IRC server. So, type /server irc.unerror.com. When connecting you'll see a bunch of text, most of which you can probably safely ignored. You should read the Message of the Day for any network you connect to, or if it says it's the short motd type /motd to see the full one.
Once you're connected, you should set mode +x and +w on your (+x will mask your IP or host on UnrealIRCd based IRC servers, and +w will allow you to get server wallops). Most servers will do it automatically, and some will set +i on you (+i is invisible, meaning you won't be shown in /names #channel if the user isn't in that channel already)
Once your connected to the IRC server, you'll notice you get some information about registering your nickname, and that you're getting scanned for proxies, we'll get into that later on. Now, let's get to chatting. Before you can chat, you need to join a channel. A channel is a a room you go to, with people in it to chat. If you don't know what channel to join you can do a /list to get a list of channel (WARNING: on larger networks, this may take a long time). Again, I'm going to use the Unerror Network IRC server for this tutorial, so, type /join #lobby and you will join the channel #lobby. # denotes that is it a network wide channel. If it were &lobby, it would only be a local channel, meaning it would only be on the Unerror IRC server, and not the rest of AnewEraIRC (the Unerror Network's IRC Network), once you joined, you can start chatting!
+w receive wallop messages
+x masks your host so others cannot see the true address
+i invisible, don't show you in the /name output
+p Hide the channels you are in from your /whois output
+G strips bad words from messages.
+R block non-registered users messages
+s receive server messages
(Note: For a larger list of usermodes, check http://www.alien.net.au/irc/usermodes.html)
Part 3. Basic IRC commands
These are just some basic IRC commands that you might actually use often.
/nick nickname Changes your nickname on the IRC Network.
/list Gets a list of all the channels on an IRC Network
/join #channel Join a channel
/part #channel Leave a channel
/me action Does an action, ie. * microburn writes a tutorial.
/whois user Gets information on another user.
/umode [+/-]mode Add or remove a usermode from yourself
/away [message] Set yourself as away
/msg user message Send a message to a user
/links Gives a list of all the connected IRC servers.
/admin [server] Prints the admin section to the user.
/knock #channel knock on an invite only channel.
/quote (or /raw) Send a command directly to the IRC server. For example if your client queries /help for it's help system, /quote help would give you the server help.
/ctcp type user Get information on the user's client. version (Types: version get the version of the users client. time get the time of the users client. ping Get a ping reply from a client.)
/ignore user@host type option Ignore a user. (Types: PRIV Ignore private messages from the user. CHAN Ignore channel message from the user. NOTI Ignore notices from the user. CTCP Ignore CTCP requests from a user. DCC Ignore DCC from a user. INVI Ignore invites from a user, ALL Completely ignore a user. Options: NOSAVE Self explanatory QUIET Self explanatory.) Note: other clients may have different /ignore options.
/unignore user@host Removes a user from your ignore list. Note: other clients may have different /unignore options.
(Note: There are of course many more IRC commands to use, but those are the basics. If you're interested in reading about more of them, I'm sure Google can help you out.)
Part 4. Channel administration
So, you've been on IRC for awhile, and the channel has decided you would make a good channel op. Given you've been using IRC for awhile, chances are you know what a channel op is. For those who don't, I'll explain. A channel op is in control of a channel. They can mute it, kick users from it, ban users, and enforce the rules. When you have been opped (become a channel op) you'll see a message like this: --- oped_user gives channel operator status to yournick or --- oped_user gives channel operator status to yournick or oped_user has set mode +o yournick.
Chances are, the people giving you ops for the channel will give you a run down of your job, and what do to, but here's a quick list of commands and things channel ops can do
voice has no more power than a normal user, other than they can talk when the channel is set to +m. (see below)
half-op has as much power as a channel op, except they cannot kick ops.
op has the power to do the channel administration tasks.
/kick user reason Kick a user from the channel, they will be able to join again.
/ban user [or nick!user@host] Bans a user, if they leave (or are kicked) from a channel they will not be able to join until the ban is lifter. If they remain in the channel, they will not be able to talk.
/kickban user reason- Kick and ban a user from a channel. They won't be able to join again until the ban is lifted.
/op user Give channel op status to another user.
/voice user Give voice to a user.
/mode [channel] [-]mode [option] [user] Change a mode for the channel, of give a user a certain mode in the channel. The flag before the mode, means it will remove the mode.
/topic new topic Change or set a channel topic.
/invite user [channel] Invite a user to a channel.
+n no outside messages or notices
+t only channel ops can change the topic
+i invite only, a user who wishes to join must
+p private channel (cannot be +p and +s)
+s secret channel (cannot be +s and +p)
+k sets a keyword for the channel, to join, a user must enter this keyword
+m silences a channel, only people with voice and above can talk
+b banns a user or host from the channel
+l sets a limit on the number of users allowed in the channel
+v gives a user voice
+h gives a user half channel operator status
+o gives a user channel operator status
(Note: For more information on channel administration and management, read the channel management RFC at http://www.ietf.org/rfc/rfc2811.txt)
Part 5. Server administration
If you've proved yourself to be useful and trustworthy around the IRC Network, there may come a time, when one of the server administrators, will give you an O:Line and make you an IRC Operator. There are a number of different types of IRC Operators. They control the IRC server, and make sure everything is running smoothly.
local local operators can do local server things, such as place k:lines or local kills, generally speaking, what they do doesn't effect the network.
global can set glines (given they have the flag set in the config for it) and do global kills, what they do can effect the network.
server-admin high level oper or server administrator of one of the servers, they can gline, and kline, and kill users network wide.
services admin high level oper, can set +q on themselves (meaning they cannot get kicked from a channel)
netadmin The highest level oper. There are usually very few on a network, they are the ones who are in charge of the network. They have the power to do pretty much anything on the IRC server.
(Note: there are many, many different commands for IRC Opers, I suggest you read the UnrealIRCd docs to get a good idea of some of the more advanced commands.).
/oper username password Login to your operator status
/wallops message Send a message to all the users with usermode +w set on them.
/globops message Sends a message to all the connected opers
/adchat message Sends a message to all the connected admins (server admin, services admin, netadmin)
/nchat message Send a message to all the connected netadmins
/kill user message forcefully disconnect a user from the IRC server they are connected to. (Note: local operators can only kill users on their local server, whereas global operators [and above] can kill users network wide)
/kline [+/-] host|nick [time] [:message] Ban a user from the server they are on. This is not global, and a user can easily log onto another server on the network. If no time is given, it will be permanent.
/zline [+/-] IP|nick[time] [:message] Deny's user connection to an IRC server based on their IP address. This only affects the server they were on when then zline was placed. If no time is given, it will be permanent.
/gline [+/-] host|nick [time] [:message] A global ban from the network. It is basically a kline on all servers, network wide. If no time is given, it will be permanent.
/gzline [+/-] IP|nick [time] [:message] A global z:line. It is basically a zline on all the servers, network wide. If no time is given, it will be permanent.
/shun [/zombie] [+/-] IP|nick [time] [reason] Disallows any commands to be sent to the IRC server by the shunned or zombied user. If no time is given, it will be permanent. (Note: it is /shun on UnrealIRCd servers and /zombie on Hybrid based servers)
/rehash Rehash the config file from the IRC server.
/sethost newhost Change your IRC host (/chghost user host changes the host of another user)
/setident newident Change your IRC ident (/chgident user ident changes the ident of another user)
/stats option Gets the stats of an IRC server based on option.
B - banversion - Send the ban version list
b - badword - Send the badwords list
C - link - Send the link block list
d - denylinkauto - Send the deny link (auto) block list
D - denylinkall - Send the deny link (all) block list
e - exceptthrottle - Send the except trottle block list
E - exceptban - Send the except ban block list
f - spamfilter - Send the spamfilter list
F - denydcc - Send the deny dcc block list
G - gline - Send the gline list
Extended flags: [+/-mrs] [mask] [reason] [setby]
m Return glines matching/not matching the specified mask
r Return glines with a reason matching/not matching the specified reason
s Return glines set by/not set by clients matching the specified name
I - allow - Send the allow block list
j - officialchans - Send the offical channels list
K - kline - Send the ban user/ban ip/except ban block list
l - linkinfo - Send link information
L - linkinfoall - Send all link information
M - command - Send list of how many times each command was used
n - banrealname - Send the ban realname block list
O - oper - Send the oper block list
S - set - Send the set block list
s - shun - Send the shun list
Extended flags: [+/-mrs] [mask] [reason] [setby]
m Return shuns matching/not matching the specified mask
r Return shuns with a reason matching/not matching the specified reason
s Return shuns set by/not set by clients matching the specified name
P - port - Send information about ports
q - sqline - Send the SQLINE list
Q - bannick - Send the ban nick block list
r - chanrestrict - Send the channel deny/allow block list
R - usage - Send usage information
t - tld - Send the tld block list
T - traffic - Send traffic information
u - uptime - Send the server uptime and connection count
U - uline - Send the ulines block list
v - denyver - Send the deny version block list
V - vhost - Send the vhost block list
X - notlink - Send the list of servers that are not current linked
Y - class Send the class block list
z - zip Send compression information about ziplinked servers (if compiled with ziplinks support)
Z - mem Send memory usage information
(Note: This is a list from the UnrealIRCd docs, I suggest you check your IRCd's docs to find out the /stats list for that. Also /stats itself should output it.)
(Note(2): Not all the /stats options are available to normal users, some are OPER only)
Part 6. Notes on IRC
Just as some general notes and advice for using IRC and administering it.
First of all, don't take things to heart to much. Remember it's only the Internet and the person could 6357.715 kilometers away from you. So often I've seen people get worked up because of something someone has said on IRC (or the Internet in general). Don't, unless you know the person in real life, changes are, you'll never see them, and chances are, it's nothing to get anxious about.
If you are given power, don't abuse it. People give you the power for a reason, because they expect you to use it properly. This isn't a guide on how to be a good oper, or channel op, you IRC network should have one, or at least have a set of rules.
If you get bored, why not go more in depth on IRC. Sometime in the near future I'll write more in depth guides on IRC. Until them, keep yourself busy reading the IRC RFC's:
http://www.ietf.org/rfc/rfc2812.txt Client protocol
http://www.ietf.org/rfc/rfc2811.txt Channel management.
This ends the IRC tutorial. I hope it proved helpful. Any questions of comments can be sent to email@example.com. As stated earlier, it would probably be easier to read the original, since it includes the bolds, and italics in the correct places. I hope it proves useful.