ircu2.10.12 pk910 fork
[ircu2.10.12-pk.git] / doc / history / Manual
1 /************************************************************************
2  *   IRC - Internet Relay Chat, doc/MANUAL
3  *   Copyright (C) 1990, Karl Kleinpaste
4  *
5  *   This program is free software; you can redistribute it and/or modify
6  *   it under the terms of the GNU General Public License as published by
7  *   the Free Software Foundation; either version 1, or (at your option)
8  *   any later version.
9  *
10  *   This program is distributed in the hope that it will be useful,
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *   GNU General Public License for more details.
14  *
15  *   You should have received a copy of the GNU General Public License
16  *   along with this program; if not, write to the Free Software
17  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19
20                                         Date: 04 Apr 1989
21                                       Author: Karl Kleinpaste
22                                               karl@cis.ohio-state.edu
23                                                 
24                            Last modification: 15 May 1992
25                                           by  Mauri Haikola 
26                                               mjh@stekt.oulu.fi
27
28                        Modified for undernet: 7 Feb 1995
29                                           by  Carlo Wood
30                                               carlo@runaway.xs4all.nl 
31
32
33                       INTERNET RELAY CHAT (IRC)
34                   a real-time conversational system
35
36
37 * 1: IRC - replacement for talk(1)
38
39 IRC is a functional replacement for and improvement to talk(1).  Talk
40 is an old, primitive, atrocious, minimalist sort of keyboard/screen
41 conversation tool, using a grotesque, machine-dependent protocol.
42 IRC does everything talk does, but with a better protocol, allowing
43 more than 2 users to talk at once, with access across the aggregate
44 Internet, and providing a whole raft of other useful features.
45
46 Note (added Apr 7, 1998): The above statement has been left there for
47 historical reasons.  It should be noted however that IRC is not any
48 longer a replacement for talk(1).  At the time IRC was first developed,
49 people connected to internet all were using accounts on UNIX Operating
50 Systems, which almost all did run a non-restricted fingerd and a talkd.
51 This allowed to see if someone was logged in (with finger) and then
52 summon him to talk by connecting to his talk daemon.  For IRC however it
53 is necessary to already be connected to an IRC server and one needs
54 to pay attention to the window of the IRC client in order to see if someone
55 wants to talk to you.  Therefore IRC has become more of a 'chat box':
56 a Real Time Chat environment for chatting, making friends and exchanging
57 information.  It has little resemblance anyore with talk(1).
58
59 * 2: Entering Internet Relay Chat
60
61 To enter Internet Relay Chat you need to run a client, which will start
62 connecting to its default server.  More info on clients can be achieved
63 from ftp://ftp.undernet.org/pub/irc/docs/faq/underfaq.1.  A lot of clients
64 for all kinds of Operating Systems and (programming) languages can be
65 found in ftp://ftp.undernet.org/pub/irc/clients/index.html.
66
67 * 3: How much can be seen from here
68
69 The universe - seriously.
70
71 This is most formally called Internet Relay Chat.  Server hosts are
72 connected via a tree structure.  The various servers relay control and
73 message data among themselves to advertise the existence of other
74 servers, users, and the channels and other resources being occupied by
75 those users.
76
77 * 4: Structure
78
79 There is quite a lot of structure to the operation of IRC, as compared
80 to crufty old talk(1).  Since so little could be done with talk(1), it
81 needed little structure.  But to keep track of people spread literally
82 around the world, the structure is useful so that one can speak to exactly
83 those people with whom one wishes to speak.  The structure is outlined in
84 more detail in the paragraphs below.
85
86 ** 4.1: Nicknames
87
88 All users of IRC are known to the system by a `nickname.'  A nickname
89 can be chosen at the moment the client connects, but can be changed at
90 any time.  Nickname clashes are not allowed; this is enforced by the servers.
91 If one's intended nickname clashes with someone else as one enters chat, one
92 will not be able to complete entry to IRC until one changes one's nickname
93 to something else.
94
95 ** 4.2: Presence on a channel
96
97 Fundamental to the operation of IRC is the concept of a channel.  All
98 users are `on a channel' while inside IRC.  One enters the `null
99 channel' first.  One cannot send any messages while not in any
100 chatting channel unless one has set up a private conversation in some
101 way.  The number of channels is virtually unlimited - whatever will
102 fit in a string of 200 characters and starts with a #, & or + sign.
103 A channel which is prefixed with a '#' (pound sign) is a global channel;
104 available to everyone on the network.  A channel prefixed with a
105 '&' (ampersand) is a local channel; only available to users on the server
106 you are connected to.  While a channel prefixed with a + (addition sign)
107 are global and modeless; those channels do accept mode changes.
108
109 ** 4.3: Main modes of #channels
110
111 Public
112
113 This is the default mode for a channel.  When one is on a public
114 channel, one can be seen by all other users (if one's own user mode
115 permits this).  Anyone can notice users on a public channel and join
116 such a channel's conversation.
117
118 Private
119
120 This means that, although anyone can see that one is using chat, no
121 one can tell what channel one is using unless one is already on that
122 channel with oneself.  Since the number of potential channels is in
123 the billions, this is quite some security - all one gives away is the
124 acknowledgement that one is using chat.
125
126 Secret
127
128 While one is on a secret channel, no one who is not on one's channel
129 with oneself can even see that one is there.  One's name does not show
130 up in a wildcard search of active users.  Of course, making a channel
131 like '#test' secret gives a huge change to be discovered anyway.
132
133 Changing the mode
134
135 The mode of a channel (private, secret, invite-only, moderated,
136 topic-limited, person-number-limited, no-messages-to-channel, ban
137 someone from channel, etc.) is set by a channel operator, who is the
138 first person to join a channel, or someone who has had channel
139 operatorship bestowed on them by another channel operator. 
140
141 Local channels
142
143 Channels which are prefixed with the ampersand (&) sign are local
144 channels which mean they can only be accessed to users who are on
145 the same server.  For example, &help may exist on every server on
146 the network, however each of them are different channels whereas
147 global (#) channels are just one channel for the entire network.
148
149 Modeless channels
150
151 Channels that have a name that start with a plus sign (+) instead,
152 are modeless.  This means that nobody is channel operator and hence
153 no mode changes can be done.  The default mode of a +channel is "+nt".
154 The intention of modeless channels is to avoid channel wars by making
155 all users on that channel a-priori equal.  The only possible abuse,
156 channel flooding, should be solved with /ignore.
157
158 *** 4.4: Conversations not using channels
159
160 It is possible to conduct conversations with others without using the
161 formalized channel structure.  Doing so requires that two people set
162 themselves up for private conversation using special commands; see
163 User Commands below.
164
165 ** 5: Getting help
166
167 Type "/help."  Follow the instructions.  Since this is a client feature
168 it might not work for you, in which case you'd have to consult your
169 local IRC guru or someone on the net.
170
171 ** 5.1: User commands
172
173 In most clients, commands must start with a '/' (for example: /join #test).
174 The most important commands supported by IRC are:
175
176       help      quit       who     whois
177       list     topic      join      part
178      links       msg    invite   silence
179      names     stats      nick      away
180       info     clear     query    ignore
181       mode
182
183 Also read the file ADD-TO-IRCRC for a description of Undernet specific
184 commands and an example script for the ircII client.
185
186 *** 5.1.1: /quit [comment]
187
188 /quit exits chat.  Optional comment may be included; see above.
189
190 *** 5.1.2: /who [channelname_mask | user@host.mask]
191
192 /who returns information on who is using chat.  Users of public channels
193 show up with one of their channels identified, if any.  Users of private
194 channels appear, but they are specified as being on a private, unspecified
195 channel.  Users of secret channels and users whose user mode is +i (invisible)
196 do not appear at all.
197
198 Giving a channel name as an argument to /who returns only those users of the
199 specified channel.  This still doesn't show users of secret channel or
200 invisible users one is actually on the same channel with them.  Users
201 of private channels are shown, if an exact channel name is given.
202
203 For a detailed explanation of the many options of /who, see doc/readme.who !
204
205 *** 5.1.3: /whois <nickname>
206
207 This returns information about individual users.  Type "/whois nickname"
208 to get information on the login name and host from which the nicknamed
209 user comes.  You can specify multiple nicknames to query by seperating
210 each with a comma.
211
212 *** 5.1.4: /topic <some topic string>
213
214 Channels can be given off-the-cuff "topics."  Saying "/topic some
215 string of text" will associate that topic with the current channel.
216
217 *** 5.1.5: /list [options] [channel.mask]
218
219 /list will give lists of active channels, the number of users of each,
220 and the topics therewith associated.  Again, secret channels do not
221 appear and private channels only appear as Prv.
222
223 [options] is a comma seperated list of one or more of the following options:
224
225         >nnn
226         <nnn
227         C<ccc
228         C>ccc
229         T<ttt
230     and T>ttt
231
232 This comma seperated list may not contain spaces.
233 Here `nnn' is the minimum or maximum number of users on a channel,
234 `ccc' is the minimum or maximum age or creation time of a channel, in
235 respectively seconds or UTC.  And `ttt' is the minimum or maximum age
236 or creation time of the topic of the channel, in respectively seconds
237 or UTC.
238
239 On most servers, if no options are given, the server will use a
240 default option (like "T<10") in order to strongly reduce the of number
241 of listed channels.
242
243 *** 5.1.6: /join <channel> [key]
244
245 /join <channel_name> is the means to enter a channel.  Give the channel
246 name as an argument.  If this is a secret or hidden channel, /who
247 commands will show oneself and any other users of one's channel.
248
249 One's arrival on a channel is announced to the rest of the users
250 already on that channel.  Silent, anonymous "lurking" is not
251 supported.
252
253 If the channel is locked with a key, you need to add the [key]
254 parameter which acts as a password (cannot contain spaces).
255
256 *** 5.1.7: /msg <nick> <some text string>
257
258 A single message can be sent privately to a certain user with /msg.
259 Type /msg nickname and the text to be sent.  It will be sent privately
260 to the indicated nickname.
261
262 *** 5.1.8: /invite <nick> <#channel>
263
264 If there is a user online to whom one wishes to speak, one may invite
265 that user to join oneself on a certain channel.  One types "/invite
266 nickname" with an optional channel name.  The receiving user gets a
267 one-line message indicating the sender and the invitation.  The
268 receiving user is free to ignore the invitation, of course.  You
269 cannot invite users to a modeless channel.
270
271 *** 5.1.9: /ignore <nick!user@host.mask>
272
273 If one wants to ignore messages sent by some other user or users, it
274 may be done with /ignore command.  One can ignore someone by their
275 nickname, or by their user@host data.  Wildcards may be used.  /ignore
276 is only intended to ignore annoying public messages (messages sent to
277 a channel), to stop flooding (a huge number of messages per second)
278 you have to use banning for channel messages, and /silence for private
279 messages.  /mode <your nick> +d stops all messages from ALL channels.
280
281 *** 5.1.12: /silence [nick!user@host.mask]
282
283 This command effectively stops private message flooding at the server
284 of the flooder.  You can use "/silence nick" to get a list of the
285 silence masks of 'nick'.  This command is undernet specific and therefor
286 not supported by all clients unless you add specifically a line to your
287 clients configuration file.
288
289 *** 5.1.11: /nick <new_nick>
290
291 One can change nicknames by issuing "/nick new-nickname."  All users
292 on one's channel will be informed about the change.  NOTE: If one enters
293 chat with a nickname clash (e.g., one's login name is the same as
294 someone else's, and the other user got there first), the system will
295 not let one enter until one issues a /nick command with a unique
296 nickname.  Nicknames are limited to nine characters in length on the
297 Undernet.
298
299 *** 5.1.12: /mode #channel [lots of parameters]
300
301 This command can be used for altering the various modes of a channel
302 (see the explanation of channel modes above).  /mode command can only
303 be issued by channel operators.  Please use /help, or the manual of
304 your client to find out about this command.
305
306 If you would like a list of the current modes in the channel, type
307 /mode <channel> (you do not need to be a channel operator to do this).
308 For a list of channel bans, type /mode <channel> +b.
309
310 * 6: Questions, problems, troubles?
311
312 If you have problems, please get and read the FAQs from
313 ftp.undernet.org:/pub/irc/docs/underfaq.1 and underfaq.2.
314 You can also ask for help on some of the operator channels on IRC,
315 for example #help.  They will be able to assist you in whatever
316 problems you are having with IRC.