File: internet-services.texinfo

package info (click to toggle)
linuxcookbook 1.2-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 10,816 kB
  • ctags: 1
  • sloc: makefile: 40
file content (1320 lines) | stat: -rw-r--r-- 43,088 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
@c $Id: internet-services.texinfo,v 1.23 2001/06/06 18:36:02 m Exp m $
@node Internet Services, , The Web, Networking
@comment  node-name,  next,  previous,  up
@chapter Other Internet Services
@cindex other internet services
@cindex internet services, other
@pindex openssh

@noindent
There are many Internet services other than email and the World Wide
Web; this chapter describes how to use many of the other popular
services, including @code{telnet}, @code{ftp}, and @code{finger}.

@menu
* Remote Connections::          Connecting to a remote system.
* File Transfers::              Transferring files between systems.
* Netnews::                     Reading Usenet news.
* Online Status::               Checking if users or systems are online.
* Terminal Messages::           Sending messages to other terminals.
* Chatting::                    Chatting with other users.
@end menu


@node Remote Connections, File Transfers, Internet Services, Internet Services
@comment  node-name,  next,  previous,  up
@section Connecting to Another System
@cindex connecting to another system
@cindex system, connecting to another
@pindex telnet
@pindex hostname

@noindent
Use @code{telnet} to connect to a remote system. Give the name of the
system to connect to as an argument, specifying either its name or
numeric IP address. If that system is reachable, you will be connected
to it and presented with a @code{login:} or other connection prompt (the
network is not exclusive to Linux systems) just as if you were seated at
a terminal connected to that system. If you have an account on that
system, you can then log in to it (@pxref{Login, , Logging In to the
System}).

@itemize @bullet
@item
To connect to the system @code{kanga.ins.cwru.edu}, type:

@example
$ @kbd{telnet kanga.ins.cwru.edu @key{RET}}
Trying 129.22.8.32...
Connected to kanga.INS.CWRU.Edu.
Escape character is '^]'.


BSDI BSD/OS 2.1 (kanga) (ttypf)


@group                         
                         /\
 WELCOME TO THE...     _!  !_
                     _!__  __!_
      __            !          !
    _!  !_          !   !  !   !
   !      !   /\    !   !  !   !
   !      !  !  !   !   !  !   !___
   !      ! !   !   !   !  !   !   !
   !      !_!_  !   !   !  !   !   !
   !      !   ! !   !   !  !   !   !
  _!      !   !_!_  !          !   !_
 !        !       !_!          !     !
!                                    !
!         CLEVELAND FREE-NET         !
!      COMMUNITY COMPUTER SYSTEM     !
!____________________________________!

          brought to you by

    Case Western Reserve University
    Office of Information Services

@end group                         

Are you: 
        1. A registered user
        2. A visitor

Please enter 1 or 2: @kbd{1 @key{RET}}

Enter your user ID (in lower case) at the Login: prompt.
Then enter your password when asked.  Note that the 
password will not print on the screen as you type it.

Login: 
@end example
@end itemize

In this example, the user connected to the system at
@code{kanga.ins.cwru.edu}; the bottom @code{Login:} prompt was the
prompt of the remote system (if you are ever unsure what system you are
on, use @code{hostname} as a shell prompt; @pxref{Commands, , Running
a Command}).

To disconnect from the system, follow the normal procedures for logging
out from the system you are connected to (for how to do that on a Linux
system, @pxref{Logout, , Logging Out of the System}).

@itemize @bullet
@item
To disconnect from a remote Linux system, type:

@example
@cartouche
$ @kbd{C-d}
Connection closed.

$
@end cartouche
@end example
@end itemize

In the preceding example, the first shell prompt was on the remote
system, and the second prompt was on the local system.

@menu
* Suspending Connections::      Suspending a connection with another system.
* Encrypting Connections::      Encrypting a connection with another system.
@end menu


@node Suspending Connections, Encrypting Connections, Remote Connections, Remote Connections
@comment  node-name,  next,  previous,  up
@subsection Suspending a Connection with Another System
@cindex suspending a connection with another system
@cindex system, suspending a connection with another 
@pindex telnet

@noindent
You can also @emph{temporarily} escape back to the local shell by typing
the @dfn{escape character}, which is a key sequence that is interpreted
by @code{telnet} before it reaches the remote system. You will then be
brought to the @code{telnet} command prompt, where you can suspend with
the @samp{z} command; to return to the remote system, bring the job back
into the foreground (@pxref{Foreground Jobs, , Putting a Job in the
Foreground}).

@itemize @bullet
@item
To temporarily return to a local shell prompt, type:

