[ PART ONE : BASIC COMMANDS, PRIVATE CONVERSATIONS ] IRC for beginners - an introduction =================================== [NOTE: IRC II, the client we are using in our group, has most of this information on-line. If you are stuck, type /HELP and hit return - if that doesn't work, just try again till it does. To escape from /HELP mode, keep pressing return until your edit line (the line at the bottom of the screen) is empty.] Most of the information in this file can be found in the following files : /HELP INTRO /HELP NEWUSER IRC - what is it ================ Irc is a multi-user, multi-channel chatting network. It allows people all over the internet to talk to one another in real-time. Each irc user has a nickname they use. All communication with another user is either by nickname or by the channel that they or you are on. More about channels later on. IRC - some basics ================= 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 one user (client) to another. The client we use at 3DCV is called IRC II (version 2.1.x), originally written by Michael Sandrov. IRC II ====== All IRCII commands begin with a "/" character. Anthing that does not begin with a / is assumed to be a message to someone and send to your current channel, or to a person you are QUERYing. In the following I will describe the more common commands used in every-day IRC-life. If you are not sure about the spelling of an IRC II command, type the prefix of that command - and press the ESCape key twice. IRC II (from now on IRC) will give you a listing of COMMANDS and ALIASes that start with that prefix. Don't forget the "/" in front of the command, though. Example : /W <ESC><ESC> IRC: *** Commands: IRC: *** WAIT WALLOPS WHILE WHO IRC: *** WHOIS WHOWAS IRC: *** Aliases: IRC: *** W WA WH WI IRC: *** WLOFF WLOG WLON WS [Note : This is an example. Your screen may show more Aliases, and less Commands than shown here, or less Aliases and more Commands - in other words "your mileage may vary" ;-)] BASIC IRC COMMANDS ================== In the following, everything you have to type is preceded with a colon (:), everything that the client program does is preceded with IRC: ----- /LIST Lists all current irc channels, number of users, and topic. ----- Example : : /LIST IRC: *** Channel Users Topic IRC: *** +test 1 this is a test channel IRC: *** #KOFFIE 1 ----- /NAMES Shows the nicknames of all users on each channel ----- Example : : /NAMES IRC: Pub: +test @rvloon IRC: Prv: * ronaldvl fred ----- /NICK <new_nick> Change your nickname (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 by default. You can also set an environment variable, IRCNICK, which value will be used instead.) ----- Example: : /NICK harry IRC: *** rvloon is now known as harry ----- /QUIT Exits irc. You can also use /BYE, /SIGNOFF and /EXIT. ----- /HELP <topic> Gets help on all IRCII commands. ----- Example : : /HELP HELP IRC: *** Help on HELP IRC: Usage: HELP [command] IRC: Shows help on the given command. [ To save space, rest of explanation deleted ] ----- /WHOIS <nick> Shows the "true" indentity of someone ----- Example : : /WHOIS fred IRC:*** fred is fred@131.211.145.24 (Fred Appelman) on channel *private* IRC:*** on irc via server prisma.cv.ruu.nl (The CV stand-alone IRC-server) IRC:*** Command last received: 6322 :is the idle time f ----- /AWAY <away-message> Leave a message explaining that you are not currently paying attention to IRC. ----- Example : : /AWAY I am answering Mother Nature's call. Back in 5 minutes. IRC: You have been marked as being away ----- /AWAY without any additional argument will remove the away-message. ----- Example : : /AWAY IRC: You are no longer marked as being away ----- COMMUNICATION - PRIVATE CONVERSATIONS ===================================== Use the /MSG command (usually /M is an alias for /MSG) to send someone a message that only that person can read. Usage : ----- /MSG <nick> <msg> ----- Example : : /MSG rvloon Where did you put the Motif C++ headerfiles ? This will appear on your screen as : IRC: -> *rvloon* Where did you put the Motif C++ headerfiles ? And on rvloon's screen as : IRC: *YourName* Where did you put the Motif C++ headerfiles ? (provided your nickname is "YourName" of course). ----- To answer to such a message, you have two options : 1) You type /MSG <nick_of_person_who_sent_you_the_message> <reply> 2) You type /MSG , <reply> The comma (,) is an abbreviation for "last person who sent me a message". In a similar fashion, the dot (.) in a /MSG command is an abbreviation for "last person who I sent a message". QUERY ----- You can have a private conversation by only using /MSG. However, typing "/MSG ," or "/MSG <nick>" gets cumbersome. That's where the QUERY command comes in handy. Usage : /QUERY <nick> All subsequent text will be send as private messages to <nick> ; all subsequent text, that is everything you type in the bottom line which doesn't start with a '/'. Also, messages are not sent until you press <RETURN> or <ENTER>. Use /QUERY with no arguments to end a private conversation. I will now show you an example of a private conversation, and the output on both screens : 1) : /NAMES 2) : /QUERY rvloon 3) : Goodmorning 4) : Pretty good, even the weather's fine 5) : /WHOIS rvloon 6) : I have to get back to work, I'll drop by later 7) : /QUERY Output on my screen : 1) Prv: * ronaldvl rvloon 2) *** Starting conversation with rvloon 3) -> *rvloon* Goodmorning *rvloon* morning, how is life ? 4) -> *rvloon* Pretty good, even the weather's fine 5) *** rvloon is rvloon@131.211.145.35 (Ronald van Loon) on channel *private* 5) *** on irc via server prisma.cv.ruu.nl (The CV stand-alone IRC-server) 5) *** Command last received: 46 :is the idle time for *rvloon* do you have time for some coffee ? 6) -> *rvloon* I have to get back to work, I'll drop by later 7) *** Ending conversation with rvloon Output on rvloon's screen : 3) *YourName* Goodmorning -> *YourName* morning, how is life ? 4) *YourName* Pretty good, even the weather's fine -> *YourName* do you have time for some coffee ? 6) *YourName* I have to get back to work, I'll drop by later [ PART TWO : PUBLIC CONVERSATIONS, CHANNELS AND CHANNEL MODES ] Most of the information in this file can also be obtained by issuing: /HELP CHANNEL /HELP MODE and in the /HELP-files to the various commands. Recap ===== In part one, I talked about the basic commands used in IRC and how you could have a private conversation with someone. In the following I will assume you have read and understood Part One. If you don't, contact your local IRC-operator or server-administrator. Information on how you can find out who he/she is, can be found below. Definitions =========== IRC-ADMIN - Person who has access to all files concerning ircd (the server program). IRC-OPER - Person who has privileges given to him by an IRC-ADMIN - someone who tries to maintain a fast reliable IRC network. USER - Person who is using IRC. More basic commands =================== The following list of commands deal with servers and clients in general. Unless otherwise stated, all commands take an optional argument ; this argument specifies the server on which you want the command applied. ----- /LINKS Shows all of the servers currently connected to the irc network. If servername is specifed, LINKS shows any servers that match the given servername. The servername may contain wildcards. ----- Example : : /LINKS *.com IRC: *** *.Spies.COM : [wiretap.spies.com] :<--- on the OTHER side IRC: *** Spies.COM : <--- on YOUR side IRC: *** world.std.com : The World @ Software Tool & Die IRC: *** Firewall.Nielsen.Com : [138.108.101.10] :AC Nielsen, Bannockburn IL IRC: *** mips.mitek.com : OpenConnect Systems Server, Dallas, (2.6pre19.p1) ----- /ADMIN Displays the administrative details about a server. Usually this will give you an e-mail address you can use to ask questions. ----- Examples : : /ADMIN IRC: ### Administrative info about fysak.fys.ruu.nl IRC: ### Dept. of Physics and Astronomy IRC: ### Rijks Univeristeit Utrecht, the Netherlands IRC: ### Peter Mutsaers <muts@fys.ruu.nl> : /ADMIN world.std.com IRC: -world.std.com- ### Administrative info about world.std.com IRC: -world.std.com- ### The World @ Software Tool & Die IRC: -world.std.com- ### Brookline, MA, USA IRC: -world.std.com- ### Spike <spike@world.std.com> ------ /MOTD Gives the message-of-the-day for a server. ------ Example : : /MOTD world.std.com IRC: -world.std.com- MOTD - world.std.com Message of the Day - IRC: -world.std.com- MOTD - Be careful out there... IRC: -world.std.com- MOTD - IRC: -world.std.com- MOTD - ->Spike IRC: -world.std.com- * End of /MOTD command. ------- /USERS Displays the list of users currently logged in on the server's home-machine. ------ Examples : : /USERS IRC: UserID Terminal Host IRC: marjo ttyi0 prisma.cv.ruu.n IRC: rootb pty/ttys0 gandalf IRC: gash pty/ttys1 kameleon IRC: fred pty/ttys2 gandalf IRC: gash pty/ttys4 kameleon IRC: koen pty/ttys5 drogo IRC: marjo pty/ttys6 brutus IRC: fred ttyp1 gandalf:0.0 IRC: marjo ttyp2 brutus:0.0 ------ /TIME Displays the current (local) time on the servermachine. /DATE /DATE and /TIME are identical. ------ Examples : : /TIME IRC: *** prisma.cv.ruu.nl : Wednesday July 31 1991 -- 16:11 MET : /TIME *.au IRC: *** munagin.ee.mu.OZ.AU : Thursday August 1 1991 -- 00:12 EST (from *.AU) : /TIME *.jp IRC: *** utsun.s.u-tokyo.ac.jp : Wednesday July 31 1991 -- 23:12 JST (from IRC: utsun.s.u-tokyo.ac.jp) : /TIME *.edu IRC: *** polaris.ctr.columbia.edu : Wednesday July 31 1991 -- 10:13 EDT (from IRC: polaris.ctr.columbia.edu) ------ /LUSERS Gives a brief listing of the number of users, the number of servers and the number of operators. ------ Example : : /LUSERS IRC: *** There are 210 users on 123 servers IRC: *** 33 users have connection to the twilight zone ------- Public Conversations ==================== In IRC, there are a lot of places where you can 'hang out' - those places are called channels. 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 is late will not hear what is said before unless repeated by one of the ones who were there (who said 'real life'). But I digress. All channels on IRC have names. There are two type of channel names, numeric channel names (all digits) like 42, -40 and 666, and string-channel names, beginning with either a '+' or a '#' sign (explained below) followed by some kind of text-string, like '+C++' or '#COFFEE' or '+Motif_1.1.1'. Usually, the name of the channel will indicate the type of conversation that's going on in there. Don't count on it, though. Every channel has certain characteristics, called channel modes. These will also be explained below. First of all, recall the /NAMES and /LIST commands from Part One of this tutorial ; they will show you the names of existing channel. To join in the conversation on a certain channel you use the /JOIN command. ------ /JOIN <channel> Changes your current channel to the channel specified. /CHANNEL and /JOIN are identical. If the channel did not exist already, it will be created and you will be in charge of the new channel (Channeloperator). ------ I will know show you the example from tutorial Part One, as a public conversation on a channel. 1) : /NAMES 2) : /JOIN +demo 3) : Goodmorning 4) : Pretty good, even the weather's fine 5) : /WHOIS rvloon 6) : I have to get back to work, I'll drop by later 7) : /JOIN 0 The output on my screen : 1) Prv: * YourName rvloon 2) *** YourName has joined channel +demo 2) *** Users on +demo: @Yourname *** rvloon has joined channel +demo 3) > Goodmorning <rvloon> Morning, how is life ? 4) > Pretty good, even the weather's fine 5) *** rvloon is rvloon@131.211.145.35 (Ronald van Loon) on channel +demo 5) *** on irc via server prisma.cv.ruu.nl (The CV stand-alone IRC-server) 5) *** Command last received: 32 :is the idle time for this user <rvloon> do you have time for some coffee ? 6) > I have to get back to work, I'll drop by later 7) *** YourName has left channel +demo The output on rvloon's screen : *** rvloon has joined channel +demo 3) <YourName> Goodmorning > Morning, how is life ? 4) <YourName> Pretty good, even the weather's fine > do you have time for some coffee ? 6) <YourName> I have to get back to work, I'll drop by later 7) *** YourName has left channel +demo ------ It is also possible, when you are already on a channel, to ask someone to join your channel. The command is called /INVITE. ------ /INVITE <nickname> [channel] Invites another user to a channel. If no channel is specified, your current channel is used. In that case, you have to be on a channel for this to work. ------ Examples : : /INVITE rvloon +test IRC: *** Inviting rvloon to channel +test On rvloon's screen the following text will appear : *** rvloon invites you to channel +test : /INVITE rvloon If you are on channel +demo : IRC: *** Inviting rvloon to channel +demo If you are not on any channels : IRC: *** You have not joined any channel ------ If you receive an /INVITE message, you have the following options if you want to join the channel you were invited to : ------ /JOIN -INVITE Join the channel to which you were last invited. ------ Or type /JOIN <channelname>. Finally, there is a third flavor of the /JOIN command : ------ /JOIN -NICK <nick> Join the channel that the specified nickname is on. ------ If you issue a /JOIN command without any parameters, your current channel is displayed. You can leave a channel by : - issuing a /JOIN 0 (see explanation below) - issuing a /LEAVE <channelname> Topics ====== Channels have topics, that indicate the current topic of conversation. You can change the topic on a channel with the /TOPIC command. ------ /TOPIC <topic for channel> Changes the topic for your current channel. ------ Example : : /TOPIC testing IRC: *** rvloon has changed the topic to "testing" Types of Channels ================= There are different types of channels. I will discuss them all and list their various virtues. Limbo/NULL ---------- Channel 0 is the NULL channel, or "limbo" channel. This is the channel you are on by default. You can compare this channel to /dev/null on UNIX systems - everything said on this channel is lost. You enter this channel if you don't want to leave IRC, but also don't want to join in any conversation. Public ------ Channels between 1 and 999 (numeric) and "+"-channels are public by default - public means that everyone can see the channel in the /NAMES and /LIST lists. Public also means that everyone can join that particular channel. Private ------- Channels 1000 and up are private by default - private means that the channel is shown as "Prv" in the /NAMES and /LIST lists. People who don't know the name of the channel are not able to /JOIN. "+" channels can be made Private with the /MODE command - described below. Secret ------ Channels below 0 are secret channels - secret means that the channel will not show up in the /NAMES and /LIST lists at all. "+" channels can be made Secret with /MODE command - described below. People on secret channels are also not counted in /LUSERS, and not shown in /NAMES either. Additional channel flavors ========================== Channels can have additional constraints, which can be set by the /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). He can subsequently add those constraints, make other people channeloperator at leisure. Moderated --------- The only people who talk on a moderated channel, are channel operators. Useful for conferencing (the chairman is the one who will grant chanop-status for the current speaker). Other people can only listen. Limited ------- The number of people allowed to /JOIN the channel is limited to a certain number of people. Topic Limited ------------- The only people allowd to change the topic on a channel are chanops. Invite only ----------- People can only join your channel if they're /INVITEd by someone on your channel. Message Disabled ---------------- People cannot send messages to your channel with the /MSG command. Most of the above modes can be combined. Changing channel modes ====================== If you are a channeloperator, you can change the status of the channel with the /MODE command. The syntax of /MODE is : /MODE <channelname> +<modechars> <parameters> Add constraints to channel <channelname> /MODE <channelname> -<modechars> <parameters> Remove constraints from channel <channelname> You have to be channeloperator on <channelname> for this to work. <Modechars> can be one of the following : m - make channel moderated s - make channel secret p - make channel private l <number> - make channel limited, where <number> is the maximum number of users allowed t - make channel topic limited o <nick> - Makes <nick> a channel operator i - channel is invite only n - No MSGs to the channel are allowed (Message disabled) ------ Example : : /MODE +demo +p IRC: *** Mode change "+p " on channel +demo by rvloon This will make channel +demo private. : /MODE +demo +l 10 This will limit the +demo channel to maximum 10 people at the same time. [ PART THREE : CUSTOMIZING YOUR OWN ENVIRONMENT - VARIABLES AND DEFAULTFILES ] Most of the information in this file can be obtained by issuing : man irc (NOTE : does not work when using the irc-program !) /HELP SET /HELP SET <variable-name> Prerequisites ============= In this part, I will assume the following : - You have read Part One and Part Two of this introduction, and you understand most of it ; you know how to deal with messages send to you, and how to have conversations with people on channels. - You know what environment variables are and how to set them ; if you don't, a brief recap of the procedure follows below - you should however, go out and read a book on UNIX. Issue the following command : echo $SHELL if the computer's response is : .../sh or : .../bash or : .../ksh (where ... is a directory name (usually /bin)) then use the following : <VARIABLE_NAME>="<value>" ; export <VARIABLENAME> ---- Example : IRCNAME="Ronald van Loon" ; export IRCNAME (This sets the variable 'IRCNAME' to the value 'Ronald van Loon' and makes its value available to all programs) In all (?) other cases, (.../csh .../tcsh etc.) setenv <VARIABLE_NAME> "<value>" ---- Example : setenv IRCNAME "Ronald van Loon" To make sure what you did was correct, issue the : echo $<VARIABLE_NAME> command, the computer's response should be the value you just gave it. This should be enough to help you understand, or in any case use the information in the next section. IRC II and Environment Variables ================================ IRC II will use the values of the following environmentvariables, if set : IRCNICK : Specifies the nickname you will have when you initially start irc. You can change it afterwards, obviously, with /NICK. See also part one of this tutorial. IRCNAME : Specifies the name people will see when they issue a /WHO or /WHOIS command. Useful for people who use other people's accounts, or in general to reflect the state of mind you are in today. ---- Example : $ IRCNAME='Crazy Harry' ; export IRCNAME $ IRCNICK='rvl' ; export IRCNICK $ irc IRC : *** Welcome to the Internet Relay Network, rvl : /WHOIS rvl IRC : *** rvl is rvloon@131.211.145.35 (Crazy Harry) on channel *private* ---- TERM : Specifies your terminal type ; if this variable is set to the wrong value, IRC may behave rather strange. Also beware that at some systems IRC II tends to disturb certain settings on your terminal, so your terminal may act strange after using IRC II. HOME : This tells IRC II where your Home directory is. (The directory where your files are). Note : TERM and HOME are usually set when you login, so in most cases there's no need to set them manually. There are three other environment variables IRC uses, but those will be mentioned at the appropriate places throughout this tutorial. IRC II and Initialisation Files =============================== When you use IRC II on a (semi)regular basis, you will discover that every time you start the program you will issue the same initialisation sequence. If that is the case, I have good news for you : you don't have to do that anymore ! IRC II will, at start up, load a file called ".ircrc" (full path: $HOME/.ircrc). It will treat each line in that file as if you typed it manually. For example, if the contents or your .ircrc file is : .ircrc : /COMMENT This is definitely *NOT* a typical .ircrc file .ircrc : /NICK rvl .ircrc : /JOIN +my_channel Obviously, the ".ircrc :"-bit should not be present in the file. What will happen is the following : IRC II loads the .ircrc file, executing your commands one by one : The /COMMENT will be ignored, /COMMENT is typically used in .ircrc-files to add comments to following lines. Second, the /NICK rvl line is read and executed, thus setting your nick to 'rvl'. Last, you will join a channel called '+my_channel', when the /JOIN-line is read and executed. NOTE : it is in general not a good idea to set your nick in .ircrc files, as it makes using IRC II less flexible. Use the environment variable IRCNICK instead, or use the command-line option, described elsewhere. The .ircrc file is a so-called defaultfile; you use it to tailor IRC II to your needs ; you can, however, also create other files with IRC II commands in them - 'batch files' - and use the /LOAD command. /LOAD <filename> Loads the given file into irc, treating each line as an irc command, just as if it were typed into the command line. (Actually, there's more than meets the eye here, but I will postpone further explanation until I go into ALIASes and such.). IRC II provides a number of batchfiles, ready to /LOAD. See also /HELP LOAD. You can change where IRC II looks for files by setting the IRCPATH variable. The value of this variable should be a colon-separated (:) list of directories, in which your files are stored. Changing IRC II's behaviour =========================== To make your life easier (or hopelessly complicated ;-) IRC II has about 543 different variables, all of which control different parts of IRC II. Typically, you will store your favorite set of variable settings in your .ircrc. You set, reset and unset variables with the /SET command : /SET Shows settings of all variables /SET <variablename> Shows setting of <variablename>. It is also useful to show settings of variables starting with a certain prefix. /SET -<variablename> If <variablename> is a text (string) variable, it will be set to the NULL string (""). /SET <variablename> <value> Sets the value of <variablename> to <value>, provided <value> is a valid value for this particular variable. Flavours of Variables ===================== There are five kinds of variables: Type Ref. Valid Values ======= ==== ============================================= Boolean : BOOL : ON, OFF, TOGGLE Level : LVL : PUBLIC, MSG, NOTICE, WALL, WALLOP, NOTE, CRAP Integer : INT : 0,1,2 ... String : STR : <Any text string> Hybrid : HYBR : A combination of the four above. Boolean ------- This kind of variable is either ON or OFF. If you specify TOGGLE when /SETting, it will go from ON to OFF or vice versa. Level ----- This kind of variable is used in situations where IRC II needs to classify kinds of messages : PUBLIC : Messages on a channel MSG : Private messages (MSGs) NOTICE : Notices WALL : WALL message (a message sent to everyone on IRC) WALLOP : a WALLOP message (you only get those when you are an IRC Operator) NOTE : A (server) NOTE message CRAP : Everything not covered by the six message levels above. NONE : None of the above. You can also specify multiple levels, separated by spaces, or specify ALL, and going down from there by preceding the levels you don't want included with a minus-sign '-'. So, ALL is equivalent to : PUBLIC MSG NOTICE WALL WALLOP NOTE CRAP Example: PUBLIC MSG NOTIC is equivalent to ALL -WALL -WALLOP -CRAP -NOTE Integer ------- Your average cardinal type. String ------ A sequence of characters. For certain variables, certain restrictions apply. Hybrid ------ A combination of all or any of the above. General Purpose Variables ========================= I will now describe the variables that are "General Purpose", which means that they are not connected with other IRC commands, like /ON or /ALIAS. In the following, I will not give many examples, as obviously a variable controls certain conditions rather than reflecting an immediate change of environment. Also note that the order in which variables are listed, is arbitrary. AUTO_UNMARK_AWAY : BOOL ON : whenever this variable is ON, you will be automatically unmarked as being AWAY whenever you send a message to a channel or send a private message. (Equivalent to issueing the /AWAY command with no arguments) OFF: Your AWAY-status remains the same, unless you issue the /AWAY command. See also : /AWAY in tutorial one. ---- AUTO_WHOWAS : BOOL ON : in cases where /WHOIS <nickname> would result in <nickname>: No such nickname a /WHOWAS <nickname> will automatically be generated. OFF: You will not be bothered by /WHOWAS's ---- BEEP - how to avoid or limit the amount of BEEPs (^G's) received ================================================================ BEEP : BOOL ON : All BEEPs will be heard at the terminal OFF: All ^G (Control-G) characters will be shown as reversed 'G's. The setting of this variable does not affect the BEEPs generated by the BEEP_ON_MSG variable and the BEEP_WHEN_AWAY variable. ---- BEEP_MAX : INT This variable indicates the maxinum number of beeps you will hear for any given message ; e.g. if this variable is set to '1', and a message sent to you contains 10 beeps, only '1' will be heard. 0 : All BEEPs in the message will be heard >0: See explanation. ---- BEEP_ON_MSG : LVL The message in the class(es) indicated by this variable will generate an audible beep on your terminal. For example, if you set this variable to MSG, then every private MSG you receive will generate an audible BEEP. ---- BEEP_WHEN_AWAY : INT When you've /AWAYed, a number of BEEPs will be generated upon receipt of a MSG. 0 : do not generate beeps >0: specifies the number of BEEPs generated. ---- MAIL : INT By setting this variable, IRC, will tell you when new mail arrives - the client must be installed properly for this to function. See also : part four, in which the wonders of the Status Line are revealed. 0 : do not check for Mail 1 : when mail arrives, display the message : You have new mail. Also, an optional indicator in your status line will tell you how many messages you have in your mailbox. 2 : all the functionality of 1, but IRC will also show the three first lines of the message. ---- [ END OF PART THREE : PART FOUR WILL DEAL WITH THE REMAINING VARIABLES AND THE STATUSLINE ] |