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
|
<chapter id="network-chapter">
<title>Communiceren met anderen</title>
<blockquote>
<attribution>Chuq Von Rospach</attribution>
<literallayout>
"One basic notion underlying Usenet is that it is a cooperative."
Having been on Usenet for going on ten years, I disagree with
this. The basic notion underlying Usenet is the flame.
</literallayout></blockquote>
<para>
Moderne &unix; besturingssystemen zijn er erg goed in met andere
computers of netwerken te communiceren. Twee verschillende
&unix; computers kunnen op veel verschillende manieren informatie
met elkaar uitwisselen. In dit hoofdstuk wordt geprobeerd het te
hebben over hoe je profijt kunt hebben van deze krachtige netwerkmogelijkheid.
</para>
<para>
We zullen proberen elektronische mail, Usenet news, en verscheidene
basisutility's van &unix; die voor de communicatie worden gebruikt te bespreken.
</para>
<sect1 id="network-electronicmail"><title>Electronische Mail</title>
<para>
Een van de populairste standaardmogelijkheden van &unix; is elektronische
mail. Hiermee wordt je het gebruikelijke gedoe bij het zoeken naar een
envelop, een stuk papier, een pen, een postzegel en de brievenbus
bespaard en in plaats daarvan krijg je te maken met het zoeken naar
oplossingen met behulp van de computer.
</para>
<sect2 id="network-sendingmail"><title>Versturen van mail</title>
<para>
Het enige wat je hoeft te doen is het intikken van
<cmdsynopsis><command>mail</command><arg><replaceable>gebruikersnaam</replaceable></arg></cmdsynopsis> <indexterm><primary>mail</primary></indexterm>
en je bericht te typen.
</para>
<para>
Stel bijvoorbeeld dat ik een mail wil sturen naar gebruiker <literal>sam</literal>:
</para>
<para>
<screen>
<prompt>/home/larry# </prompt><userinput>mail sam</userinput>
<computeroutput>Subject: </computeroutput><userinput>De gebruikersdocumenatie
Test alleen even het mailsysteem.
EOT</userinput>
<prompt>/home/larry# </prompt>
</screen>
</para>
<para>
Het programma <application>mail</application> is erg simpel.
Net als <command>cat</command>, accepteert het invoer vanaf de standaardinvoer,
één regel tegelijkertijd, totdat het op een aparte regel een
end-of-text (&eof;) teken op een regel tegenkomt. Dus om mijn bericht te
verzenden had ik op de return toets moeten drukken en vervolgens &eof;.
</para>
<para>
<command>mail</command> is de snelste manier om mail te versturen, en het is erg
nuttig wanneer het wordt gebruikt in combinatie met pipe-symbolen en
omleiding. Als ik bijvoorbeeld het bestand <filename>report1</filename>
naar "Sam" had willen sturen, dan zou ik de opdracht
<command>mail sam < report1</command>
hebben kunnen geven, of zou ik zelfs uit hebben kunnen voeren:
"<command>sort report1 | mail sam</command>".
</para>
<para>
De keerzijde van het gebruik van <application>mail</application> echter om mail te zenden betekent
een zeer grove editor.
Je kan een regel niet meer wijzigen zodra je de return
toets hebt ingedrukt! Dus raad ik je aan, mail te verzenden met
(wanneer je geen gebruikt maakt van een pipe of omleiding)
de mailmodus van Emacs<indexterm><primary>Emacs</primary></indexterm>.
Het wordt behandeld in de <xref linkend="emacs-mail-mode"/>.
</para>
</sect2>
<sect2 id="network-readingmail"><title>Lezen van mail</title>
<para>
<cmdsynopsis>
<command>mail</command>
<arg><replaceable>gebruiker</replaceable></arg>
</cmdsynopsis>
</para>
<para>
Het programma <application>mail</application> biedt een onhandige manier om mail te lezen. Als
je <application>mail</application> intikt zonder enige parameters, krijg je het volgende te zien:
</para>
<para>
<screen>
<prompt>/home/larry# </prompt><userinput>mail</userinput>
<computeroutput>No mail for larry</computeroutput>
<prompt>/home/larry# </prompt>
</screen>
</para>
<para>
Ik ga mezelf wat mail sturen zodat ik wat met de mailreader kan spelen:
</para>
<para>
<screen>
<prompt>/home/larry# </prompt><userinput>mail larry</userinput>
<computeroutput>Subject: </computeroutput> <userinput>Frogs!
and toads!
EOT</userinput>
<prompt>/home/larry# </prompt><userinput>echo "snakes" | mail larry</userinput>
<prompt>/home/larry# </prompt><userinput>mail</userinput><computeroutput>
Mail version 5.5 6/1/90. Type ? for help.
"/usr/spool/mail/larry": 2 messages 2 new
>N 1 larry Tue Aug 30 18:11 10/211 "Frogs!"
N 2 larry Tue Aug 30 18:12 9/191
&</computeroutput>
</screen>
</para>
<para>
De prompt in het mailprogramma is een ampersand ("<literal>&</literal>").
Er zijn een paar simpele opdrachten mee mogelijk, en als je een
<literal>?</literal> intikt,
gevolgd door een druk op de <keycap>return</keycap>, zal het je een beknopt helpscherm geven.
</para>
<para>
De basisopdrachten voor <application>mail</application> zijn:
<itemizedlist>
<listitem><para>[<option>t</option> <emphasis>berichtenlijst</emphasis>] Toon (of <emphasis>t</emphasis>yp) de berichten op het scherm.
</para></listitem>
<listitem><para>
[<option>d</option> <emphasis>berichtenlijst</emphasis>] Verwijder de berichten.
</para></listitem>
<listitem><para>
[<option>s</option> <emphasis>berichtenlijst</emphasis> <emphasis>bestand</emphasis>] Sla de berichten op in <emphasis>bestand</emphasis>.
</para></listitem>
<listitem><para>[<option>r</option> <emphasis>berichtenlijst</emphasis>] Beantwoord de berichten, dat wil zeggen,
begin met het samenstellen van een nieuw bericht naar de persoon die jou de
weergegeven berichten zond.
</para></listitem>
<listitem><para>
[<option>q</option>] Verlaat het programma en sla alle berichten op die je niet
verwijderde in een bestand met de naam <filename>mbox</filename> in je homedirectory.
</para></listitem>
</itemizedlist>
</para>
<para>
Wat is een <emphasis>berichtenlijst</emphasis>? Het bestaat uit een lijst integers gescheiden
door spaties, of een bereik, zoals <literal>2-4</literal> (wat hetzelfde is als
"<literal>2 3 4</literal>"). Je kunt ook de gebruikersnaam van de zender invoeren,
dus de opdracht <command>t sam</command> zou alle mail van Sam
<emphasis>t</emphasis>ypen.
Als een berichtenlijst wordt weggelaten, wordt verondersteld dat het 't
laatste bericht zal zijn dat wordt weergegeven (of getypt).
</para>
<para>
Er zijn verscheidene problemen met de leesfaciliteiten van het
<application>mail</application> programma. Ten eerste stopt het mailprogramma niet als een
bericht groter is dan je scherm! Je moet het opslaan en er later
<command>more</command> op toepassen.
Ten tweede heeft het niet zo'n goede interface voor oude
mail---voor als je mail wilt bewaren en het later wilt lezen.
</para>
<para>
Emacs heeft ook een faciliteit voor het lezen van mail, genaamd
<literal>rmail</literal>, maar het wordt in dit boek niet behandeld.
Bovendien hebben de meeste Linux systemen verscheidene andere
mailreaders beschikbaar, zoals <application>elm</application>,
<indexterm><primary>elm</primary></indexterm> of <application>pine</application><indexterm><primary>pine</primary></indexterm>.
</para>
</sect2>
</sect1>
<sect1 id="network-lookingpeople"><title>Zoeken naar mensen</title>
<sect2><title>De opdracht <command>finger</command></title>
<para>
Met de opdracht <command>finger</command> kun je informatie over andere
gebruikers op je systeem en over de gehele wereld verkrijgen.
Ongetwijfeld werd de opdracht <command>finger</command> benoemd
gebaseeerd op de AT&T advertenties mensen aansporend tot
"reach out and touch someone". Aangezien de
wortels van $unix; in AT&T, liggen, was dit waarschijnlijk
vermakelijk voor de auteur.
<cmdsynopsis>
<command>finger</command>
<arg>-slpm</arg>
<arg><replaceable>gebruiker</replaceable></arg>
<arg><replaceable>@machine</replaceable></arg>
</cmdsynopsis>
De optionele parameters van <application>finger</application> kunnen
een beetje verwarrend zijn. In werkelijkheid is het niet zo slecht. Je kunt vragen om
informatie over een lokale gebruiker ("sam"), informatie over een
andere machine ("@lionsden"), informatie over een remote gebruiker
("sam@lionsden"), en gewoon informatie over de lokale machine (niets).
</para>
<para>
Een andere leuke mogelijkheid is, dat als je vraagt om informatie over
een gebruiker en er geen accountnaam is exact gelijk aan waar je om vroeg,
het zal proberen een overeenkomst te vinden met de echte naam met wat
je opgaf. Dat zou betekenen dat als ik
<command>finger Greenfield</command> opgaf, me zou worden verteld dat
de accountnaam <literal>sam</literal> voor Sam Greenfield voorkomt.
</para>
<para>
<screen>
<prompt>/home/larry# </prompt><userinput>finger sam</userinput><computeroutput>
Login: sam Name: Sam Greenfield
Directory: /home/sam Shell: /bin/tcsh
Last login Sun Dec 25 14:47 (EST) on tty2
No Plan.</computeroutput>
<prompt>/home/larry# </prompt><userinput>finger greenfie@gauss.rutgers.edu</userinput><computeroutput>
[gauss.rutgers.edu]
Login name: greenfie In real life: Greenfie
Directory: /gauss/u1/greenfie Shell: /bin/tcsh
On since Dec 25 15:19:41 on ttyp0 from tiptop-slip-6439
13 minutes Idle Time
No unread mail
Project: You must be joking!
No Plan.</computeroutput>
<prompt>/home/larry# </prompt><userinput>finger</userinput><computeroutput>
Login Name Tty Idle Login Time Office Office Phone
larry Larry Greenfield 1 3:51 Dec 25 12:50
larry Larry Greenfield p0 Dec 25 12:51</computeroutput>
<prompt>/home/larry# </prompt>
</screen>
</para>
<para>
De optie <option>-s</option> vertelt <application>finger</application>
om altijd de korte vorm weer te geven (wat je normaal gesproken krijgt
wanneer je finger toepast op een machine) en de optie <option>-l</option>
vertelt het altijd gebruik te maken van de lange vorm, zelfs wanneer je
finger toepast op een machine. De optie <option>-p</option> vertelt
<application>finger</application> dat je <literal>.forward</literal>,
<literal>.plan</literal> of <literal>.project</literal> bestanden wilt zien, en
<option>-m</option> vertelt <application>finger</application> dat als je
om informatie over een gebruiker vroeg, je alleen informatie krijgt over
een accountnaam; probeer de naam niet te matchen met een echte naam.
</para>
</sect2>
<sect2 id="network-planandproject"><title>Plan en project</title>
<para>
Wat is een <literal>.plan</literal> en een <literal>.project</literal>
eigenlijk? Dit zijn bestanden die
worden opgeslagen in de homedirectory van de gebruiker die worden
weergegeven wanneer de opdracht finger wordt uitgevoerd.
Je kunt je eigen <literal>.plan</literal> of <literal>.project</literal>
bestanden aanmaken. De enige beperking is dat de eerste regel van een
<literal>.project</literal> bestand wordt weergegeven.
<indexterm><primary>.plan</primary></indexterm>
<indexterm><primary>.project</primary></indexterm>
</para>
<para>
Bovendien moet iedereen uitvoerprivileges hebben in je homedirectory:
(<command>chmod a+x ~</command>) en iedereen moet de <literal>.plan</literal>
en <literal>.project</literal> bestanden kunnen lezen
(<command>chmod a+r ~/.plan ~/.project</command>).
</para>
</sect2>
</sect1>
<sect1 id="network-remotesystems"><title>Systemen op afstand gebruiken</title>
<para>
<cmdsynopsis>
<command>telnet</command>
<arg choice="plain"><replaceable>remote-systeem</replaceable></arg>
</cmdsynopsis>
<indexterm><primary>telnet</primary></indexterm>
</para>
<para>
De voornaamste wijze om een remote &unix;-systeem te gebruiken is via
<application>telnet</application>. <application>telnet</application> is
gewoonlijk een tamelijk eenvoudig te gebruiken programma:
</para>
<para>
<screen>
<prompt>/home/larry# </prompt><userinput>telnet lionsden</userinput>
<computeroutput>Trying 128.2.36.41...
Connected to lionsden
Escape character is '^]'.
lionsden login:</computeroutput>
</screen>
</para>
<para>
Zoals je kunt zien, krijg ik een loginprompt voor het remote systeem
nadat ik de opdracht <command>telnet</command> heb aangeroepen.
Ik kan een gebruikersnaam
invoeren (zolang ik het wachtwoord maar weet!) en dat remote systeem
dan gebruiken op bijna dezelfde wijze alsof ik erachter zat.
</para>
<para>
De normale manier om uit <application>telnet</application>
te gaan is middels een <command>logout</command>
op het remote systeem, maar een andere manier is door het escape teken
in te tikken (zoals in het bovenstaande voorbeeld) wat gewoonlijk
<keycap>Ctrl-</keycap> is. Dit geeft me een nieuwe prompt gelabeld
<literal>telnet</literal>. Nu kan ik <command>quit</command> intikken en
<keycap>Return</keycap> en dan zal de verbinding met het andere systeem
worden verbroken en <application>telnet</application> worden beëindigd.
(Mocht je van gedachten veranderen, dan kun je eenvoudigweg de return
indrukken om terug te gaan naar het remote systeem.)
</para>
<para>
<informalfigure fload="0">
<graphic fileref="png-files/grote-X.png"></graphic>
</informalfigure>
Als je gebruik maakt van X, zorg dan voor een nieuwe <command>xterm</command>
voor het andere systeem waar we naartoe gaan. Gebruik de opdracht
<command>xterm -title "lionsden" -e telnet lionsden &</command>.
Hierdoor zal een nieuw <application>xterm</application> venster worden
gecreëeerd dat automatisch <application>telnet</application> uitvoert.
(Als je zoiets vaak doet, zou je er een alias of shellscript
voor kunnen schrijven.)
</para>
</sect1>
<sect1 id="network-changingfiles"><title>Bestanden uitwisselen</title>
<para>
<cmdsynopsis>
<command>ftp</command>
<arg choice="plain"><replaceable>remote-systeem</replaceable></arg>
</cmdsynopsis>
</para>
<para>
De normale manier om bestanden tussen &unix;-systemen te verzenden is met
behulp van <application>ftp</application>, wat staat voor
<emphasis>file transfer protocol</emphasis>. Na het uitvoeren van de opdracht
<command>ftp</command>, wordt je net als bij <application>telnet</application>
gevraagd op het remote systeem in te loggen.
Nadat je dit hebt gedaan, krijg je een speciale prompt: een
<literal>ftp</literal> prompt.
</para>
<para>
De opdracht <command>cd</command> werkt net als anders, maar dan op het remote systeem:
het wijzigt je directory op het <emphasis>andere</emphasis> systeem. Op vergelijkbare
wijze toont <command>ls</command> je bestanden op het remote systeem.
</para>
<para>
De twee belangrijkste opdrachten zijn <command>get</command> en
<command>put</command>. <command>get</command>
zal een bestand van het remote systeem naar het lokale systeem
transporteren en <command>put</command> zal een bestand op het lokale systeem
overbrengen naar het remote systeem. Beide opdrachten werken op de
directory waarin je lokaal <application>ftp</application> begon en en je huidige
remote directory (die je kon wijzigen met <command>cd</command>.
</para>
<para>
Een algemeen probleem met <application>ftp</application>
is het onderscheid tussen tekst en binaire bestanden.
<application>ftp</application> is een zeer oud protocol, en er waren
ooit voordelen om te veronderstellen dat bestanden als tekstbestanden
zouden worden getransporteerd. Een aantal versies van <application>ftp</application> gedraagt zich standaard zo, wat betekent dat elk programma dat wordt
verzonden of ontvangen beschadigd raakt. Gebruik voor de zekerheid de opdracht
<command>binary</command> voordat je <command>get</command> of
<command>put</command> gebruikt.
</para>
<para>
Gebruik de opdracht <command>bye</command> om
<application>ftp</application> te verlaten.
</para>
</sect1>
<sect1 id="network-travellingweb"><title>Reizen op het web</title>
<para>
World Wide Web, of WWW, is een populair gebruik van Internet. Het bestaat
uit <emphasis>pages</emphasis>, elk geassocieerd met een eigen URL;
<emphasis>uniform resource locator</emphasis>.
URL's bestaan uit een grappige reeks in de vorm
<literal>http://www.rutgers.edu/</literal>.
Pages worden gewoonlijk geschreven in HTML
(<emphasis>hypertext markup language</emphasis>).
<indexterm><primary>URL</primary></indexterm>
<indexterm><primary>HTML</primary></indexterm>
<!--
\glossary{uniform resource locator}
\glossary{hypertext markup language} -->
</para>
<para>
HTML maakt het de schrijver van een document mogelijk bepaalde woorden
of fasen (of plaatjes) naar andere documenten elders op het Web te linken.
Wanneer een
gebruiker een document aan het lezen is, kan hij/zij snel naar een ander
gaan door op een trefwoord of een knop te klikken om vervolgens te worden
gepresenteerd op een ander document, mogelijk duizenden mijlen verderop.
<cmdsynopsis>
<command>netscape</command>
<arg><replaceable>url</replaceable></arg>
</cmdsynopsis>
<informalfigure float="0">
<graphic fileref="png-files/grote-X.png"></graphic>
</informalfigure>
De populairste webbrowser onder Linux is <application>netscape</application>, een commerciële browser die wordt
verkocht (en weggegeven) door Netscape Communications Corporation.
<application>netscape</application> draait alleen onder X.
</para>
<para>
<application>netscape</application> probeert zo eenvoudig mogelijk in het gebruik te zijn en
maakt gebruik van de Motif widget set om een zeer op Microsoft Windows
lijkende weergave weer te geven. De basisstrategie voor het gebruik van
<application>netscape</application> is dat onderstreepte blauwe woorden links zijn,
zoals dat met veel afbeeldingen is. (Je kunt erachter komen welke
plaatsen links zijn door erop te klikken.)
Door het met de linkermuisknop klikken
op deze woorden, zal je op een nieuwe pagina worden gepresenteerd.
</para>
<para>
Linux ondersteunt vele andere browsers, waaronder de oorspronkelijke
webbrowser <application>lynx</application>
<indexterm><primary>lynx</primary></indexterm>.
<application>lynx</application> is een tekstbrowser; het
zal geen enkele afbeelding tonen waarmee het Web thans is verenigd; maar het
zal zonder X werken.
<indexterm><primary>lynx</primary></indexterm>
<cmdsynopsis>
<command>lynx</command>
<arg><replaceable>url</replaceable></arg>
</cmdsynopsis>
Het gebruik van <application>lynx</application> is iets moeilijker te leren, maar over het
algemeen zal het spelen met de pijltjestoetsen maken dat je er vaardigheid
in krijgt. Met de pijltjestoetsen naar boven en beneden verplaats je de cursor
tussen links op een gegeven pagina. Met de rechterpijltjestoets volg je de
huidige (opgelichte) link. Met de linkerpijltjestoets herlaad je de vorige
pagina. Om uit <application>lynx</application> te gaan, typ je <keycap>q</keycap>.
<application>lynx</application> heeft nog diverse andere toetsopdrachten; raadpleeg de manpage
voor meer.
</para>
</sect1>
</chapter>
<!--
% Local Variables:
% mode: latex
% TeX-master: "guide"
% End: -->
|