@example
@cartouche
faraway-system$ @kbd{C-[}
telnet> @kbd{z @key{RET}}
[2]+ Stopped                    telnet
$
@end cartouche
@end example

@item
To return to the remote system, type:

@example
@cartouche
$ @kbd{fg @key{RET}}
faraway-system$
@end cartouche
@end example
@end itemize

In the first of the two preceding examples, the escape character
@kbd{C-[} was typed on the remote system, whose shell prompt in this
example is @samp{faraway-system$} (you don't have to type the escape
character at a shell prompt, though; you can type it regardless of what
program you are running or where you are on the remote system). Then,
the @samp{z} command was given to @code{telnet} to suspend the
@code{telnet} connection. In the second example, the suspended
@code{telnet} connection to the remote system was brought back into the
foreground.

@sp .25
@noindent
@strong{NOTE:} You should be aware that it's possible (though not often
desirable) to ``nest'' multiple layers of @code{telnet} sessions on top
of each other by connecting from one system to the next, to the next,
and so on, without disconnecting from the previous system. To avoid 
this, make sure you know which host you're leaving when you're about to
@code{telnet} off to another; the @code{hostname} tool is useful for
this (@pxref{Login, , Logging In to the System}).


@node Encrypting Connections, , Suspending Connections, Remote Connections
@comment  node-name,  next,  previous,  up
@subsection Connecting to Another System with Encryption
@cindex connecting to another system with encryption
@cindex system, connecting to another with encryption
@cindex encryption, connecting to another system with
@pindex kerberos
@pindex openssh

@flushleft
@sf{Debian}: @file{kerberos4kth-user}
@sf{WWW}: @url{http://web.mit.edu/kerberos/www/}
@sf{WWW}: @url{http://www.openssh.com/}
@end flushleft
@*
@noindent
On some systems, your system administrator may ask you to install and
use @code{kerberos}, @code{openssh}, or some other network security tool
so that you may connect to a remote system in a more secure manner than
with @code{telnet}. These tools encrypt the data that is passed between
the local and remote systems during your connect session; they're
becoming very popular today among security-conscious
administrators. Should you be asked to use one, follow your
administrator's instructions in installing and configuring it for your
system.

@sp .25
@noindent
@strong{NOTE:} In order to be of any use, the services and
tools discussed in this chapter require that your system is online or
otherwise connected to a network; see @ref{Communications, ,
Communications}.


@node File Transfers, Netnews, Remote Connections, Internet Services
@comment  node-name,  next,  previous,  up
@section Transferring Files with Another System
@cindex transferring files with another system
@cindex files, transferring with another system
@cindex anonymous ftp
@pindex ftp

@noindent
FTP (``File Transfer Protocol'') is a way to exchange files across
systems. Use the @code{ftp} tool to connect to another system using this
protocol, giving the name or numeric IP address of the system you want
to connect to as an argument. Once connected, you will be prompted to log
in with a username and password (if you have one on that system).

Many systems are set up to accept ``anonymous ftp'' connections, where a
public repository of files are available for downloading by the general
public; to use this, log in with a username of @code{anonymous}, and
give your email address for a password.

@itemize @bullet
@item
To make an anonymous @code{ftp} connection to @code{ftp.leo.org},
type:
@end itemize

@example
$ @kbd{ftp ftp.leo.org @key{RET}}
Connected to ftp.leo.org.
220-Welcome to LEO.ORG.
220-See file README for more information about this archive.
220-
220-Your connection class is named: The world outside Germany
220-
220-If you don't connect from inside Munich and login anonymously,
220-your data transfers are limited to a certain bandwidth.
220-
220-If you notice unusual behaviour, drop a note to ftp-admin@@leo.org.
220 FTP server leo.org-0.9alpha ready.
Name (ftp.leo.org:m): @kbd{anonymous @key{RET}}
331 Guest login ok, send your email address as password.
Password: @kbd{@var{at118@@po.cwru.edu @key{RET}}}
230-      _    ___  ___
230-     | |  | __|/   \            LEO - Link Everything Online
230-     | |__| _| | - |        Munich University of Technology (TUM)
230-     |___/|___|\___/           Department of Computer Science
230-
230-       This Anonymous FTP site is in Munich, Germany, Europe.
230-                  It's Tue Sep 28 18:31:43 MET DST 1999.
230-   Please transfer files during non-business hours (1800-0900 CET).
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
@end example

Once connected and logged in, use the @code{cd} and @code{ls} commands
to change directory and to list files on the remote system.

It is standard practice for public systems to have a @file{/pub}
directory on their FTP host that contains all the files and goodies
available to the general public.

@itemize @bullet
@item
To change to the @file{/pub} directory on the remote system and look at
the files that are there, type:

@example
@cartouche
ftp> @kbd{cd /pub @key{RET}}
250 Directory changed to /pub.
ftp> @kbd{ls @key{RET}}
ftp> ls
200 PORT command successful.
150 Opening ASCII connection for file (918 bytes)
total 30258
-rw-rw-r--   1 ftpadmin ftpadmin 10942767 Sep 28 06:18 INDEX.gz
drwxr-xr-x   5 ftpadmin ftpadmin     512 Sep 17 18:22 comp
-rw-rw-r--   1 ftpadmin ftpadmin 9512498 Sep 28 06:40 ls-lR.gz
drwxr-xr-x   2 ftpadmin ftpadmin     512 Sep 17 18:22 rec
drwxr-xr-x   3 ftpadmin ftpadmin     512 Sep 17 18:22 science
226 Transfer completed with 918 Bytes/s.
ftp> 
@end cartouche
@end example
@end itemize

In this example, the @file{/pub} directory contained three
subdirectories (@file{comp}, @file{rec}, and @file{science}) and two
files, @file{INDEX.gz} and @file{ls-lR.gz}; many public systems have
files similar to these in their @file{/pub}
directories---@file{INDEX.gz} is a listing of all files on their
@code{ftp} site, with descriptions, and @file{ls-lR.gz} is the output of
the command @kbd{ls -lR} run on the directory tree of their @code{ftp}
server.

The following subsections describe how to upload and download files.
Use the @code{quit} command to exit @code{ftp} and end the connection to
the remote system.

@menu
* Uploading Files::             Uploading files.
* Downloading Files::           Downloading files.
@end menu


@node Uploading Files, Downloading Files, File Transfers, File Transfers
@comment  node-name,  next,  previous,  up
@subsection Uploading a File
@cindex uploading a file
@cindex files, uploading

@noindent
Use the @code{put} command to upload a file; give the name of the file
as an argument. @code{put} takes that file in the current directory of
the local system, and puts a copy of it in the current directory of the
remote system. 

@itemize @bullet
@item
To put a copy of the file @file{thyme.rcp} from the current directory on
the local system to the current directory of the remote system, type:

@example
ftp> @kbd{put thyme.rcp @key{RET}}
@end example
@end itemize

The current directory of the @emph{local} system is, by default, the
directory where you ran the @code{ftp} command. To change directories on
your local system, use @code{lcd}; it works just like the @code{cd}
command, but it changes the @emph{local} directory.

@itemize @bullet
@item
To change to the parent directory of the current directory on the local
system, type: 

@example
@cartouche
ftp> @kbd{lcd .. @key{RET}}
Local directory now /home/james/demos
ftp> 
@end cartouche
@end example
@end itemize

In this example, the local current directory is now
@file{/home/james/demos}.

There are other important commands for downloading files---use @samp{i}
to specify that files be transferred as @emph{binary}; normally, the
transfer is set up for text files. When you want to transfer programs,
archives, compressed files, or any other non-text file, set the transfer
type to @samp{i} first.

In recent years, most public systems have added a security measure
forbidding the upload by anonymous users to anywhere but the
@file{/incoming} or @file{/pub/incoming} directories.

The @code{mput} command works like @code{put} but allows you to specify
wildcards. By default, @code{mput} asks you, for each file, whether to
upload the file or not; to turn off this file prompting, type
@kbd{prompt} before giving the @code{mput} command. This command is a
toggle---type @kbd{prompt} again to turn file prompting back on for your
session.


@node Downloading Files, , Uploading Files, File Transfers
@comment  node-name,  next,  previous,  up
@subsection Downloading a File
@cindex downloading a file
@cindex files, downloading

@noindent
The @code{get} command works like @code{put}, but in reverse---specify a
file on the remote system, and @code{get} saves a copy to the current
directory on the local system. Again, use @kbd{i} first when downloading
non-text files. (You can also download text files with @kbd{i}, so it is
good practice to @emph{always} set it before you transfer files; most
Linux systems are configured to set the type to @samp{i} immediately
upon connection).

@itemize @bullet
@item
To download the file @file{INDEX.gz} in the current directory on the
remote system, saving it to your @file{~/tmp} directory, type:

@example
@cartouche
ftp> @kbd{lcd ~/tmp @key{RET}}
Local directory now /home/james/tmp
ftp @kbd{get INDEX.gz @key{RET}}
local: INDEX.gz remote: INDEX.gz
Transferred 10942767 bytes
ftp>
@end cartouche
@end example
@end itemize

@sp .25
@noindent
@strong{NOTE:} The @code{mget} command works like @code{get} but allows
wildcards; as with @code{mput}, you will be prompted to verify each file
unless you use the @code{prompt} command first to turn this off.


@node Netnews, Online Status, File Transfers, Internet Services
@comment  node-name,  next,  previous,  up
@section Reading Usenet
@cindex reading Usenet
@cindex netnews
@cindex Usenet

@flushleft
@sf{WWW}: @uref{http://www.faqs.org/usenet/index.html}
@sf{WWW}: @uref{http://www.geocities.com/ResearchTriangle/Lab/6882/}
@end flushleft
@*
@noindent
Usenet is a famous, vast collection of world-around discussion boards
called @dfn{newsgroups}, where messages (called @dfn{articles}) can be
read and publicly responded to. Newsgroups are named and organized by
hierarchy, with each branch delineated by a period (@samp{.}); for
example, the @samp{comp.os.linux} newsgroup is part of the
@samp{comp.os} branch of the @samp{comp} hierarchy. 

The following table lists the ``Big Eight'' Usenet hierarchies and give
examples of some newsgroups in each one.

@multitable @columnfractions .30 .70
@item @sc{Usenet Hierarchy}
@tab @sc{Description}
@item @code{comp}
@tab Computing. @uref{news:comp.os.linux.advocacy},@*
@uref{news:comp.text.tex}

@item @code{humanities}
@tab Humanities. @uref{news:humanities.music.composers.wagner}

@item @code{misc}
@tab Miscellaneous. @uref{news:misc.consumers.frugal-living}

@item @code{news}
@tab Newsgroups relating to Usenet
itself.@*@uref{news.newusers.questions}

@item @code{rec}
@tab Recreation. @uref{news:rec.music.marketplace.vinyl},@*
@uref{news:rec.food.cooking}

@item @code{sci}
@tab Science. @uref{news:sci.math}, @uref{news:sci.cognitive}

@item @code{soc}
@tab Social groups and cultures. @uref{news:soc.culture.usa},@*
@uref{news:soc.college}

@item @code{talk}
@tab Talk and chit-chat. @uref{news:talk.environment},@*
@uref{news:talk.politics.guns}
@end multitable

While there are many other hierarchies, these eight are technically the
only newsgroups considered to be part of Usenet proper. While
@dfn{netnews} is the term for the collection of all newsgroups including
those in Usenet, these terms are often used interchangeably.

The ``alternative'' hierarchy, @samp{alt}, is perhaps the most popular
hierarchy of all---just about every subject you might want to discuss
has an appropriate newsgroup here, including non sequiturs. There are
also hierarchies for topics concerning certain geographical areas; for
example, the @samp{cols.} hierarchy is for topics pertaining to
Columbus, Ohio, and @samp{seattle} is for Seattle, Washington. So, while
@samp{cols.forsale} pertains to items for sale in the greater Columbus
area, @samp{seattle.forsale} is for items for sale in and around
Seattle. Hierarchies can exist also for certain organizations; for
example, the @samp{gnu} hierarchy is for newsgroups concerning the GNU
Project, and @samp{bit} is for newsgroup redistributions of the popular
Bitnet LISTSERV mailing lists.

The following recipes describe tools for reading and posting articles to
netnews.

@menu
* Newsreaders::                 Choosing a newsreader.
* Finding Newsgroups::          Finding newsgroups for a topic.
@end menu


@node Newsreaders, Finding Newsgroups, Netnews, Netnews
@comment  node-name,  next,  previous,  up
@subsection Choosing a Newsreader
@cindex choosing a newsreader
@cindex newsreader, choosing a
@cindex Gnus
@cindex Mozilla
@cindex News Peruser
@cindex Pimp A** Newsreader
@pindex gnus
@pindex knews
@pindex mozilla
@pindex nn
@pindex pan
@pindex peruser
@pindex slrn

@noindent
An application that lets you read and post articles to newsgroups is
called a @dfn{newsreader}. Here are some of the best newsreaders
available for Linux-based systems.

@multitable @columnfractions .20 .80
@item @sc{Newsreader}
@tab @sc{Description}
@item @code{gnus}
@tab Gnus is a very powerful and feature-full newsreader for use in
Emacs. You can use it to read mail, too.

@noindent
{@sf{Debian}}: @file{gnus}

@noindent
{@sf{WWW}}: @url{http://www.gnus.org/}

@item @code{knews}
@tab A graphical newsreader for use in X. Its features include the
display of article threads in a graphical tree, and options for those
reading news over slow connections.

@noindent
{@sf{Debian}}: @file{knews}

@noindent
{@sf{WWW}}: @url{http://www.matematik.su.se/~kjj/}

@item @code{mozilla}
@tab Historically, commercial Web browsers also had mail and newsreaders
built into them, and that capability remains in the Mozilla browser.

@noindent
{@sf{Debian}}: @file{mozilla}

@noindent
{@sf{WWW}}: @url{http://www.mozilla.org/}

@item @code{nn}
@tab The motto of @code{nn} is ``No News is good news, but @code{nn} is
better''; it's an older (and very popular) newsreader that was designed
for reading the most news in the minimal amount of time.

@noindent
{@sf{Debian}}: @file{nn}

@noindent
{@sf{WWW}}: @url{http://www.math.fu-berlin.de/~guckes/nn/}

@item @code{pan}
@tab The ``Pimp A** Newsreader'' is a new-generation graphical
newsreader that is designed for speed. It is meant to be easy for
beginners to use, and it works in X with GNOME installed.

@noindent
{@sf{Debian}}: @file{pan}

@noindent
{@sf{WWW}}: @url{http://www.superpimp.org/}

@item @code{peruser}
@tab News Peruser is a suite of small tools for use in X that
facilitate the reading and composing of news articles when you're
offline---it downloads batches of news when your system is online.

@noindent
{@sf{Debian}}: @file{peruser}

@noindent
{@sf{WWW}}: @url{http://www.ibiblio.org/pub/Linux/system/news/readers/}

@item @code{slrn}
@tab Based on @code{rn}, one of the oldest newsreaders, @code{slrn} is
optimized for use over slow connections (like home modem dial-ups).

@noindent
{@sf{Debian}}: @file{slrn}

@noindent
{@sf{WWW}}: @url{http://www.slrn.org/}
@end multitable


@node Finding Newsgroups, , Newsreaders, Netnews
@comment  node-name,  next,  previous,  up
@subsection Finding Newsgroups for a Topic
@cindex finding newsgroups for a topic
@cindex newsgroups, finding for a topic
@pindex nngrep

@flushleft
@sf{Debian}: @file{nn}
@sf{WWW}: @url{ftp://ftp.uwa.edu.au/pub/nn/beta/}
@end flushleft
@*
@noindent
Use @code{nngrep} to find newsgroup names that match a pattern. This is
useful for finding groups on a particular topic.

@itemize @bullet
@item
To output a list of all newsgroups that match the pattern
@samp{society}, type:

@example
$ @kbd{nngrep society @key{RET}}
@end example
@end itemize

Use the @samp{-u} option to only search through @emph{unsubscribed}
groups. This is useful if you are subscribed to a number of groups, and
you are looking only for groups you aren't subscribed to yet.

@itemize @bullet
@item
To output a list of all unsubscribed-to newsgroups that match the
pattern @samp{society}, type:

@example
$ @kbd{nngrep society @key{RET}}
@end example
@end itemize

In the previous example, if you were already subscribed to the group
@code{alt.society.neutopia}, that group will not be displayed; but other
groups matching the pattern @samp{society} that you are not subscribed
to would be listed.


@node Online Status, Terminal Messages, Netnews, Internet Services
@comment  node-name,  next,  previous,  up
@section Listing Online System and User Activity
@cindex listing online system and user activity
@cindex systems, listing activity of online
@cindex users, listing activity of online

@noindent
The following tools are used to list the activity of other users and
systems on the Internet---showing whether or not they are currently
online and perhaps displaying a little more information about them.

@menu
* Ping::                        Is that system online?
* Finger::                      Is that user online?
* Finger All::                  Who is on that system?
* IP Address::                  What is the IP address of that system?
* Hostname::                    What is the name for that IP address?
* Whois::                       Who is behind that domain name?
@end menu


@node Ping, Finger, Online Status, Online Status
@comment  node-name,  next,  previous,  up
@subsection Checking Whether a System Is Online
@cindex checking whether a system is online
@cindex system, checking whether one is online
@cindex Muss, Mike
@pindex ping

@noindent
Use @code{ping} to determine whether a particular system is currently
connected to the Internet.

Type @kbd{ping} followed by the name or numeric IP address of the system
you want to check; if your system is online and the system to be checked
is also online, @code{ping} should continually output lines telling how
long the latency, in milliseconds, is between the two systems. Type
@kbd{C-c} to interrupt it and stop @code{ping}ing.

@itemize @bullet
@item
To ping the host @code{bfi.org}, type:

@example
@cartouche
$ @kbd{ping bfi.org @key{RET}}
PING bfi.org (209.196.135.250): 56 data bytes
64 bytes from 209.196.135.250: icmp_seq=0 ttl=63 time=190.0 ms
64 bytes from 209.196.135.250: icmp_seq=1 ttl=63 time=159.9 ms
64 bytes from 209.196.135.250: icmp_seq=2 ttl=63 time=160.5 ms
@kbd{C-c}
--- bfi.org ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 159.9/170.1/190.0 ms
$
@end cartouche
@end example
@end itemize

In this example, the host @code{bfi.org} was @code{ping}ed and a total
of three @code{ping}s were sent and received before the user typed
@kbd{C-c} to interrupt it. As long as these @code{ping} lines are
output, you know that the other machine is connected to the Internet (or
at least to the same network that your localhost is connected to).

You really don't need to analyze the information on each line of a
@code{ping} message---the only useful information is the number at the
end of the line, which tells you how many milliseconds it took to go out
to the Internet, touch or ``ping'' that host, and come
back.@footnote{``I named it after the sound that a sonar makes, inspired
by the whole principle of echo-location,'' said the original author of
@code{ping}, Mike Muss. He died in an automobile accident in November
2000.} The quicker the better---@code{ping}s that are four or five
digits long (or greater) mean a slow connection between the two
machines. When you interrupt the @code{ping}, some statistics are
output, including the minimum, average, and maximum number of
milliseconds it took to @code{ping} the given host. In the example
above, the high was 190 and the low was 159.9 milliseconds, with an
average of 170.1.

@sp .25
@noindent
@strong{NOTE:} If your own system is not online, @code{ping} will report
that either the network is unreachable or that the host isn't found.


@node Finger, Finger All, Ping, Online Status
@comment  node-name,  next,  previous,  up
@subsection Checking Whether a User Is Online
@cindex checking whether a user is online
@cindex user, checking whether one is online
@cindex plans, viewing
@pindex finger

@noindent
Use @code{finger} to check whether or not a given user is online. Give
as an argument the username of the user (if on the local system) or
their email address (if on a remote system). This is called
``fingering'' a user.

If the system they are using has @code{finger} enabled (most Unix-based
systems should), the command will tell you the following: the date and
time when they last logged in; whether or not they are currently logged
in; their full name; their office room and telephone number; their home
directory; what shell they use; whether or not they have mail waiting;
the last time they read mail; and, finally, their ``plan,'' as described
below.

@itemize @bullet
@item
To finger the user @code{bradley@@ap.spl.org}, type:
@end itemize

@example
@cartouche
$ @kbd{finger bradley@@ap.spl.org @key{RET}}
[ap.spl.org]
Login: bradley                         Name: Bradley J Milton
Directory: /sp1/bradley                Shell: /bin/tcsh
Last login Wed Jan 20 16:38 1999 (PST) on ttypb from zais.pair.com
No mail.
Plan:
To learn to how use Linux and GNU software.
$
@end cartouche
@end example

In this example, the user @code{bradley} on the system at
@code{ap.spl.org} is not currently logged in, logged in last on 20
January, and uses the @code{tsch} shell.

@sp .25
@noindent
@strong{NOTE:} On Unix-based systems, you can put information in a
hidden file in your home directory called @file{.plan}, and that text
will be output when someone @code{finger}s you. Some people put
elaborate information in their @file{.plan} files; in the early 1990s,
it was very much in vogue to have long, rambling
@code{.plan}s. Sometimes, people put information in their @file{.plan}
file for special events---for example, someone who is having a party
next weekend might put directions to their house in their @file{.plan}
file.


@node Finger All, IP Address, Finger, Online Status
@comment  node-name,  next,  previous,  up
@subsection Listing Who Is Logged In to a System
@cindex listing who is logged in to a system
@cindex system, listing who is logged in to a
@cindex users, listing those online
@pindex finger

@noindent
To get a listing of @emph{all} users who are currently logged in to a
given system, use @code{finger} and specify the name (or numeric IP
address) of the system preceded with an at sign (@samp{@@}).

This gives a listing of all the users who are currently logged in on
that system. It doesn't give each individual's @file{.plan}s, but the
output includes how long each user has been idle, where they are
connected from, and (sometimes) what command they are running. (The
particular information that is output depends on the operating system
and configuration of the remote system.)

@itemize @bullet
@item
To output the users who are currently logged in to the system
@code{ap.spl.org}, type:
@end itemize
@example
@cartouche
$ @kbd{finger @@ap.spl.org @key{RET}}
[spl.org]
Login      Name              Tty  Idle  Login Time   Office
allison    Allison Chaynes  *q2 16:23  Sep 27 17:22 (gate1.grayline)
gopherd    Gopher Client    *r4  1:01  Sep 28 08:29 (gopherd)
johnnyzine Johnny McKenna   *q9 15:07  Sep 27 16:02 (johnnyzine)
jezebel    Jezebel Cate     *r1    14  Sep 28 08:42 (dialup-WY.uu.net)
bradley    Bradley J Milton  t2     2  Sep 28 09:35 (spl.org)
$
@end cartouche
@end example


@node IP Address, Hostname, Finger All, Online Status
@comment  node-name,  next,  previous,  up
@subsection Finding the IP Address of a Host Name
@cindex finding the IP address of a host name
@cindex IP address of a host name, finding
@pindex ping
@pindex dig

@noindent
When you know the name of a particular host, and you want to find the IP
address that corresponds to it, @code{ping} the host in question; this
will output the IP address of the host in parenthesis (@pxref{Ping, ,
Checking Whether a System is Online}).

You can also use @code{dig}, the ``domain information groper'' tool.
Give a hostname as an argument to output information about that host,
including its IP address in a section labelled @samp{ANSWER SECTION}.

@itemize @bullet
@item
To find the IP address of the host @code{linart.net}, type:

@example
@cartouche
$ @kbd{dig linart.net @key{RET}}
@var{...output messages...}
;; ANSWER SECTION:
linart.net.            1D IN A         64.240.156.195
@var{...output messages...}
$
@end cartouche
@end example
@end itemize

In this example, @code{dig} output the IP address of
@code{64.240.156.195} as the IP address for the host @code{linart.net}.


@node Hostname, Whois, IP Address, Online Status
@comment  node-name,  next,  previous,  up
@subsection Finding the Host Name of an IP Address
@cindex finding the host name of an IP address
@cindex IP address, finding the host name of an 
@cindex host name of an IP address, finding
@pindex dig

@noindent
To find the host name for a given IP address, use @code{dig} with the
@samp{-x} option. Give an IP address as an argument to output
information about that address, including its host name in a section
labelled @samp{ANSWER SECTION}. 


@itemize @bullet
@item
To find the host name that corresponds to the IP address
@code{216.92.9.215}, type:

@example
@cartouche
$ @kbd{dig -x 216.92.9.215 @key{RET}}
@var{...output messages...}
;; ANSWER SECTION:
215.9.92.216.in-addr.arpa.  2H IN PTR  rumored.com.
@var{...output messages...}
$
@end cartouche
@end example
@end itemize

In this example, @code{dig} output that the host name corresponding to
the given IP address was @code{rumored.com}.


@node Whois, , Hostname, Online Status
@comment  node-name,  next,  previous,  up
@subsection Listing the Owner of a Domain Name
@cindex listing the owner of a domain name
@cindex domain name, listing the owner of a
@cindex domain record
@pindex whois

@noindent
An Internet domain name's @dfn{domain record} contains contact
information for the organization or individual that has registered that
domain. Use the @code{whois} command to view the domain records for the
common @code{.com}, @code{.org}, @code{.net}, and @code{.edu} top-level
domains.

With only a domain name as an argument, @code{whois} outputs the name of
the ``Whois Server'' that has that particular domain record. To output
the domain record, specify the Whois Server to use as an argument to the
@samp{-h} option.

@itemize @bullet
@item
To output the name of the Whois Server for @code{linart.net}, type:

@example
$ @kbd{whois linart.net @key{RET}}
@end example

@item
To view the domain record for @code{linart.net}, using the
@code{whois.networksolutions.com} Whois Server, type:

@example
$ @kbd{whois -h whois.networksolutions.com linart.net @key{RET}}
@end example
@end itemize

@sp .25
@noindent
@strong{NOTE:} This command also outputs the names of the nameservers
that handle the given domain---this is useful to get an idea of where a
particular Web site is hosted.


@node Terminal Messages, Chatting, Online Status, Internet Services
@comment  node-name,  next,  previous,  up
@section Sending a Message to Another User's Terminal
@cindex sending a message to another user's terminal
@cindex messages, sending to another user's terminal
@pindex write
@pindex wall
@pindex mesg

@noindent
Use @code{write} to write a message to the terminal of another
user. Give the username you want to write to as an argument. This
command writes the message you give, preceded with a header line
indicating that the following is a message from you, and giving the
current system time. It also rings the bell on the user's terminal.

@itemize @bullet
@item
To send the message @samp{Wake up!} to the terminal where user
@file{sleepy} is logged in, type:

@example
@cartouche
$ @kbd{write sleepy @key{RET}
Wake up!
C-d}
$
@end cartouche
@end example
@end itemize

The other user can reply to you by running @code{write} and giving your
username as an argument. Traditionally, users ended a @code{write}
message with @samp{-o}, which indicated that what they were saying was
``over'' and that it was now the other person's turn to talk. When a
user believed that a conversation was completed, the user would end a
line with @samp{oo}, meaning that they were ``over and out.''

A similar command, @code{wall}, writes a text message to all other users
on the local system. It takes a text file as an argument and outputs the
contents of that file; with no argument, it outputs what you type until
you type @kbd{C-d} on a line by itself. It precedes the message with the
text @samp{Broadcast message from @var{username}} (where @var{username}
is your username) followed by the current system time, and it rings the
bell on all terminals it broadcasts to.

@itemize @bullet
@item
To output the contents of @file{/etc/motd} to all logged-in terminals,
type:

@example
$ @kbd{wall /etc/motd @key{RET}}
@end example

@item
To output the text @samp{Who wants to go out for Chinese food?} to all
logged-in terminals, type:

@example
$ @kbd{wall @key{RET}
Who wants to go out for Chinese food? @key{RET}
C-d}
@end example
@end itemize

You can control write access to your terminal with @code{mesg}. It works
like @code{biff} (@pxref{Biff, , Setting Notification for New Mail}):
with no arguments, it outputs whether or not it is set; with @samp{y} as
an argument, it allows messages to be sent to your terminal; and with
@samp{n} as an argument, is disallows them.

The default for all users is to allow messages to be written to their
terminals; antisocial people usually put the line @kbd{mesg n} in their
@file{.bashrc} file (@pxref{Bash Login, , Customizing Future Shells}).

@itemize @bullet
@item
To disallow messages to be written to your terminal, type:

@example
$ @kbd{mesg n @key{RET}}
@end example

@item
To output the current access state of your terminal, type:

@example
@cartouche
$ @kbd{mesg @key{RET}}
is n
$
@end cartouche
@end example
@end itemize

In the preceding example above, @code{mesg} indicated that messages are
currently disallowed to be written to your terminal. 


@node Chatting, , Terminal Messages, Internet Services
@comment  node-name,  next,  previous,  up
@section Chatting with Other Users
@cindex chatting with other users
@cindex users, chatting with other 

@noindent
There are several ways to interactively chat with other users on the
Internet, regardless of their platform or operating system. The
following recipes describe the most popular tools and methods for doing
this.

@menu
* Talk::                        Chatting directly with a user.
* IRC::                         Chatting on Internet Relay Chat (IRC).
* ICQ::                         Chatting with ICQ tools.
@end menu


@node Talk, IRC, Chatting, Chatting
@comment  node-name,  next,  previous,  up
@subsection Chatting Directly with a User
@cindex chatting directly with a user
@cindex user, chatting directly with a 
@pindex talk
@pindex ytalk

@flushleft
@sf{Debian}: @file{ytalk}
@sf{WWW}: @url{http://www.iagora.com/~espel/ytalk/}
@end flushleft
@*
@noindent
Use @code{talk} to interactively chat in realtime with another
user. Give the username (or email address) of the user you want to chat
with as an argument; a message will be sent to that user's terminal,
indicating that a connection is requested. If that person then runs
@code{talk}, giving your username as an argument, you will both be
connected in a @code{talk} session---the screen will clear and then what
you type will appear on the top of the screen; what the other user types
will appear at the bottom of the screen.

@itemize @bullet
@item
To request a chat with the user @code{kat@@kent.edu}, type:

@example
$ @kbd{talk kat@@kent.edu @key{RET}}
@end example
@end itemize

This command sends a connection request to the user
@code{kat@@kent.edu}. If the user is not logged on or is refusing
messages, @code{talk} will output a message indicating such; but if that
user is available, @code{talk} will send a message to that user asking
to complete the connection, and it will tell you that it is ringing your
party.

If that user then types @kbd{talk stutz@@dsl.org} (if, in this example,
your email address is @code{stutz@@dsl.org}), then your screen will
clear and you will see the following: 

@cartouche
@image{internet-services-talk-01, 4 in}
@end cartouche

You can then type, and what you type will appear on both your screen and
that user's screen; that user, in turn, can @emph{also} type---even
while you are typing---and what that user types appears on the other
half of both screens:

@cartouche
@image{internet-services-talk-02, 4 in}
@end cartouche

It is standard practice to indicate that you are done saying something
by typing @kbd{@key{RET} @key{RET}}, thus making a blank line on your
half of the screen. Some users, when they have typed to the bottom of
their half of the screen, sometimes type @kbd{@key{RET}} repeatedly to
``clear'' their half of the screen and bring the cursor back to the top.

Type @kbd{C-c} to end a @code{talk} session.

When you type, both users see the characters appear in realtime; my
first demonstration of the interactive nature of the Internet, back in
1991, was when I had a live, real-time chat with a user in Australia, on
the other side of the globe---the magic felt that day has never quite
left whenever I run this command!

@sp .25
@noindent
@strong{NOTE:} A similar command, @code{ytalk}, allows you to connect to
multiple users, and it contains other features as well; it is generally
considered to be the superior successor of @code{talk}, but it is not
yet available or standard on all Unix-based systems.


@node IRC, ICQ, Talk, Chatting
@comment  node-name,  next,  previous,  up
@subsection Chatting with Users on IRC
@cindex chatting with users on IRC
@cindex users, chatting with on IRC
@cindex IRC, chatting with users on 
@cindex Internet Relay Chat
@cindex @cite{IRC Prelude, The}
@pindex BitchX
@pindex EPIC
@pindex Xchat
@pindex ZenIRC
@pindex bitchx
@pindex irssi
@pindex epic
@pindex xchat
@pindex zenirc

@noindent
Internet Relay Chat (IRC) is a global chat system, probably the oldest
and largest on the Internet. IRC is a great way to meet and talk to all
kinds of people, live on the Internet; it has historically been very
popular with Linux users.

There are several IRC networks, each with its own servers and tens of
thousands of users; to ``go on'' IRC, you use an IRC client program to
connect with an IRC server. Like CB radio, IRC networks have
@dfn{channels}, usually based on a particular topic, which you join to
chat with other users in that channel (you can also send private
messages to other users).

The following table lists some of the IRC clients available for Linux.

@iftex
@page
@end iftex
@multitable @columnfractions .30 .70
@item @sc{Client}
@tab @sc{Description}
@item @code{bitchx}
@tab BitchX is an IRC client whose features include ANSI color, so it
can display all of the character escape codes that are popularly used on
IRC for special effects. Despite what you might gather from its name, it
doesn't require X in order to run.

@noindent
{@sf{Debian}}: @file{bitchx}

@noindent
{@sf{WWW}}: @url{http://www.bitchx.org/}

@item @code{epic}
@tab EPIC is a large, feature-filled IRC client.

@noindent
{@sf{Debian}}: @file{epic}

@noindent
{@sf{WWW}}: @url{http://www.epicsol.org/}

@item @code{irssi}
@tab A modular IRC client; note that some versions can only be run in X
with GNOME.

@noindent
{@sf{Debian}}: @file{irssi}

@noindent
{@sf{WWW}}: @url{http://irssi.org/}

@item @code{xchat}
@tab Xchat is a graphical IRC chat client for use in X. 

@noindent
{@sf{Debian}}: @file{xchat}

@noindent
{@sf{WWW}}: @url{http://www.xchat.org/}

@item @code{zenirc}
@tab ZenIRC is a minimalist, no-frills (yet fully extensible) IRC mode
for Emacs.

@noindent
{@sf{Debian}}: @file{zenirc}

@noindent
{@sf{WWW}}: @url{http://www.splode.com/~friedman/software/emacs-lisp/zenirc/}
@end multitable

@sp .25
@noindent
@strong{NOTE:} If you've never used IRC before, you might want to read
@cite{The IRC Prelude}, on the Web at 
@url{http://irchelp.org/irchelp/new2irc.html}.


@need 1000
@node ICQ, , IRC, Chatting
@comment  node-name,  next,  previous,  up
@subsection Chatting with Users on ICQ
@cindex chatting with users on ICQ
@cindex ICQ, chatting with users on
@cindex users, chatting with on ICQ
@cindex Licq
@cindex Micq
@cindex Zicq
@pindex licq
@pindex micq
@pindex zicq

@flushleft
@sf{WWW}: @url{http://www.portup.com/~gyandl/icq/}
@end flushleft
@*
@noindent
In the late 1990s, a company called Mirabilis released a proprietary
program for PCs called ICQ (``I Seek You''), which was used to send text
messages to other users in realtime. Since then, many free software
chat tools have been written that use the ICQ protocol.

One nice feature of ICQ is is that you can maintain a ``buddy list'' of
email addresses, and when you have an ICQ client running, it will tell
you whether or not any of your buddies are online. But unlike
@code{talk}, you can't watch the other user type in realtime---messages
are displayed in the other user's ICQ client only when you send them.

The following table lists some of the free software ICQ clients
currently available.

@iftex
@page
@end iftex
@multitable @columnfractions .30 .70
@item @sc{Client}
@tab @sc{Description}
@item @code{licq}
@tab Licq is an ICQ client for use in X.

@noindent
{@sf{Debian}}: @file{licq}

@noindent
{@sf{WWW}}: @url{http://www.licq.org/}

@item @code{micq}
@tab Micq (``Matt's ICQ clone'') is an easy-to-use ICQ client that can
be used in a shell.

@noindent
{@sf{Debian}}: @file{micq}

@noindent
{@sf{WWW}}: @url{http://phantom.iquest.net/micq/}

@item @code{zicq}
@tab Zicq is a version of Micq with a modified user interface.

@noindent
{@sf{Debian}}: @file{zicq}
@end multitable