<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
]>
<!--Dit vertaalde document werd oorspronkelijk geschreven in de debiandoc DTD,
gewijzigd in de DocBook DTD door Ellen Bokhorst, bovendien die secties die niet waren afgemaakt, tussen commentaartekens geplaatst voor zover dit nog niet was gedaan--> 
<book lang=nl>
  <bookinfo>
   <title>Debian Tutorial</title>
    <subtitle></subtitle>
    <author>
    	<firstname>Havoc</firstname>
    	<surname>Pennington</surname>
	<affiliation>
		<address>
		<email>hp@debian.org</email>
		</address>
	</affiliation>
    </author>
    <author>
	<firstname>Vertaald door: Ellen</firstname>
	<surname>Bokhorst</surname>
	<affiliation>
		<address>
		<email>bokkie@nl.linux.org</email>
		</address>
	</affiliation>
     </author>


<legalnotice><para>
&copy; 1998 Software in the Public Interest and individual contributors.
</para>
<para>Permission is granted to make and distribute verbatim
copies of this manual provided the copyright notice and this
permission notice are preserved on all copies.</para>

<para>Permission is granted to copy and distribute modified
versions of this manual under the conditions for verbatim
copying, provided also that the sections that reprint "The
GNU General Public License," "The GNU Library General
Public License," and other clearly marked sections held
under separate copyright are reproduced under the conditions
given within them, and provided that the entire resulting
derived work is distributed under the terms of a permission
notice identical to this one.</para>

<para>Permission is granted to copy and distribute translations
of this manual into another language under the conditions
for modified versions.  "The GNU General Public License"
and "The GNU Library General Public License" may be
included in a translation approved by the Free Software
Foundation instead of in the original English.</para>

<para>At your option, you may distribute verbatim and modified
versions of this document under the terms of the GNU General
Public License, excepting the clearly marked sections held
under separate copyright.</para>

</legalnotice>
</bookinfo>

<toc></toc>	  

<chapter id="about"><title>Over dit handboek </title>

<para>Dit is de Debian Tutorial. Het is bedoeld voor lezers voor
wie Debian GNU/Linux nieuw is. Er wordt geen voorgaande kennis
van GNU/Linux of een ander op Unix lijkend systeem verondersteld,
maar er wordt wel vanuit gegaan dat je algemene basiskennis van computers
en hardware hebt (je zou moeten weten wat de basisonderdelen van een
computer zijn, en waarvoor men een computer zou kunnen gebruiken).</para>

<para>De bedoeling van dit handboek is dat het in de aangegeven volgorde
wordt gelezen; ieder hoofdstuk gaat uit van wat kennis van voorgaande
hoofdstukken, alhoewel je het misschien prettiger vindt van het ene
deel naar het andere deel te springen.</para>

<para>Er is ook een Debian Referentie Gids gepland, die veel omvangrijker, 
maar minder inleidend zal zijn.</para>

<para>In deze tutorial zal ervan worden uitgegaan dat je Debian
GNU/Linux reeds volgens het installatie-handboek (welke op moment
van dit schrijven incompleet is) hebt ge&iuml;nstalleerd
en geconfigureerd. Echter misschien wil je de tutorial eerst
eens bekijken om meer over Debian te leren, voordat je gaat 
installeren.</para>


<para>Deze tutorial probeert in het algemeen redenen voor zaken
te geven, en je te helpen begrijpen wat er zich binnenin het
systeem afspeelt. Het is de bedoeling je in staat te stellen
nieuwe problemen op te lossen en zoveel mogelijk uit je
computer te halen. Er is dus ruim voldoende aan theorie, historie
en leuke feiten ingeschakeld met de "How To" aspecten van het
handboek.</para>

<para>Stuur alsjeblieft commentaar over dit handboek naar de Debian
Documentation Project mailing list
<email>debian-doc@lists.debian.org</email>. We zijn vooral 
ge&iuml;nteresseerd in of het van nut was voor je, en hoe we
het kunnen verbeteren. Als je tijdens het lezen verward raakt,
of bemerkt dat we een term gebruiken zonder dat we het eerst
hebben uitgelegd, email ons dan alsjeblieft.</para>

<para>Stuur de auteurs alsjeblieft GEEN technische vragen over Debian,
aangezien daar andere forums voor zijn. Zie de <XRef LinkEnd="docs-support">.
Stuur alleen mail betreffende het handboek zelf naar het hierboven vermelde
adres.</para>

<para>Ga voor de laatste versie van dit handboek naar
<ULink url="http://www.debian.org/doc/">http://www.debian.org/doc/</ULink>
en volg de links.</para>

<sect1 id="acknowldgements"><title> Erkenningen</title>
<para>Veel mensen hebben met dit handboek geholpen.</para>

<para>De grootste dank gaat uit naar Larry Greenfield en zijn Linux
User's Guide, die de basis vormde voor het handboek. De
Linux User's Guide maakt onderdeel uit van het Linux Documentatie
Project.</para>

<para>Veel dank aan degenen die ons hebben geholpen bij het redigeren
van het handboek;
ze hebben het veel en veel beter gemaakt. Als je vond dat dit
handboek plezierig te lezen was, stuur je bedankjes dan naar
Thalia Hooker en Day Irmiter.</para>

<para>Met dank aan Richard Stallman van de Free Software Foundation
voor het advies, redigeren, en het aanbod voor het publiceren
van de tekst.</para>

<para>Met dank aan James Treacy dat hij me wat van zijn schrijven
voor de Debian website liet lenen.</para>

<para>Met dank aan iedereen die wat onderdelen van het handboek heeft
geschreven:
Craig Sawyer schreef over shells, Ole Tetlie is aan het schrijven
over programmeren, Oliver Elphick droeg bij over een bespreking van
wat basisutility's, Ivan E. Moore II droeg bij in de bespreking
van PPP.</para>

<para>Veel mensen, waaronder Eric Fischer en Mike Touloumtzis, hebben
patches en commentaar aangeleverd.</para>

<para>Veel dank aan Ardo van Rangelrooij voor het aan de gang krijgen
en beheren van de DebianDoc DTD die werd gebruikt om het handboek te
schrijven.</para>

<para>Uiteraard is het onmogelijk de honderden Debian ontwikkelaars
en duizenden free-software auteurs te bedanken die ons iets gaven
om over te schrijven en te gebruiken.</para>

<para>Ook dank aan een ieder die ik hier niet heb genoemd, aangezien ik 
er zeker van ben dat ik hier een knoeiboel van heb gemaakt.
Ik hoop dat niemand er aanstoot aan zal nemen --- email me
alsjeblieft en laat me het weten als je naam hier zou moeten staan.</para>
</sect1>
</chapter>

<chapter id="introduction"><title>Introductie </title>

<sect1 id="introduction-debian"><title>Wat is Debian?</title>
<para>
<Emphasis>Debian</Emphasis> is een vrij-verkrijgbaar besturingssysteem (OS)
voor je computer. Een besturingssysteem is de set met basisprogramma's en
utility's die er voor zorgen dat je computer draait. Het hart van een
besturingssysteem is de <Emphasis>kernel</Emphasis>. De kernel is het meest
fundamentele programma op de computer: het doet al het basisonderhoud en laat
je andere programma's starten. Debian maakt gebruik van de 
<Emphasis>Linux</Emphasis>-kernel, een volledig vrij-verkrijgbaar stukje
software gestart door Linux Torvalds en ondersteund door (waarschijnlijk meer
dan 1000) programmeurs over de gehele wereld. Een groot deel van de basistools
die het besturingssysteem bevat, is afkomstig van het (<ULink url="http://www.gnu.org">GNU project</ULink>), en ook deze tools zijn vrij-verkrijgbaar. Wat
mensen willen, is natuurlijk applicatie-software: programma's om ze te helpen
bij wat ze gedaan willen krijgen, van het editen van documenten tot het
draaien van een zaak tot het spelen van spellen tot het schrijven van meer
software. Debian wordt geleverd met meer dan 1000 <Emphasis>packages</Emphasis>
(voorgecompileerde software gebundeld in een fraai formaat zodat het
gemakkelijk op je computer is te installeren) --- het is allemaal vrij.</para>

<para>Het lijkt wat op een toren. Aan de basis is er Linux. Bovenop 
bevinden zich alle basistools, voornamelijk van GNU. Vervolgens
heb je alle applicatie-software dat je op de computer draait:
veel hiervan is ook van GNU. De Debian ontwikkelaars fungeren als
architecten en co&ouml;rdinatoren --- het systeem behoedzaam 
organiserend en alles passend makend voor een ge&iuml;ntegreerd
stabiel besturingssysteem: Debian GNU/Linux.</para>
</sect1>

<sect1 id="introduction-debian-os"><title>Wat is een besturingssysteem,
en wat voor soort besturingssysteem is Debian?</title>

<para>Een besturingssysteem is de verzameling aan software dat
een computer bruikbaar maakt. Het beheert hardware-apparaten en
voorziet in utility's en applicaties.</para>

<para>Debian GNU/Linux is gebaseerd op het Unix besturingssysteem,
welke een lange historie heeft
(zie de <XRef LinkEnd="unix-history">). Debian is fundamenteel compatibel
met Unix, maar voegt een beduidend aantal aanvullende features toe.</para>

<para>De ontwerp filosofie van GNU/Linux (en Unix) is zijn functionaliteit
in kleine, voor meerdere doelen geschikte delen te distribueren.
Op die manier kun je eenvoudig nieuwe functionaliteit en nieuwe
features tot stand brengen door de kleine onderdelen (programma's)
op nieuwe manieren te combineren. Debian is als een monteursset;
je kunt ervan alles mee bouwen.</para>

<para>Wanneer je een besturingssysteem gebruikt, wil je de
hoeveelheid werk die je moet doen om een taak te volbrengen,
minimaliseren. Debian voorziet in vele tools die je kunnen helpen,
maar alleen als je weet wat je met deze tools kunt doen.
Het is niet erg productief een uur te besteden met proberen iets aan
het werk te krijgen en het dan uiteindelijk op te geven.
Dit handboek zal je de belangrijkste tools leren waarop Debian
is gebaseerd: welke tools in welke situaties te gebruiken, en hoe
deze diverse tools met elkaar te verbinden.</para>
</sect1>

<sect1 id="introduction-debian-how"><title>Wie maakt Debian?</title>

<para>Debian is een ontwikkelingsproject bestaande uit allemaal
vrijwilligers via het internet. Er werken honderden vrijwilligers
aan. De meesten zijn belast met een klein aantal software-packages
en ze zijn zeer bekend met de software die ze tot een package
bundelen.</para>

<para>Deze vrijwilligers werken samen volgens een stricte verzameling
leidraads die handelen over hoe packages worden geassembleerd. Deze
leidraads worden in samenwerking ontwikkeld via besprekingen op 
internet mailinglijsten en <Emphasis>internet relay chat</Emphasis>
(IRC) forums.
</para>
</sect1>

<sect1 id="introduction-DFSG"><title>Wat is vrij-verkrijgbare software?</title> 

<para>Als de ontwikkelaars en gebruikers van Debian het hebben over
"vrij-verkrijgbare software", refereren ze daarbij naar 
<Emphasis>vrijheid</Emphasis> in plaats van naar de prijs. Debian is
in deze zin vrij: je bent vrij het te wijzigen en te
herdistribueren, en je zal voor dit doel altijd toegang hebben tot
de broncode. De <ULink url="http://www.debian.org/social_contract#guidelines">
Debian Free Software Guidelines</ULink> beschrijven in meer
detail wat precies met "vrij" wordt bedoeld. De <ULink url="http://www.fsf.org">Free Software Foundation</ULink>,
oprichter van het GNU project, is een andere bron met informatie.
Je kunt een meer gedetailleerde beschrijving van vrije software vinden op de 
<ULink url="http://www.debian.org/intro/free">Debian web site</ULink>.</para>

<para>Free software wordt soms Open Source (R) software genoemd
--- Open Source is een waarborgmerk. Aangezien Open Source (R)
van een handelsmerk is voorzien, kan slechts echt vrije software
zichzelf Open Source (R) noemen.
Je komt misschien verkopers tegen die je proberen te misleiden
door te claimen dat hun software "vrij" is, terwijl er in 
werkelijkheid veelbetekenende voorwaarden aan gekoppeld zijn.
Het Open Source (R) handelsmerk geeft je wat verzekering dat de
software echt vrije software is. 
'Open Source software' wordt bij gelegenheid afgekort tot 'OSS'.</para>

<para>Je vraagt je misschien af: waarom zouden mensen uren van
hun eigen tijd besteden aan het schrijven van software, het
met zorg tot een package bijeenbrengen, en het dan allemaal weggeven?
De antwoorden zijn net zo gevarieerd als degenen die eraan bijdragen.</para>

<para>Velen geloven in het delen van informatie en het hebben van de
vrijheid om met elkaar samen te werken, en hebben het gevoel dat
vrije software dit aanmoedigt. Er is een lange traditie begonnen in de
jaren 1950 die deze waarden hooghouden, soms de Hacker Ethic genoemd.
(Je kunt hier meer over lezen in het amusante boek van Steven Levy
<Emphasis>Hackers: Heroes of the Computer Revolution</Emphasis>).</para>

<para>Anderen willen meer over computers leren. Meer en meer
mensen zoeken naar wegen om de opdrijvende prijs van commerci&euml;le
software te vermijden. Een groeiende menigte draagt bij als dank
voor alle geweldige vrij-verkrijgbare software die ze van anderen
hebben ontvangen.</para>

<para>Velen op academia maken vrije software als hulp om het resultaat
van hun onderzoek voor breder gebruik beschikbaar te maken. 
Bedrijven helpen vrije software te beheren zodat ze een zegje kunnen
doen in hoe het ontwikkelt --- er is geen snellere manier een nieuwe feature
te verkrijgen dan het zelf te implementeren of een consultant in 
te huren om het te doen! Bedrijven zijn ook ge&iuml;nteresseerd in
betere betrouwbaarheid en de mogelijkheid tussen support verkopers
te kiezen.</para>

<para>Weer anderen zien vrije software als een sociaal goed,
democratiseren van toegang tot informatie en het voorkomen van
buitensporige centralisatie van de wereldse informatie infrastructuur.
Natuurlijk vinden velen van ons het gewoon ontzettend leuk.</para>

<para>Debian is zo gebonden aan vrije software dat we dachten dat het
nuttig zou kunnen zijn als het in &eacute;&eacute;n of ander document
formeel werd gemaakt.
Ons <ULink url="http://www.debian.org/social_contract">Social Contract</ULink>
zegt toe dat Debian altijd 100% vrije software zal blijven.
Wanneer je een package vanaf de Debian hoofddistributie download,
kun je er zeker van zijn dat het tegemoet komt aan onze Free Software
Guidelines.</para>

<para>Alhoewel Debian in vrije software gelooft, zijn er situaties
waar mensen gepatenteerde software op hun machine willen of nodig
hebben. Wanneer dit mogelijk is, ondersteunt Debian dit;
alhoewel gepatenteerde software niet in de hoofddistributie is opgenomen,
is het soms beschikbaar op de ftp-site in de
<Emphasis>non-free</Emphasis> directory, en er is een groeiend aantal
packages wiens enkele taak het is, gepatenteerde software te installeren,
die we zelf niet mogen distribueren.
</para>

<para>Het is belangrijk onderscheid te maken in 
<Emphasis>commerci&euml;le</Emphasis> software en
<Emphasis>gepatenteerde</Emphasis> software. Gepatenteerde software is
niet-vrije software, terwijl commerci&euml;le software, software is die voor
geld wordt verkocht. Debian staat het toe dat commerci&euml;le software
onderdeel mag uitmaken van de hoofddistributie, maar dit geldt niet voor 
gepatenteerde software. Denk er aan dat de bewoording "vrije software" niet
naar de prijs refereert; het is heel goed mogelijk vrije software te verkopen. 
Zie <ULink url="http://www.opensource.org">http://www.opensource.org</ULink>
of <ULink url="http://www.fsf.org/philosophy/categories.html">http://www.fsf.org/philosophy/categories.html</ULink> voor meer verduidelijking over de
terminologie.</para> 
</sect1>

<!-- FIXME TO COMPLETE
<sect1 id="introduction-why"><title>Waarom zou ik Debian gebruiken?</title

<para>Waar Debian goed voor is, en waar het niet goed voor is. </para>

-->	  

<sect1 id="introduction-how"><title>Hoe Dit Boek te Lezen</title>

<para>De beste manier om alles over bijna ieder computerprogramma te
leren is achter je computer. De meeste mensen vinden dat het lezen van
een boek zonder het programma te gebruiken niet nuttig is.
De beste manier om Unix en GNU/Linux te leren, is door het te gebruiken.
Gebruik GNU/Linux voor alles wat je kunt. Experimenteer. Wees niet bang ---
het is <Emphasis>mogelijk</Emphasis> de boel te verknoeien, maar je kunt
het altijd opnieuw installeren. Maak backups en heb plezier!</para>

<para>Debian is niet zo intu&iuml;tief vanzelfsprekend als een aantal
andere besturingssystemen. Dus het zal er waarschijnlijk op neerkomen dat je
op z'n minst de eerste paar hoofdstukken doorneemt. GNU/Linux is als een
race-auto, een meesterchef in de keuken, of een klassieke roman; zijn kracht
en complexiteit maken het in eerste instantie moeilijk te benaderen, maar
op de lange termijn veel meer de moeite waard.</para>

<para>De aanbevolen manier om te leren is een beetje te lezen, en
vervolgens een beetje te spelen. Blijf spelen totdat je je op je gemak
voelt met de concepten, en begin dan het boek door te nemen.
Je zal diverse behandelde onderwerpen aantreffen, waarvan je een
aantal interessant kunt vinden en waarvan een aantal je zullen
vervelen. Na een tijdje, zou je je voldoende zeker moeten voelen
om opdrachten te gaan gebruiken zonder exact bekend te zijn met wat
ze doen. Dit is prima.</para>

<para>Handig om te weten: als je een opdracht ooit onjuist intikt,
of niet weet hoe je een programma kunt be&euml;indigen, C-c (de Ctrl
toets en de kleine letter c tegelijkertijd ingedrukt houdend) zal het
programma vaak stoppen.</para>
</sect1>

<sect1 id="introduction-ldp"><title>Het Linux Documentatie Project</title>

<para>Bij het samenstellen van dit handboek is veel geleend uit de 
<Emphasis>Linux User's Guide</Emphasis> als onderdeel van het Linux Documentatie
Project, geschreven door Larry Greenfield. Bedankt Larry! 
Dat project heeft een aantal uitstekende andere handleidingen, veel daarvan
is bedoeld voor de meer ervaren gebruikers en systeembeheerders.
De LDP beheert ook de Linux HOWTO's, een onschatbare bron
waar je je bekend mee zou moeten maken. Je kunt de LDP
vinden op hun <ULink url="http://sunsite.unc.edu/LDP/">homepage</ULink>.</para>
</sect1>
</chapter>

<chapter id="start"><title>Van start gaan</title>

<para>Dus je bent net klaar met het installeren van Debian!
Gefeliciteerd. Neem een duik in het diepe en begin het te leren gebruiken.
</para>

<para>Als onderdeel van het installatie-proces, zou je er achter moeten
zijn gekomen hoe je het Debian-systeem boot (met een speciale diskette,
door het eenvoudig aanzetten van je computer of door het indrukken van
de <Emphasis>Alt</Emphasis> toets achter de LILO prompt en Linux te selecteren).
</para>

<sect1 id="start-multi"><title>Een multi-user, multitasking besturingssysteem</title>

<para>Zoals we al eerder aangaven (<XRef LinkEnd="introduction-debian">),
is het ontwerp van Debian GNU/Linux afkomstig van het Unix besturingssysteem.
In tegenstelling tot algemene desktop OS'sen zoals DOS, Windows, en
MacOS, is Unix meestal te vinden op grote servers en
<Emphasis>multi-user</Emphasis> systemen.</para>

<para>Dit betekent dat Debian speciale mogelijkheden heeft die bij die andere
 OS'sen ontbreken. Het staat een groot aantal mensen toe de computer 
tegelijkertijd te gebruiken, zolang iedere gebruiker maar zijn eigen
<Emphasis>terminal</Emphasis> heeft.

<footnote><para>(Een terminal bestaat uit slechts een toetsenbord en een
scherm die met de computer via het netwerk, via een modem of direct zijn
verbonden. Je toetsenbord en monitor vormen een terminal die direct aan
de computer is gekoppeld: deze speciale terminal wordt vaak een 
<Emphasis>console</Emphasis> genoemd).</para></footnote></para>

<para>Om veel gebruikers toe te staan tegelijkertijd te werken, moet Debian
het mogelijk maken dat veel programma's en applicaties gelijktijdig draaien.
Deze feature wordt <Emphasis>multitasking</Emphasis> genoemd. </para>

<para>Veel van de complexiteit (en kracht) van op Unix lijkende systemen
vindt zijn oorsprong in deze twee kenmerken. Het systeem moet bijvoorbeeld
een manier hebben om gebruikers te weerhouden dat ze per ongeluk elkaars
bestanden verwijderen, en het moet de vele programma's co&ouml;rdineren
die tegelijkertijd draaien, b.v. om te verzekeren dat ze de harddisk niet
allemaal tegelijkertijd gebruiken.</para>

<para>Als je in gedachten houdt waar Debian oorspronkelijk voor werd
ontworpen, zullen veel van de aspecten heel wat meer betekenis krijgen.
Je zal leren voordeel te hebben van de kracht van deze kenmerken.</para>
</sect1>

<sect1 id="start-login"><title>Inloggen</title>

<para>Om Debian te kunnen gebruiken, moet je jezelf op het systeem
identificeren. Dit is om te weten wie je bent, welke permissies
je hebt en wat je voorkeuren zijn.</para>

<para>Tot op deze hoogte, heb je een <Emphasis>gebruikersnaam</Emphasis> of
<Emphasis>login</Emphasis> --- als je Debian zelf installeerde, zou je tijdens
de installatie naar een dergelijke naam moeten zijn gevraagd.
Als je op een systeem inlogt, die door iemand anders
wordt beheerd, zal je hem moeten vragen naar een account en een
corresponderende gebruikersnaam op het systeem.</para>

<para>Je hebt ook een wachtwoord, zodat niemand anders zich als jou
voor kan doen. Als je geen wachtwoord hebt, kan iedereen vanaf het
Internet op je computer inloggen, en slechte dingen doen.
<!--(zie <XRef LinkEnd="advanced-security">).--> Als je je zorgen maakt over
beveiliging, zou je een wachtwoord moeten hebben.</para>

<para>Veel mensen geven er de voorkeur aan anderen te vertrouwen dat
ze niets opzettelijks met hun account uithalen; hopelijk moedigt
je werkomgeving geen paranoia aan. Dit is een volkomen redelijke houding;
het hangt af van je persoonlijke prioriteiten, en je omgeving.
Uiteraard hoeft een systeem thuis niet zo veilig te zijn als
een militaire installatie. Debian kan zo veilig of onveilig zijn als je wilt.
</para>

<para>Wanneer je Debian opstart, zal je een <Emphasis>prompt</Emphasis> zien; 
een verzoek van de computer om wat informatie. In dit geval, is
de prompt <Emphasis>login:</Emphasis>.</para>

<para>Je zou je gebruikersnaam op moeten geven en als daar om wordt verzocht, je
wachtwoord. Het wachtwoord verschijnt op moment dat je het intikt, niet op het
scherm --- hierdoor kan niemand over je schouder meekijken om te zien
wat het is. Druk op <Emphasis>Enter</Emphasis> na zowel de gebruikersnaam als
het wachtwoord te hebben ingetikt. Als je je gebruikersnaam of 
wachtwoord onjuist intikt, zal je opnieuw moeten beginnen.</para>

<para>Als je het goed doet, zal je een kort bericht en
vervolgens een <Emphasis>$</Emphasis> prompt te zien krijgen. De 
<Emphasis>$</Emphasis> wordt door een speciaal programma, genaamd
de <Emphasis>shell</Emphasis> afgedrukt, en wordt dus een <Emphasis>shell
prompt</Emphasis> genoemd: hier geef je je opdrachten aan het systeem.</para>

<para>Probeer nu de opdracht <Emphasis>whoami</Emphasis> te geven. Rechts van
de shell-prompt is een <Emphasis>cursor</Emphasis>. Je cursor is een klein
laag liggend streepje of rechthoekje dat aangeeft waar je aan het
typen bent; het zou bij het typen moeten verplaatsen.
Druk altijd de <Emphasis>RET</Emphasis> in (de Enter of Return toets) als
je klaar bent met het typen van een shell-opdracht.</para>

<para><Emphasis>whoami</Emphasis> vertelt je je gebruikersnaam. Daarna krijg je
een nieuwe shell-prompt.</para>

<para>Voor de rest van het handboek geldt dat wanneer er wordt aangegeven dat je
een opdracht in moet tikken, je het achter de shell-prompt in moet
typen en op de <Emphasis>RET</Emphasis>-toets moet drukken.
Op een aantal toetsenborden is deze toets gelabeld als
<Emphasis>Enter</Emphasis> en op anderen als <Emphasis>Return</Emphasis>.
Zelfde toets, andere naam.</para>

<para>Wanneer je klaar bent met werken, wil je misschien op het systeem
uitloggen. Om de shell te be&euml;indigen, voer je het <Emphasis>exit</Emphasis>
opdracht in. Houd in gedachten dat als je ingelogd blijft, iemand
anders langs zou kunnen komen en je account zal kunnen gebruiken. 
Hopelijk kun je erop vertrouwen dat degenen op je kantoor of thuis dit
niet doen; maar als je je omgeving niet vertrouwt, zou je er zeker van
moeten zijn dat je uitlogt wanneer je weggaat.</para>
</sect1>

<sect1 id="start-keys"><title>Toetsen</title>

<para>Voor we verder gaan, is het belangrijk dat je bekend bent met
de conventies voor het beschrijven van toetsopdrachten die in deze handleiding
worden gebruikt.
</para>

<para>Wanneer je gelijktijdig meerdere toetsen ingedrukt houdt, zal een notatie
als <Emphasis>C-a</Emphasis> worden gebruikt. Dit betekent "houd de 
control-toets ingedrukt en tik de kleine letter a in." Andere afkortingen zijn
de <Emphasis>A</Emphasis> voor de Alt-toets en de <Emphasis>M</Emphasis> voor
de Meta-toets. Op een aantal toetsenborden bevinden zich zowel de Alt als de
Meta; op de meeste home-computers heb je alleen de beschikking over een
Alt-toets, maar de Alt-toets functioneert hetzelfde als een Meta-toets. Dus
als je geen Meta-toets hebt, probeer in plaats daarvan dan de Alt-toets.</para>

<para>Toetsen zoals Alt en Meta worden <Emphasis>modifier</Emphasis>-toetsen
genoemd omdat ze de betekenis van de standaardtoetsen, zoals
de letter A, wijzigen. Soms moet je meer dan &eacute;&eacute;n
modifier ingedrukt houden, <Emphasis>M-C-a</Emphasis> betekent bijvoorbeeld dat
gelijktijdig de Meta, Ctrl en kleine letter a ingedrukt moeten worden.</para>

<para>Een aantal toetsen hebben een speciale notatie; bijvoorbeeld,
<Emphasis>RET</Emphasis> (Return/Enter), <Emphasis>DEL</Emphasis> (Delete of
soms Backspace), <Emphasis>ESC</Emphasis> (Escape). Deze zouden tamelijk
zelfuitleggend moeten zijn.</para>

<para>Spaties in plaats van koppeltekens betekenen dat de toetsen
in aangegeven volgorde ingedrukt moeten worden. Dus
<Emphasis>C-a x RET</Emphasis> betekent bijvoorbeeld
dat de Control en kleine letter a gelijktijdig ingedrukt
moeten worden en gevolgd moeten worden door de letter x,
gevolgd door het indrukken van de Return.</para>
</sect1>

<sect1 id="start-commandline"><title>Opdrachthistorie en het wijzigen van de 
opdrachtregel</title>

<para>Wat je na de shell-prompt intikt, voordat je op de 
<Emphasis>RET</Emphasis> drukt, wordt een <Emphasis>opdrachtregel</Emphasis>
genoemd --- het is een regel tekst die de computer opdracht geeft iets
te doen. De standaardshell van Debian biedt verscheidene
speciale mogelijkheden om ervoor te zorgen dat het invoeren van opdrachtregels
eenvoudig is.</para>

<para>Je kunt voorgaande opdrachten terughalen om ze opnieuw uit te laten
voeren, of ze wat aanpassen en <Emphasis>dan</Emphasis> opnieuw uitvoeren.
Probeer het volgende: voer een opdracht in, zoals <Emphasis>whoami</Emphasis>;
druk dan op de pijltjes-toets naar boven. De <Emphasis>whoami</Emphasis>
opdracht zal opnieuw achter de prompt verschijnen. Je kunt de 
<Emphasis>RET</Emphasis>-toets dan indrukken om <Emphasis>whoami</Emphasis>
een tweede keer op te starten.
</para>

<para>Als je verscheidene opdrachten hebt ingevoerd, kun je op de
cursorpijl naar boven blijven drukken om deze opdrachten terug
te halen. Deze mogelijkheid is handig als je hetzelfde verscheidene
keren wilt doen, of als je een opdracht niet juist intikt en het
terug wilt halen om het te herstellen. Je kunt de cursorpijl naar
beneden indrukken om je in de andere richting te verplaatsen,
richting de meer recente opdrachten. Als er geen opdrachten meer
zijn om door te manoeuvreren, zal de computer een beep genereren.</para>

<para>Je kunt je ook op de opdrachtregel manoeuvreren om aanpassingen te
maken. De eenvoudigste manier is met de linker- en rechtercursortoets ---
probeer ---  <Emphasis>whoasmi</Emphasis> te typen in plaats van
<Emphasis>whoami</Emphasis>, gebruik vervolgens de linker cursortoets om naar de
<Emphasis>s</Emphasis> terug te gaan. Je kunt met de Backspace of
de Delete-toets de <Emphasis>s</Emphasis> verwijderen.</para>

<para>Er zijn echter ook meer gevorderde kenmerken (het is echter niet
nodig ze nu allemaal te onthouden). Probeer <Emphasis>C-a</Emphasis> te
typen. Hiermee ga je naar het begin van de regel. <Emphasis>C-k</Emphasis>
(de <Emphasis>k</Emphasis> staat voor "kill") verwijdert tot aan het einde
van de regel --- probeer het vanaf het midden van de opdrachtregel. Door het
gebruik van <Emphasis>C-a</Emphasis> gevolgd door <Emphasis>C-k</Emphasis>,
kun je de gehele opdrachtregel verwijderen. <Emphasis>C-y</Emphasis> plakt
het laatste wat je met <Emphasis>k</Emphasis> verwijderde, waarbij het op de
huidige cursorpositie wordt ingevoegd. (<Emphasis>y</Emphasis> staat voor
"yank," (kopieer) als in "kopieer het terug"). Met <Emphasis/C-e/ zal de
cursor naar het einde van de opdrachtregel worden verplaatst. </para>

<para>Ga je gang en speel wat met het wijzigen van de opdrachtregel om het
in de vingers te krijgen. Experimenteer ermee.</para>
</sect1>

<sect1 id="start-root"><title>Als root inloggen</title>

<para>Aangezien Debian een multi-user systeem is, is het ontworpen iedere
gebruiker of ieder programma te weerhouden het gehele systeem te
breken. De kernel zal gewone gebruikers niet toestaan belangrijke
systeembestanden te laten wijzigen. Dit betekent dat alles blijft zoals
verondersteld mag worden, beveiligd tegen ongelukken, virussen en zelfs
kwaadwillige streken. In tegenstelling tot andere besturingssystemen,
is Debian tegen deze bedreigingen beveiligd. Je zal geen antivirus-programma
nodig hebben.</para>

<para>Soms moet je echter belangrijke systeembestanden wijzigen -- 
het kan zijn dat je bijvoorbeeld nieuwe software wilt installeren, of
je netwerkverbinding wilt configureren.
Om dit te doen, heb je meer bevoegdheden nodig dan een gewone gebruiker;
je moet <Emphasis>root-user</Emphasis> worden (wordt ook wel de 
<Emphasis>superuser</Emphasis> genoemd).</para>

<para>Als je het root-wachtwoord hebt, log dan gewoon in als gebruiker
<Emphasis>root</Emphasis> en het root-wachtwoord om root te worden.
Hopelijk zal je je het wachtwoord herinneren van toen je het systeem
installeerde --- zo niet, dan heb je een probleem.<footnote><para>De oplossing
hiervoor is nogal technisch. Je moet met een rescue-diskette booten, je normale 
root-partitie mounten en <Emphasis>/etc/passwd</Emphasis> wijzigen om het oude
root-wachtwoord te verwijderen. Vraag om hulp als je hier geen verstand van
hebt (zie de <XRef LinkEnd="docs-support">).</para></footnote>
</para>

<!-- FIXME Is het niet veel makkelijker/sneller om met 'init=/bin/bash' te
booten?
-->

<para>Op veel sites, heeft alleen de systeembeheerder het root-wachtwoord,
en kan alleen de systeembeheerder die dingen doen waarbij men root moet
zijn om het te kunnen doen. Als je van je eigen PC gebruik maakt, dan ben
<Emphasis>jij</Emphasis> natuurlijk de systeembeheerder. Als je geen
root-privileges hebt, dan zal je aan moeten kunnen op je systeembeheerder
voor het uitvoeren van de taken die root-privileges vereisen.</para>

<para>Soms heb je het root-wachtwoord zelfs op een gedeelde
gezamenlijke server bestemd voor onderwijs, omdat de sysadmin er op
vertrouwt dat je het juist gebruikt. In dat geval zal je kunnen helpen bij het
beheren van het systeem en het naar eigen behoeften aan kunnen passen.
Maar je zal het verantwoord moeten gebruiken, en altijd met respect
voor andere gebruikers. </para>

<para>Als je het wachtwoord hebt, probeer dan nu als root in te loggen.
Tik de opdracht <Emphasis>whoami</Emphasis> in om je identiteit te 
verifi&euml;ren. Log vervolgens <Emphasis>onmiddelijk</Emphasis> uit.
Wanneer je root bent, biedt de kernel je geen bescherming voor jezelf,
omdat root permissie heeft alles met het systeem te doen.
Je kunt bijvoorbeeld door het intikken van
<Emphasis>rm -rf /</Emphasis> je <Emphasis>gehele systeem</Emphasis> in een
paar toetsaanslagen verwijderen. (Onnodig te zeggen dat je dit 
<Emphasis/NIET</Emphasis> in moet typen). Experimenteer niet als je
root bent. In feite is het beter niets als root te doen, tenzij het absoluut
noodzakelijk is. Dit is geen kwestie van beveiliging, maar eerder
&eacute;&eacute;n van stabiliteit. Je systeem draait veel beter als het
je voor domme fouten kan behouden.
</para>

<para>Misschien dat je de opdracht <command>su</command> comfortabeler
vindt dan als root in te loggen. <command>su</command> geeft je de
mogelijkheid de identiteit van een ander gebruiker aan te nemen, gewoonlijk
als root, tenzij je iemand anders opgeeft. (Je kunt het onthouden door er
aan te denken dat <command>su</command> staat voor Super User, alhoewel
anderen zeggen dat het voor Set UserID staat). Probeer het volgende:</para>

<para>Log in als jezelf, d.w.z. niet als root.

<GlossList>
<GlossEntry>
<glossterm>whoami</glossterm>
<glossdef><para>Bevestiging van je gebruikersnaam.</para></glossdef>
</glossentry>

<glossentry><glossterm>su</glossterm>
<glossdef><para>Geef de opdracht <Emphasis>su</Emphasis>.
Het zal je vragen om een wachtwoord; vul het root-wachtwoord in.
Als je het juiste wachtwoord geeft, zou je een nieuwe shell-prompt te zien
moeten krijgen. Standaard bevat de shell-prompt van de root-gebruiker een 
<Emphasis>#</Emphasis> in plaats van een <Emphasis>$</Emphasis>.</para>
</glossdef>
</glossentry>

<glossentry>
<glossterm>whoami</glossterm>
<glossdef><para>Dit zou als je nieuwe gebruikersnaam "root" moeten geven.
</para></glossdef>
</glossentry>

<glossentry> 
<glossterm>exit</glossterm>
<glossdef><para>Be&euml;indig de root-shell. Je prompt
zal de <Emphasis>$</Emphasis> weer terugkrijgen.</para></glossdef>
</glossentry>

<glossentry> 
<glossterm>exit</glossterm>
<glossdef><para>Be&euml;indig je eigen shell.</para></glossdef>
</glossentry>
</glosslist>
</para>

<para>
Wanneer je systeembeheertaken verricht, zou je zoveel mogelijk als jezelf
moeten doen. Gebruik vervolgens de opdracht <Emphasis>su</Emphasis> om
datgene te doen waarvoor root-privileges zijn vereist en typ
<Emphasis>exit</Emphasis> om die privileges uit te zetten, zodat er niet
langer de mogelijkheid bestaat dat je iets kunt beschadigen.</para>

<para>Je kunt <Emphasis>su</Emphasis> gebruiken om de identiteit van
iedere gebruiker op het systeem aan te nemen, niet slechts als root.
Hiervoor tik je in <Emphasis>su user</Emphasis> waar user de gebruiker
is die je worden wilt. Je zal natuurlijk wel hun wachtwoord moeten kennen,
tenzij je op dit moment root bent of ze geen wachtwoord hebben.
</para>
</sect1>

<sect1 id="start-VC"><title>Virtuele consoles</title>

<para>De Linux-kernel ondersteunt <Emphasis>virtuele consoles</Emphasis>. Dit is
een manier om je enkele scherm en toetsenbord te laten lijken alsof
het meerdere terminals zijn, die allemaal zijn aangesloten op hetzelfde
systeem. Gelukkig is het gebruik van virtuele consoles &eacute;&eacute;n van
de eenvoudigste dingen onder Debian: er zijn "sneltoetsen" voor het
snel schakelen tussen de consoles. Om dit uit te proberen log je in op je
systeem en typ je <Emphasis>A-F2</Emphasis> (gelijktijdig indrukken van de
<Emphasis>Alt</Emphasis>-toets, en <Emphasis>F2</Emphasis>, dat wil zeggen,
functietoets nummer 2).</para>

<para>Je bevindt je nu achter een andere loginprompt. Geen paniek:
je bevindt je nu op de virtuele console (VC) nummer 2!
Log hier in en doe wat -- meer <Emphasis>whoami</Emphasis>'s of wat dan
ook -- ter bevestiging dat dit een echte login-shell is. Nu kun je met
<Emphasis>A-F1</Emphasis> naar de virtuele console nummer 1 terugkeren.
Of je kunt naar een <Emphasis>derde</Emphasis> virtuele console gaan,
uiteraard via (<Emphasis>A-F3</Emphasis>).</para>

<para>Debian wordt standaard met zes virtuele consoles geactiveerd geleverd,
die worden benaderd met de Alt-toets en functietoetsen
<Emphasis>F1-F6</Emphasis> (technisch gesproken zijn er meer virtuele consoles
geactiveerd, maar op slechts 6 daarvan kan worden ingelogd. De anderen
worden gebruikt voor het X Window Systeem of andere speciale doelen). </para>

<para>Als je gebruik maakt van het X Window Systeem, zal het gewoonlijk
vanaf de eerste ongebruikte virtuele console opstarten -- waarschijnlijk VC 7.
Je zal ook <Emphasis>Ctrl</Emphasis> aan de toetsenreeks toe moeten voegen
om van de X virtuele console naar &eacute;&eacute;n van de eerste zes virtuele
consoles over te schakelen. Dus dat is <Emphasis>C-A-F1</Emphasis> om op VC 1
te komen. Maar je kunt van een tekst VC naar de X virtuele console gaan door
alleen gebruik te maken van <Emphasis>Alt</Emphasis>. Als je nooit uit X gaat,
hoef je je hier niet om te bekommeren; X schakelt automatisch bij het
opstarten naar zijn virtuele console.</para>

<para>Zodra je er aan gewend raakt, zullen virtuele consoles waarschijnlijk
een onmisbaar stuk gereedschap worden om veel tegelijkertijd te kunnen doen.
(Het X Window Systeem dient vrijwel hetzelfde doel, door te voorzien in
meerdere vensters in plaats van meerdere consoles). Je kunt op iedere VC
een ander programma uitvoeren of op &eacute;&eacute;n VC als root inloggen
en op een ander als jezelf.
Of iedereen in het gezin kan zijn eigen VC gebruiken --- dit is vooral
handig als je X gebruikt, in welk geval je verscheidene X-sessies op
verschillende virtuele consoles tegelijkertijd kunt draaien.</para>
</sect1>

<sect1 id="start-shutdown"><title>Afsluiten van het Systeem</title>

<para><Emphasis>Zet de computer niet zomaar uit! Je riskeert daarmee het
verlies van waardevolle gegevens!
</Emphasis></para>

<para>Als je de enige gebruiker op je computer bent, wil je de computer 
misschien uitzetten als je er klaar mee bent.

<footnote><para>Zet de computer alleen uit als je voor die dag klaar bent,
om mogelijke verzwakking van een aantal hardware-componenten te voorkomen.
Het aan- en uitzetten zijn de twee belangrijkste redenen die bijdragen 
aan slijtage van computercomponenten. Het &eacute;&eacute;nmaal per dag aan- en
uitzetten is waarschijnlijk de beste compromis tussen je elektriciteitsnota en
de levensduur van je computer.
</para>
</footnote></para>

<para>
In tegenstelling tot de meeste DOS-versies, is het een slechte gewoonte
gewoon de aan-/uitknop van de computer te gebruiken wanneer je klaar bent
op je computer. Het is ook slecht om de computer (met de reset-knop) te
rebooten, zonder eerst de juiste voorzorgsmaatregelen te treffen.
De Linux-kernel heeft voor het verbeteren van de performance een
<Emphasis>disk cache</Emphasis>. Dit betekent dat het tijdelijk informatie
bewaart, bedoeld als permanente opslag in RAM: aangezien geheugen duizendmaal
sneller is dan een disk, zorgt dit ervoor dat veel bestandsbewerkingen sneller
worden uitgevoerd. De informatie die Linux in het geheugen heeft, wordt 
periodiek echt naar disk geschreven. Dit wordt <Emphasis>syncing</Emphasis>
genoemd. Om je computer uit te zetten of opnieuw op te starten, moet je je
computer vertellen dat het alles uit het geheugen op moet schonen en het 
permanent op moet slaan.
</para>

<para>Typ <Emphasis>reboot</Emphasis> om opnieuw op te starten, of druk
op <Emphasis>C-A-DEL</Emphasis> (dat wil zeggen Control, Alt, en Delete).</para>

<para>Om het systeem af te sluiten, moet je <Emphasis>root</Emphasis> zijn.
Typ als root gewoon de opdracht <Emphasis>shutdown -h now</Emphasis>. Hiermee
zal de gehele afsluitprocedure worden doorlopen, waaronder de opdracht
<Emphasis>sync</Emphasis> dat er voor zorgt dat de diskcache, zoals hierboven
werd beschreven, wordt opgeschoond. Wanneer je de melding 
<Emphasis>System halted</Emphasis> ziet, is het veilig de
computer uit te zetten. Wellicht dat de computer zichzelf afsluit en
je dit bespaart, als je Advanced Power Management (APM) ondersteuning in
je kernel en BIOS hebt. In laptops is APM heel algemeen en het wordt ook
in bepaalde desktop moederborden ondersteund.</para>

<para>Een aantal mensen vindt het 't eenvoudigst om af te sluiten door
het indrukken van <Emphasis>C-A-DEL</Emphasis> om te rebooten, en vervolgens
de computer uit te zetten voordat de Linux-kernel weer opnieuw wordt geladen.
Als de kernel weer opnieuw wordt geladen, moet je echter weer wachten, tot het
daarmee klaar is en dan nogmaals juist rebooten om weer af te sluiten.</para>
</sect1>
</chapter>


<chapter id="basics"><title>De Basis</title>

<!-- <para>FIXME write a little intro here.  -->

<sect1 id="basics-commandline"><title>De opdrachtregel en 
<Emphasis>man</Emphasis> pages </title>

<para>We hebben de <Emphasis>opdrachtregel</Emphasis> reeds besproken, dat wil
zeggen de opdrachten die je achter de shell-prompt intikt. Deze sectie
beschrijft de structuur van de wat gecompliceerdere opdrachtregels.</para>

<para>Een minimale opdrachtregel bestaat uit slechts de naam van de
opdracht, zoals <Emphasis>whoami</Emphasis>. Maar er zijn andere 
mogelijkheden. Je zou bijvoorbeeld in kunnen tikken:
<screen>
man whoami
</screen>
Met deze opdracht wordt verzocht om het online handboek voor het
<Emphasis>whoami</Emphasis> programma (wellicht dat je de spatiebalk in
moet drukken om door de documentatie te scrollen, of tik de
<Emphasis>q</Emphasis> in om te stoppen). Een wat gecompliceerder voorbeeld:

<screen>
man -k Postscript
</screen>

Deze opdrachtregel bestaat uit drie delen. Het begint met
de naam van de opdracht, <Emphasis>man</Emphasis>. Dan heeft het een
<Emphasis>optie</Emphasis> of <Emphasis>switch</Emphasis>, 
<Emphasis>-k</Emphasis>, gevolgd door een <Emphasis>argument</Emphasis>,
<Emphasis>Postscript</Emphasis>. Sommige mensen refereren naar alles
behalve de naam van de opdracht als de <Emphasis>parameters</Emphasis>
van de opdracht. Dus zowel opties als argumenten zijn parameters.</para>

<para> Opties wijzigen de werking van een opdracht, waarbij bepaalde
mogelijkheden of functionaliteit worden ingeschakeld.
Gewoonlijk worden ze voorafgegaan door een <Emphasis>-</Emphasis>.
De GNU-utility's hebben voor deze opties ook een "lange variant";
de lange variant van <Emphasis>-k</Emphasis> is
<Emphasis>--apropos</Emphasis>. Tik <Emphasis>man -h</Emphasis> of
<Emphasis>man --help</Emphasis> in om een volledige lijst met opties voor
de <Emphasis>man</Emphasis>-opdracht te verkrijgen. Iedere opdracht heeft een
eigen set opties, alhoewel de meeste opdrachten de <Emphasis>--help</Emphasis>
en <Emphasis>--version</Emphasis> opties ondersteunen. Een aantal opdrachten
is excentriek: <Emphasis>tar</Emphasis> vereist bijvoorbeeld om
historische redenen voor de opties geen <Emphasis>-</Emphasis>.</para>

<para>Alles wat geen optie en niet de naam van een opdracht is, is een
<Emphasis>argument</Emphasis>. In dit geval, <Emphasis>Postscript</Emphasis>.
Argumenten kunnen vele doelen dienen; in het algemeen zijn het bestandsnamen
waarop de opdracht werkt. In dit geval is <Emphasis>Postscript</Emphasis>
het woord waarvan je wilt dat <command>man</command> het opzoekt. 
In het geval van <Emphasis>man whoami</Emphasis>, was het argument de
opdracht waarover je informatie wilde.
</para>

<para>Uitpluizen van de opdrachtregel <Emphasis>man -k Postscript</Emphasis>:

<itemizedlist>

<ListItem><para><Emphasis>man</Emphasis>, de naam van de opdracht vertelt
de computer de manual pages op te zoeken. Deze voorzien in documentatie voor
opdrachten. Als voorbeeld, <Emphasis>man whoami</Emphasis> zal je documentatie
geven over de opdracht <Emphasis>whoami</Emphasis>.</para></ListItem>

<ListItem><para><Emphasis>-k</Emphasis>, de optie, wijzigt de werking van
<Emphasis>man</Emphasis>. Normaal gesproken verwacht <Emphasis>man</Emphasis>
als argument een naam van een opdracht, zoals
<Emphasis>whoami</Emphasis>, en zoekt de documentatie over die opdracht op.
Maar met de optie <Emphasis>-k</Emphasis> of <Emphasis>--apropos</Emphasis>
verwacht het dat het argument een sleutelwoord is. Vervolgens geeft het dan
een lijst met al die manual pages waarin dat sleutelwoord in de beschrijving
voorkomt.
</para></ListItem>

<ListItem><para><Emphasis>Postscript</Emphasis> is het argument; aangezien
we de optie <Emphasis>-k</Emphasis> gebruikte, is het 't sleutelwoord om naar
te zoeken.
</para>
</ListItem>

<ListItem><para><Emphasis>-k</Emphasis> en <Emphasis>Postscript</Emphasis>
zijn beiden parameters.</para></ListItem>
</Itemizedlist></para>

<para>Ga je gang en typ <Emphasis>man -k Postscript</Emphasis>, en je zal
een lijst te zien krijgen van alle manual pages op je systeem die iets
te maken hebben met Postscript. Als je niet zoveel software hebt
ge&iuml;nstalleerd, krijg je in plaats daarvan mogelijk te zien
<Emphasis>Postscript: nothing appropriate</Emphasis>.</para>
</sect1>

<sect1 id="basics-commandline-description"><title>Beschrijven van de
opdrachtregel</title>

<para>Noot: Dit is een sectie die je over kunt slaan, voor het geval je
verder wilt gaan.
</para>

<para>Er is volgens traditie een beknopte wijze voor het beschrijven van
de opdrachten-<Emphasis>syntax</Emphasis>
<footnote><para><Emphasis>Syntax</Emphasis>
betekent de correcte wijze om diverse opties en argumenten te combineren.
</para></footnote> die je zou moeten kennen. Als voorbeeld,
als je <Emphasis>man man</Emphasis> intikt om de manual page over
<Emphasis>man</Emphasis> te krijgen, zal je verscheidene syntax-beschrijvingen
te zien krijgen die beginnen met de opdrachtnaam <Emphasis>man</Emphasis>.
&Eacute;&eacute;n daarvan ziet er ongeveer zo uit:

<screen>
man -k [-M path] keyword ...      
</screen>
</para>

<para>Alles tussen blokhaken (<Emphasis>[]</Emphasis>) is een optionele eenheid.
Dus je hoeft de optie <Emphasis>-M</Emphasis> niet te gebruiken, maar als je het
doet, moet je een <Emphasis>path</Emphasis> argument gebruiken.
Je moet de optie <Emphasis>-k</Emphasis> en het <Emphasis>keyword</Emphasis>
argument gebruiken. De <Emphasis>...</Emphasis> betekent dat je meer kunt
hebben van hetgeen ervoor kwam, dus je zou verscheidene sleutelwoorden 
op kunnen zoeken.</para>

<para>Laten we eens kijken naar &eacute;&eacute;n van de complexere
beschrijvingen van de manual page van <Emphasis>man</Emphasis>:

<screen>
man  [-c|-w|-tZT  device]  [-adhu7V] [-m system[,...]] [-L
locale] [-para string] [-M path] [-P pager] [-r  prompt]  [-S
list] [-e extension] [[section] page ...] ...
</screen>

Het is niet nodig om dit allemaal door te nemen (en maak je er geen
zorgen om wat het allemaal betekent), maar let wel op de organisatie van
de beschrijving.
</para>

<para>Ten eerste, betekenen clusters met opties gewoonlijk dat je 
&eacute;&eacute;n of meer ervan in verschillende combinaties kunt gebruiken,
dus <Emphasis>-adhu7V</Emphasis> betekent dat je ook
<Emphasis>-h</Emphasis> kunt gebruiken. Je kunt echter niet altijd alle
combinaties gebruiken; deze beschrijving maakt dat niet duidelijk.
<Emphasis>-h</Emphasis> is bijvoorbeeld incompatibel met andere opties,
maar je zou <Emphasis>man -du</Emphasis> kunnen gebruiken. Helaas maakt 
het formaat van de beschrijving dit niet duidelijk.
</para>

<para>Ten tweede betekent het symbool <Emphasis>|</Emphasis> "of". Dus je
kunt <Emphasis>&oacute;f</Emphasis> de <Emphasis>-c</Emphasis>, de 
<Emphasis>-w</Emphasis>,
<Emphasis>&oacute;f</Emphasis> de <Emphasis>-tZT</Emphasis> opties,
gevolgd door een <Emphasis>device</Emphasis>-argument gebruiken.</para>

<para>Ten derde, kun je blokhaken nesten, aangezien ze een optionele
<Emphasis>eenheid</Emphasis> aangeven. Dus als je
een <Emphasis>section</Emphasis> hebt, moet je ook een 
<Emphasis>page</Emphasis> hebben, aangezien <Emphasis>page</Emphasis> niet
optioneel is binnen de <Emphasis>[[section] page]</Emphasis> eenheid.</para>

<para>Het is niet nodig dit allemaal te onthouden, refereer gewoon naar
deze sectie als je documentatie leest.</para>
</sect1>

<!--sect1 id="basics-files"><title>Bestanden en Directories</title>-->
<sect1 id="basics-files-intro"><title>Introductie in bestanden</title>

<para><Emphasis>Bestanden</Emphasis> zijn een faciliteit voor het opslaan en
het organiseren van informatie, analoog aan papieren documenten. 
Ze zijn in <Emphasis>directory's</Emphasis> georganiseerd, wat op een
aantal andere systemen <Emphasis>folders</Emphasis> wordt genoemd. Laten we
eens kijken naar de organisatie van bestanden op een Debian-systeem:

<glosslist>

<glossentry <glossterm><Emphasis>/</Emphasis></glossterm>
<glossdef><para>Een simpele <Emphasis>/</Emphasis> stelt de root-directory
voor. Alle andere bestanden en directory's 
bevinden zich in de root-directory. Als je uit de DOS/Windows wereld komt,
is <Emphasis>/</Emphasis> zeer vergelijkbaar met wat
<Emphasis/C:/ voor DOS is, dat is de root van het bestandssysteem.
Een opmerkelijk verschil tussen DOS en Linux is echter, dat DOS verscheidene
bestandssystemen bijhoudt: <Emphasis/C:/ (de eerste harddisk), <Emphasis/A:/
(het eerste diskettestation), <Emphasis/D:/ (&oacute;f de CD-ROM, &oacute;f
de tweede harddisk) terwijl Linux alle bestanden onder dezelfde <Emphasis>/
</Emphasis> root heeft georganiseerd. Zie de <XRef LinkEnd="disks-mount"> voor
meer details.</para></glossdef>
</glossentry>

<glossentry><glossterm><Emphasis>/home/janeq</Emphasis></glossterm>
<glossdef><para>Dit is de home-directory van gebruiker
"janeq". Lezend van links naar rechts, begin je om bij deze directory
te komen in de root-directory, ga je van daaruit naar <Emphasis>home</Emphasis>,
en dan naar <Emphasis>janeq</Emphasis>.</para></glossdef>
</glossentry>

<glossentry><glossterm><Emphasis>/etc/X11/XF86Config</Emphasis></glossterm>
<glossdef><para>Dit is het configuratiebestand voor het X Window Systeem. Het
komt voor in de <Emphasis>X11</Emphasis> subdirectory van de
<Emphasis>/etc</Emphasis> directory. <Emphasis>/etc</Emphasis> is op zijn
beurt een subdirectory van de root-directory <Emphasis>/</Emphasis>.</para>
</glossdef>
</glossentry>

</glosslist></para>

<para>Wat opmerkingen:

<itemizedlist>
<ListItem><para>Bestandsnamen zijn hoofdlettergevoelig. Dat wil zeggen dat
<Emphasis>MYFILE</Emphasis> en <Emphasis>MyFile</Emphasis> 
<Emphasis/verschillende</emphasis> bestanden zijn.</para></listitem>

<ListItem><para>De root-directory verwijst eenvoudig naar
<Emphasis>/</Emphasis>. Verwar deze "root" niet met de root-gebruiker, de
gebruiker op je systeem met "super bevoegdheden".</para></ListItem>

<ListItem><para>Iedere directory heeft een naam welke kan bestaan uit alle
letters of symbolen, <Emphasis>behalve</Emphasis> de <Emphasis>/</Emphasis>. De
root-directory vormt daarop een uitzondering; zijn naam is 
<Emphasis>/</Emphasis> (uitgesproken als "slash" of "de root-directory") en
het kan niet worden hernoemd.</para></Listitem>
</itemizedlist></para>

<para>
<footnote><para>Ondanks dat je bijna alle letters of symbolen in een
bestandnaam <Emphasis>kunt</Emphasis> gebruiken, is het in de praktijk een
slecht idee. Het is beter tekens te vermijden, die op de opdrachtregel
vaak speciale betekenissen hebben, waaronder
<Emphasis>{ } ( ) [ ] ' ` " \ / &gt &lt | ; ! # & ^ *
	% @</Emphasis>.
Voormijd in bestandsnamen ook het plaatsen van spaties.
Als je woorden in een naam van elkaar wilt scheiden, zijn de punt, het
koppelteken, en de underscore goede keuzes. Je zou ook ieder woord met een
hoofdletter kunnen laten beginnen.
<Emphasis>ZoalsDit</Emphasis>.</para>
</footnote></para>

<para>
<itemizedlist>
<ListItem><para>Ieder bestand of iedere directory wordt aangeduid met
een <Emphasis>volledig gekwalificeerde bestandsnaam</Emphasis> (FQN),
<Emphasis>absolute bestandsnaam</Emphasis>, of <Emphasis>pad</Emphasis>,
waarin de reeks directory's wordt aangegeven die moet worden doorlopen
om het te bereiken. De drie termen zijn synoniem. Alle absolute bestandsnamen
beginnen met de <Emphasis>/</Emphasis> directory, en er staat een
<Emphasis>/</Emphasis> tussen iedere directory of bestand in de
bestandsnaam. De eerste <Emphasis>/</Emphasis> is de naam van een
directory, maar de anderen zijn eenvoudigweg scheidingstekens om de 
delen van de bestandsnaam van elkaar te onderscheiden.</para></listitem>
</itemizedlist></para>

<para>De hier gebruikte woorden kunnen verwarrend zijn.
Neem het volgende voorbeeld:

<screen>
/usr/share/keytables/us.map.gz
</screen>

Dit is een volledig gekwalificeerde bestandsnaam; een aantal mensen noemt
het een <Emphasis>path</Emphasis>. Mensen zullen echter naar alleen
<Emphasis>us.map.gz</Emphasis> ook als een bestandsnaam refereren.
<footnote><para>Er is ook nog een ander gebruik voor het woord "path"
<!-- FIXME crossref -->.
De bedoelde betekenis blijkt vaak duidelijk uit de context.
</para></footnote></para>


<itemizedlist>
<ListItem><para>Directories zijn in een boomstructuur gearrangeerd.
Alle absolute bestandsnamen beginnen bij de root-directory. De root-directory
heeft een aantal onderverdelingen, zoals <Emphasis>/etc</Emphasis> en
<Emphasis>/usr</Emphasis>. Deze subdirectory's zijn op hun beurt in nog meer
subdirectory's onderverdeeld, zoals <Emphasis>/etc/init.d</Emphasis> en
<Emphasis>/usr/local</Emphasis>. Het geheel wordt de "directory-structuur"
genoemd.</para>

<para>Je kunt aan een absolute bestandsnaam denken als een route van de basis
van een boom (<Emphasis>/</Emphasis>) naar het einde van een tak (een bestand).
Je zal mensen er ook over horen praten alsof de directory-structuur
een <Emphasis>familie</Emphasis>-stamboom is: dus subdirectory's hebben
"ouders" en een pad toont de complete afstamming van een bestand.</para>

<para>Er zijn ook relatieve paden die ergens anders beginnen dan
vanuit de root-directory. Hierover later meer.</para></ListItem>

<ListItem><para>Er is geen directory die met een fysiek device, zoals je
harddisk correspondeert. Dit verschilt van DOS en Windows, waar alle paden
met de naam van een apparaat, zoals <Emphasis>C:\</Emphasis> beginnen. De
directory-structuur is bedoeld als een afgeleide van de fysieke hardware,
dus je kunt het systeem gebruiken zonder te weten wat de hardware is.
Al je bestanden zouden zich op &eacute;&eacute;n disk kunnen bevinden --
of je zou 20 disks kunnen hebben, waarvan een aantal met een andere computer
elders op het netwerk zijn verbonden.
Dit is niet uit de directory-structuur op te maken, en bijna alle opdrachten
werken op dezelfde manier ongeacht de fysieke apparaten waarop je bestanden
zich in feite bevinden.
</para></listitem>

</itemizedlist>

<para>Maak je er geen zorgen om als het je nog niet helemaal duidelijk is.
Er komen nog heel veel voorbeelden.</para>
</sect1>

<sect1 id="basics-files"><title>Bestanden gebruiken: een tutorial</title>

<para>
Om je systeem te gebruiken, moet je weten hoe je bestanden en
directory's aanmaakt, verplaatst, hernoemt en verwijdert.
In deze sectie wordt beschreven hoe je dit met de standaard Debian
opdrachten doet.
</para>

<para> De beste manier om te leren is door het uit te proberen. Zolang als
je de root niet bent (en nog geen belangrijke persoonlijke bestanden hebt
aangemaakt), is er niets dat je al te serieus kunt verprutsen -- 
Begin meteen --- typ ieder van de volgende opdrachten in achter de prompt
en druk op enter:

<GlossList>
<glossentry>
<glossterm>pwd</glossterm>
<glossdef><para>&Eacute;&eacute;n directory wordt altijd
aangemerkt als de <Emphasis>huidige werkdirectory</Emphasis> voor de in gebruik
zijnde shell. Je kunt deze directory bekijken met het <Emphasis>pwd</Emphasis>
opdracht, wat staat voor Print Working Directory. <Emphasis>pwd</Emphasis>
drukt de naam van de directory af waar je in aan het werken bent ---
waarschijnlijk <Emphasis>/home/jenaam</Emphasis>.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>ls</glossterm>
<glossdef><para><Emphasis>ls</Emphasis> staat voor "lijst", als in "lijst
met bestanden". Als je <Emphasis>ls</Emphasis> intikt, toont het systeem
een lijst met alle bestanden in je huidige werkdirectory. Als je Debian net
hebt ge&iuml;nstalleerd, kan het heel goed zijn dat je home-directory leeg is.
Als je werkdirectory leeg is, produceert <Emphasis>ls</Emphasis> geen uitvoer,
aangezien er geen bestanden zijn om weer te geven.</para></glossdef>
</glossentry>

<glossentry><glossterm>cd /</glossterm>
<glossdef><para><Emphasis>cd</Emphasis> betekent Change Directory (Verander van
directory). In dit geval vroeg je naar de root-directory te gaan.</para>
</glossdef></glossentry>

<glossentry><glossterm>pwd</glossterm>
<glossdef><para>Verifieer dat je in de root-directory aan het werken bent.
</para></glossdef></glossentry>

<glossentry><glossterm>ls</glossterm>
<glossdef><para>Kijk wat er zich in <Emphasis>/</Emphasis> bevindt.</para>
</glossdef></glossentry>

<glossentry>
<glossterm>cd</glossterm>
<glossdef><para>Het typen van <Emphasis>cd</Emphasis> zonder argumenten
selecteert je home-directory als je huidige werkdirectory --- 
<Emphasis>/home/yourname</Emphasis>. Probeer dit met <Emphasis>pwd</Emphasis>
te verifi&euml;ren.</para></glossdef>
</glossentry>

</GlossList></para>

<para>Voor we verder gaan, zou je moeten weten dat er in feite twee 
verschillende soorten bestandsnamen zijn. Een aantal daarvan begint met
<Emphasis>/</Emphasis>, de root-directory, zoals 
<Emphasis>/etc/profile</Emphasis>. Dit worden <Emphasis>absolute</Emphasis>
bestandsnamen genoemd omdat ze naar hetzelfde bestand refereren ongeacht wat
je huidige directory is. De andere soort bestandsnaam is 
<Emphasis>relatief</Emphasis>.</para>

<para>Twee directorynamen worden <Emphasis>alleen</Emphasis> in relatieve
bestandsnamen gebruikt: <Emphasis>.</Emphasis> en <Emphasis>..</Emphasis>.
De directory <Emphasis>.</Emphasis> verwijst naar de huidige directory en
<Emphasis>..</Emphasis> is de ouder-directory. Dit zijn "shortcut" 
directory's. Ze komen in <Emphasis>iedere</Emphasis> directory voor. Zelfs de 
root-directory heeft een ouder-directory --- het is zijn eigen ouder!</para>

<para>Dus bestandnamen met een <Emphasis>.</Emphasis> of 
<Emphasis>..</Emphasis> zijn <Emphasis>relatief</Emphasis>, omdat hun
betekenis afhankelijk is van de huidige directory. Als ik in 
<Emphasis>/usr/bin</Emphasis> ben en <Emphasis>../etc</Emphasis> intik, 
dan refereer ik naar <Emphasis>/usr/etc</Emphasis>. Als ik in 
<Emphasis>/var</Emphasis> ben en <Emphasis>../etc</Emphasis> intik, dan 
refereer ik naar <Emphasis>/etc</Emphasis>. Merk op dat een bestandsnaam
zonder dat het begint met de root-directory impliciet begint met
<Emphasis>./</Emphasis>. Dus je kunt <Emphasis>local/bin</Emphasis> of
<Emphasis>./local/bin</Emphasis> typen en het betekent hetzelfde.</para>

<para>Een laatste handige tip: de tilde <Emphasis>~</Emphasis> is equivalent
aan je home-directory. Dus het typen van <Emphasis>cd ~</Emphasis> is
hetzelfde als het typen van <Emphasis>cd</Emphasis> zonder argumenten. Je kunt
ook zoiets typen als <Emphasis>cd ~/practice/mynsubdirectory</Emphasis> om naar
de directory <Emphasis>/home/jenaam/practice/mynsubdirectory</Emphasis> te
gaan. Op vergelijkbare wijze, is <Emphasis/~vincent/ equivalent aan de 
home-directory van de gebruiker "vincent", welke waarschijnlijk iets is als
<Emphasis>/home/vincent</Emphasis>; dus <Emphasis>~vincent/docs/debian.ps</Emphasis> is equivalent aan <Emphasis>/home/vincent/doc/debian.ps</Emphasis>.</para>

<para>Nu dat je bekend bent met relatieve bestandsnamen, zijn hier nog wat
meer bestandsopdrachten om uit te proberen.
<Emphasis>cd</Emphasis> naar je home-directory voor je begint.

<Glosslist>

<glossentry><glossterm>mkdir practice</glossterm>
<glossdef><para>Maak in je home-directory
een directory met de naam <Emphasis>practice</Emphasis> aan. Je zal deze
directory gaan gebruiken om nog wat andere opdrachten uit te proberen.
Je kunt <Emphasis>ls</Emphasis> typen om te verifi&euml;ren dat je nieuwe
directory bestaat.</para></glossdef></glossentry>

<glossentry><glossterm>cd practice</glossterm>
<glossdef><para>Ga naar de directory <Emphasis>practice</Emphasis>.
</para></glossdef></glossentry>

<glossentry>
<glossterm>mkdir mysubdirectory</glossterm>
<glossdef><para>Maak een subdirectory van <Emphasis>practice</Emphasis>.
</para></glossdef>
</glossentry>

<glossentry>
<glossterm>cp /etc/profile .</glossterm>
<glossdef><para><Emphasis>cp</Emphasis> is
een afkorting voor "copy."  <Emphasis>/etc/profile</Emphasis> is gewoon een 
willekeurig bestand op je systeem, maak je er nu niet druk om wat het is.
We hebben het naar <Emphasis>.</Emphasis> gekopieerd ---
herinner je dat <Emphasis>.</Emphasis> gewoon betekent "de directory waarin
ik me nu bevind" oftewel de huidige werkdirectory. Dus we hebben een kopie van
<Emphasis>/etc/profile</Emphasis> aangemaakt, en het in onze
<Emphasis>practice</Emphasis> directory geplaatst. Probeer
<Emphasis>ls</Emphasis> in te typen om te verifi&euml;ren dat er in je
werkdirectory met de nieuwe <Emphasis>mysubdirectory</Emphasis>
inderdaad een bestand is met de naam 
<Emphasis>profile</Emphasis>.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>more profile</glossterm>
<glossdef><para>Bekijk de inhoud van het
bestand <Emphasis>profile</Emphasis>. <Emphasis>more</Emphasis> wordt gebruikt
om de inhoud van tekstbestanden te bekijken. Het wordt 
<Emphasis>more</Emphasis> genoemd, omdat het tegelijkertijd een
scherm vol van het bestand laat zien, en je op de spatiebalk moet drukken om
meer te zien te krijgen. <Emphasis>more</Emphasis> wordt be&euml;indigd als
je aan het einde van het bestand bent gekomen of als je
<Emphasis>q</Emphasis> (quit) intikt.</para></glossdef> 
</glossentry>

<glossentry><glossterm>more /etc/profile</glossterm>
<glossdef><para>Verifieer dat het origineel er net zo uitziet als de kopie
die je hebt aangemaakt.
</para></glossdef></glossentry>

<glossentry>
<glossterm>mv profile mysubdirectory</glossterm>
<glossdef><para><Emphasis>mv</Emphasis> staat voor "move". We hebben het bestand
<Emphasis>profile</Emphasis> vanuit de huidige directory naar de eerder
aangemaakte subdirectory verplaatst.
</para></glossdef>
</glossentry>

<glossentry>
<glossterm>ls</glossterm>
<glossdef><para>Verifieer dat <Emphasis>profile</Emphasis> zich niet langer
in de huidige directory bevindt.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>ls mysubdirectory</glossterm>
<glossdef><para>Verifieer dat <Emphasis>profile</Emphasis> naar 
<Emphasis>mysubdirectory</Emphasis> is verplaatst.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>cd mysubdirectory</glossterm>
<glossdef><para>Verander van subdirectory.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>mv profile myprofile</glossterm>
<glossdef><para>Merk op dat in tegenstelling tot een aantal andere
besturingssystemen, er geen verschil is tussen het verplaatsen en hernoemen
van een bestand. Dus er is geen aparte <Emphasis>rename</Emphasis> opdracht.
Merk op dat het tweede opgegeven argument aan <Emphasis>mv</Emphasis> een
directory om het bestand of een directory naar te verplaatsen, of een nieuwe
bestandsnaam kan zijn. <Emphasis>cp</Emphasis> werkt op dezelfde manier.
Zoals gebruikelijk kun je <Emphasis>ls</Emphasis> intikken om het resultaat van
<Emphasis>mv</Emphasis> te zien.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>mv myprofile ..</glossterm> 
<glossdef><para>Net als <Emphasis>.</Emphasis> betekent "de directory waar
ik me nu in bevind", betekent <Emphasis>..</Emphasis> "ouder van de huidige
directory", in dit geval de eerder aangemaakte directory 
<Emphasis>practice</Emphasis>. Gebruik <Emphasis>ls</Emphasis> om te
verifi&euml;ren dat <Emphasis>myprofile</Emphasis> daar nu is.</para></glossdef>
</glossentry>

<glossentry><glossterm>cd ..</glossterm>
<glossdef><para>Wijzig van directory naar de ouder-directory --- in dit
geval <Emphasis>practice</Emphasis>,
waar je net <Emphasis>myprofile</Emphasis> in hebt geplaatst.</para></glossdef>
</glossentry>

<glossentry><glossterm>rm myprofile</glossterm>
<glossdef><para><Emphasis>rm</Emphasis>
betekent "remove" --- hiermee wordt <Emphasis>myprofile</Emphasis> verwijderd.
Wees voorzichtig! Het verwijderen van een bestand op een GNU/Linux systeem is
<Emphasis>permanent</Emphasis> --- er is geen undelete. Als je de opdracht
<Emphasis>rm</Emphasis> toepast, is het <Emphasis>verdwenen</Emphasis>, 
<Emphasis>voor altijd</Emphasis>.
Wees voorzichtig!  Het verwijderen van een bestand op een GNU/Linux systeem is
<Emphasis>permanent</Emphasis> --- er is geen undelete. Als je de opdracht
<Emphasis>rm</Emphasis> toepast, is het <Emphasis>verdwenen</Emphasis>, 
<Emphasis>voor altijd</Emphasis>.
<!-- Ja, twee keer, om er zeker van te zijn dat de gebruiker het merkt...;) --> 
</para></glossdef></glossentry>

<glossentry><glossterm>rmdir mysubdirectory</glossterm>
<glossdef><para><Emphasis>rmdir</Emphasis> is net als <Emphasis>rm</Emphasis>,
het geldt echter voor directory's. Merk op dat <Emphasis>rmdir</Emphasis>
alleen op lege directory's werkt --- als de directory bestanden bevat, moet
je die bestanden eerst verwijderen, of als alternatief
<Emphasis>rm -r</Emphasis> gebruiken in plaats van <Emphasis>rmdir</Emphasis>.
</para></glossdef></glossentry>

<!-- TO BE DELETED
<ListItem> <Emphasis>rmdir .</Emphasis> <para> Oops! That didn't work. Je kunt
een directory waar je op 't moment in aan het werken bent,
niet verwijderen.

Well, 'rmdir .' happens to work fine:

vince:/tmp# mkdir poil
vince:/tmp# cd poil
vince:/tmp/poil# rmdir .
vince:/tmp/poil# ls -al  
total 0
vince:/tmp/poil# ls -al ../poil
ls: ../poil: No such file or directory

-->

<glossentry><glossterm>cd ..</glossterm>
<glossdef><para>Verlaat de huidige directory en ga naar zijn ouder-directory.
Nu kun je typen:</para></glossdef></glossentry>

<glossentry><glossterm>rmdir practice</glossterm>
<glossdef><para>Hiermee zullen de laatste overblijfselen van je oefensessie
worden verwijderd.
</para></glossdef>
</glossentry>

</GlossList></para>

<para>Zo, dus nu weet je hoe je bestanden en directory's kunt aanmaken,
kopi&euml;ren, verplaatsen, hernoemen en verwijderen.
Je leerde ook wat shortcuts, zoals het eenvoudigweg intikken van
<Emphasis>cd</Emphasis> om naar je home-directory te springen
en <Emphasis>.</Emphasis> en <Emphasis>..</Emphasis> om respectievelijk naar
de huidige directory en zijn ouder te refereren.
Vergeet ook het concept van de <Emphasis>root
directory</Emphasis>, of <Emphasis>/</Emphasis>, en de alias
<Emphasis>~</Emphasis> voor je home-directory niet.</para>
</sect1>

<sect1 id="basics-processes"><title>Processen </title>

<para>Eerder vermeldden we dat GNU/Linux een <Emphasis>multitasking</Emphasis>
systeem is. Het kan vele taken tegelijkertijd verrichten. Iedere taak wordt
een <Emphasis>proces</Emphasis> genoemd. De beste manier om hier gevoel voor
te krijgen is achter de shell-prompt <Emphasis>top</Emphasis> te typen.
Je zal een lijst krijgen met processen, die zijn gesorteerd naar gelang
hoeveel verwerkingstijd van de computer ze gebruiken.
De volgorde zal voor je ogen continue wijzigen.
Bovenaan het display staat wat informatie over het systeem: hoeveel gebruikers
zijn ingelogd, hoeveel processen er zijn, hoeveel geheugen je hebt en hoeveel
je gebruikt.
</para>

<para>In de meest linkse kolom, zie je de naam van de gebruiker als eigenaar
van ieder proces.
De meest rechtse kolom toont met welke opdracht het proces werd aangeroepen.
Het zal je waarschijnlijk opvallen dat <Emphasis>top</Emphasis> zelf,
door jou aangeroepen, vrijwel bovenaan de lijst staat (aangezien 
<Emphasis>top</Emphasis> voortdurend controleert op CPU-gebruik, zal het actief
zijn en voor de controle CPU gebruiken).
</para> 

<para>Let op alle opdrachten die eindigen op <Emphasis>d</Emphasis> --- zoals
<Emphasis>kflushd</Emphasis> en <Emphasis>inetd</Emphasis> --- 
de <Emphasis>d</Emphasis> staat voor <Emphasis>daemon</Emphasis>
<footnote><para>daemon betekent van origine
Disks And Extensions MONitor</para></footnote>. Een daemon is een 
niet-interactief proces, dat wil zeggen dat het door het systeem wordt
gedraaid en gebruikers zich er nooit om hoeven te bekommeren.
Daemons leveren services zoals een internet-verbinding, het afdrukken, of email.
</para>

<para>Tik nu de <Emphasis>u</Emphasis> in en geef <Emphasis>top</Emphasis> je
gebruikersnaam wanneer het daarom vraagt.
De opdracht <Emphasis>u</Emphasis> vraagt alleen die processen te tonen
die aan jou toebehoren; het staat je toe alle daemons en wat andere mensen dan
ook aan het doen zijn, te negeren. Wellicht dat de naam van je shell,
<Emphasis>bash</Emphasis>, je opvalt.
Je zal vrijwel altijd <Emphasis>bash</Emphasis> aan het draaien zijn.</para>

<para>Merk op dat kolom twee van het <Emphasis>top</Emphasis> display je het
<Emphasis>PID</Emphasis>, of Proces IDentificatie nummer toont. Aan ieder
proces is een uniek PID toegekend. Je kunt het PID gebruiken om individuele
processen te besturen --- hierover later meer. Een andere handige truc:
typ "?" om een lijst met <Emphasis>top</Emphasis> opdrachten te krijgen.</para>

<para>Misschien dat je je afvraagt wat het verschil is tussen een "proces"
en een "programma" --- in de praktijk gebruiken mensen de termen door elkaar.
Technisch gezien is het <Emphasis>programma</Emphasis> een set instructies door
een programmeur geschreven, en wordt het bewaard op disk. Het 
<Emphasis>proces</Emphasis> is de werkende instantie van het programma dat
door Linux in het geheugen wordt bewaard. Maar zo belangrijk is het niet de
termen strict gescheiden te houden.</para>

<para>Veel van je interactie met een computer heeft te maken met
het besturen van processen. Je zal ze willen starten, stoppen en zien
in welke staat ze zich bevinden. Je primaire hulpmiddel hiervoor is de
<Emphasis>shell</Emphasis>.</para>
</sect1>

<sect1 id="basics-shell"><title>De shell</title>

<para>De <Emphasis>shell</Emphasis> is een programma dat een wisselwerking
met je computer mogelijk maakt. Het wordt een shell genoemd omdat het in een
omgeving voor je voorziet om in te werken --- een soort klein
elektronisch thuis voor als je computert. 
<!--(Think hermit crab.)--></para> 

<para>De eenvoudigste functie van de shell is andere programma's op te
starten. Je typt de naam van het programma dat je uit wilt voeren,
gevolgd door de gewenste argumenten, en de shell vraagt het systeem
vervolgens het programma voor je uit te voeren.</para>

<para>Natuurlijk voorzien ook grafische window systemen in deze behoeften.
Technisch gezien voorziet Windows 95 in een grafische shell, en het
X Window Systeem is een andere soort grafische shell
--- maar "shell" wordt in 't algemeen met als betekenis 
"opdrachregel-shell" gebruikt.</para>

<para>Onnodig te zeggen dat hackers die onder shells werken, niet
tevreden zijn met een simpelweg opstarten van opdrachten. Je shell heeft
een verbijsterend aantal comfortabele speciale mogelijkheden als je daar
gebruik van wilt maken.
</para>

<Para>Er zijn ontelbare verschillende shells beschikbaar; de meeste daarvan zijn
gebaseerd op de <Emphasis>Bourne shell</Emphasis> of de <Emphasis>C
shell</Emphasis>, twee van de oudste shells. De programmanaam van de originele
Bourne shell is <command>sh</command> en die van de C-shell is
<command>csh</command>. Bourne shell varianten
zijn onder andere de Bourne Again Shell van het GNU-project
(<Emphasis>bash</Emphasis>, de standaardshell van Debian), de Korn shell
(<command>ksh</command>), en de Z shell
(<command>zsh</command>). Ook is er <command>ash</command>, een
implementatie van oudsher van de Bourne shell. De meest algemene
C-shell variant is <command>tcsh</command> (de <Emphasis>t</Emphasis>
is een eerbewijs aan de TENEX en TOPS-20 besturingssystemen,
die wat van de inspiratie opleverde van 
<Emphasis>tcsh</Emphasis>'s verbeteringen aan
<Emphasis>csh</Emphasis>).</para>

<para>Bash is voor nieuwe gebruikers waarschijnlijk de beste keuze.
Het is de standaard, en heeft alle speciale mogelijkheden die je 
waarschijnlijk nodig zal hebben.
Maar alle shells hebben loyale opvolgers; als je wilt experimenteren,
installeer dan verschillende shell-packages en wijzig je shell
met de opdracht <command>chsh</command>. Tik slechts
<Emphasis>chsh</Emphasis> in, vul een wachtwoord in als daarom wordt gevraagd,
en kies een shell. Wanneer je de volgende keer inlogt, zal je
je nieuwe shell gebruiken.</para>
</sect1>

<sect1 id="basics-jobs"><title>Beheren van processen met Bash</title>

<para>Debian is een multitasking systeem, dus je hebt een manier nodig om
meer dan &eacute;&eacute;n ding tegelijkertijd te doen. Grafische
omgevingen zoals X voorzien hierin op natuurlijke wijze; ze staan
tegelijkertijd meerdere vensters op het scherm toe. Natuurlijk voorziet
Bash (of iedere andere shell) in vergelijkbare mogelijkheden.</para>

<para>Eerder maakte je gebruik van <command>top</command> om de verschillende
processen op het systeem te bekijken. Je shell voorziet in een aantal
comfortabele wijzen om alleen de processen die je vanaf de opdrachtregel
hebt opgestart bij te houden. Iedere opdrachtregel start een
<Emphasis>job</Emphasis> (ook een <Emphasis>process group</Emphasis> genoemd)
om door de shell te worden uitgevoerd. Een job kan bestaan uit een enkel
proces of een set processen in een <Emphasis>pipeline</Emphasis> ---
meer over pipelines later. <!-- [FIXME xref] --></para>

<para>Door het invoeren van een opdracht zal een job worden gestart.
Probeer eens het intikken van <Emphasis>man cp</Emphasis> en de man page van
<Emphasis>cp</Emphasis> zal op het scherm verschijnen.
De shell gaat naar de achtergrond en keert terug wanneer
je klaar bent met het lezen van de manual page
(of <Emphasis>q</Emphasis> intikt om het te stoppen in plaats van er
geheel doorheen te scrollen).</para>

<para>Maar stel dat je de manual page aan het lezen bent, en even iets anders
wilt doen. Geen probleem. Typ terwijl je aan het lezen bent <Emphasis>C-z</Emphasis> om de huidige voorgrondtaak <Emphasis>uit te stellen</Emphasis>, en de
shell in de voorgrond te plaatsen. Wanneer je een taak uitstelt, zal Bash je
er eerst wat informatie over geven, en vervolgens geeft het je een
shell-prompt. Je zal op het scherm iets te zien krijgen als:

<screen>
NAME
cp - copy files

SYNOPSIS
cp [options] source dest
cp [options] source... directory
Options:
[-abdfilprsuvxPR]  [-S backup-suffix] [-V {numbered,exist­
ing,simple}]   [--backup]   [--no-dereference]   [--force]
[--interactive] [--one-file-system] [--preserve] [--recur­
sive]  [--update]   [--verbose]   [--suffix=backup-suffix]
[--version-control={numbered,existing,simple}] [--archive]
[--parents] [--link]  [--symbolic-link]  [--help]  [--ver­
sion]

DESCRIPTION
--More--
[1]+  Stopped                 man cp
$ 
</screen>
</para>

<para>Merk de laatste twee regels op. 
De voorlaatste is de job informatie, en vervolgens krijg je een shell-prompt.
</para>

<para>Bash wijst aan iedere opdrachtregel die je vanuit de shell draait
een <Emphasis>job nummer</Emphasis> toe.
Dit geeft je de mogelijkheid eenvoudig naar het proces te refereren.
In dit geval is <Emphasis>man cp</Emphasis> job nummer 1,
wat wordt weergegeven als <Emphasis>[1]</Emphasis>. De <Emphasis>+</Emphasis>
betekent dat dit de laatste job was die je in de voorgrond had.
Bash vertelt je ook de huidige status --- <Emphasis>Stopped</Emphasis> --- en
de opdrachtregel van de job.
</para>

<para>Er is heel veel dat je met jobs kunt doen. Probeer met <Emphasis>man
cp</Emphasis> nog steeds uitgesteld, dit:

<Glosslist>
<Glossentry><glossterm>man ls</glossterm>
<glossdef><para>Start een nieuwe job.</para></glossdef>
</glossentry>

<glossentry><glossterm>C-z</glossterm>
<glossdef><para>Stel de job <Emphasis>man ls</Emphasis> uit door het
indrukken van de Control-toets en kleine letter <Emphasis>z</Emphasis>;
je zou de job informatie te zien moeten krijgen.
</para></glossdef>
</glossentry>

<glossentry><glossterm>man mv</glossterm>
<glossdef><para>Start nog een andere job.</para></glossdef>
</glossentry>

<glossentry><glossterm>C-z</glossterm>
<glossdef><para>Stel het uit.</para></glossdef>
</glossentry>

<glossentry><glossterm>jobs</glossterm>
<glossdef><para>Vraag Bash om een weergave van de huidige taken:


<screen>
$ jobs
[1]   Stopped                 man cp
[2]-  Stopped                 man ls
[3]+  Stopped                 man mv
$ 
</screen>

Bemerk de <Emphasis>-</Emphasis> en <Emphasis>+</Emphasis>, die respectievelijk
de voorlaatste en laatste in de voorgrond geplaatste jobs aanduiden.</para>
</glossdef></glossentry>

<glossentry><glossterm>fg</glossterm>
<glossdef><para>Plaats de laatste in de achtergrond geplaatste taak
(<Emphasis>man mv</Emphasis>, degene met de <Emphasis>+</Emphasis>) weer
in de voorgrond. Als je op de spatiebalk drukt, zal de man page verdergaan
met scrollen.</para></glossdef></glossentry>

<glossentry><glossterm>C-z</glossterm>
<glossdef><para>Stel <Emphasis>man mv</Emphasis> opnieuw uit.</para></glossdef>
</glossentry>

<glossentry><glossterm>fg %1</glossterm>
<glossdef><para>Je kunt naar iedere job refereren door voor het nummer
een <Emphasis>%</Emphasis> te plaatsen. Als je <Emphasis>fg</Emphasis>
gebruikt zonder een job aan te geven, dan wordt uitgegaan van de laatste
actieve job.
</para></glossdef>
</glossentry>

<glossentry><glossterm>C-z</glossterm>
<glossdef><para>Stel <Emphasis>man cp</Emphasis> nogmaals uit.</para></glossdef>
</glossentry>

<glossentry><glossterm>kill %1</glossterm>
<glossdef><para>Kill job 1. Bash zal de job informatie rapporteren:
<screen>
$ kill %1
[1]-  Terminated              man cp
$ 
</screen>

Bash vraagt slechts de job te stoppen, en soms zal een job dit niet
willen doen. Als de job niet wordt be&euml;indigd, kun je de optie
<Emphasis>-9</Emphasis> aan kill toevoegen om het verzoek te stoppen en
het op te dragen te stoppen.
Als voorbeeld:

<screen>
$ kill -9 %1
[1]-  Killed                  man mv
$ 
</screen>

De optie <Emphasis>-9</Emphasis> killt geforceerd en onvoorwaardelijk de
job. <footnote><para>In technische termen zendt
<Emphasis>kill</Emphasis> gewoon een signaal. Standaard verzendt het een
signaal dat verzoekt om be&euml;indiging.
(<Emphasis>TERM</Emphasis>, of signaal 15); maar je kunt ook een signaal
opgeven, en signaal 9 (<Emphasis>KILL</Emphasis>) is het signaal dat
de be&euml;indiging forceert.
De opdrachtnaam <Emphasis>kill</Emphasis> is niet noodzakelijk juist voor
wat betreft het gezonden signaal; het zenden van het signaal
<Emphasis>TSTP</Emphasis> (terminal stop) bijvoorbeeld, stelt het proces
uit, en staat toe dat het later wordt voortgezet.
</para></footnote>
<!-- FIXME 
Wat is het verschil (is dat er?) tussen SIGSTOP (19) en SIGTSTP (20)  ???
Zeg 't me (vincent@debian.org) als je het weet...
--></para></glossdef></glossentry>

<glossentry>
<glossterm>top</glossterm>
<glossdef><para>Breng het <Emphasis>top</Emphasis> display weer tevoorschijn.
Geef de opdracht <Emphasis>u</Emphasis> in <Emphasis>top</Emphasis> om alleen
je eigen processen te zien. Zoek in de rechterkolom naar de 
<Emphasis>man ls</Emphasis> en <Emphasis>man mv</Emphasis>
opdrachten. <Emphasis>man cp</Emphasis> zal er niet staan aangezien je de
opdracht kill er op toepaste. <Emphasis>top</Emphasis> toont je de
systeemprocessen overeenkomstig je jobs; merk op dat het PID links op het
scherm niet correspondeert met het job nummer.
</para>

<para>Wellicht dat je je processen niet kunt vinden omdat ze zich
onderaan het scherm bevinden; als je X gebruikt, kun je de
<Emphasis>xterm</Emphasis> van grootte wijzigen om dit probleem op te lossen.
</para>

<para>Zelfs deze simpele taken bestaan in feite uit meerdere
processen, waaronder het <Emphasis>man</Emphasis> proces en de
pager <Emphasis>more</Emphasis> welke het tegelijkertijd scrollen van een
pagina afhandelt. Wellicht merk je dat ook de <Emphasis>more</Emphasis>
processen in <Emphasis>top</Emphasis> zichtbaar zijn.</para></glossdef>
</glossentry>

</GlossList></para>

<para>Je kunt er waarschijnlijk zelf wel achter komen hoe de resterende
jobs kunnen worden opgeruimd. Je kunt ze zowel killen (met de 
<Emphasis>kill</Emphasis> opdracht) of ieder in de voorgrond plaatsen
(met <Emphasis>fg</Emphasis>) en ze be&euml;indigen.
Onthoud dat de opdracht <Emphasis>jobs</Emphasis> je de lijst met
bestaande jobs en de status van deze jobs geeft.
</para>

<para>Een laatste opmerking: de documentatie van Bash is tamelijk goed,
maar het is in het Info helpsysteem te vinden in plaats van in de
man pages. Typ <Emphasis>info bash</Emphasis> om het te lezen. Zie <XRef
LinkEnd="docs-info"> voor instructies over het gebruik van het
<Emphasis>info</Emphasis> programma. 
Bash bevat ook een zeer goede samenvatting van de opdrachten, die toegankelijk
zijn via de opdracht <Emphasis/help/. <Emphasis/help/ toont een lijst
met beschikbare onderwerpen; meer informatie over ieder onderwerp is 
toegankelijk via de opdracht
<Emphasis/help naam van onderwerp/; Probeer bijvoorbeeld het intikken van 
<screen/help cd/. Hiermee krijg je de details van de <Emphasis/-P/ en 
<Emphasis/-L/ argumenten die door <Emphasis/cd</Emphasis> worden herkend.</para>
</sect1>

<sect1 id="basics-bash"><title>Een paar Bash kenmerken</title>

<para>In deze sectie worden slechts een paar van de in het algemeen meest
gebruikte Bash kenmerken behandeld; zie <XRef LinkEnd="shell"> voor een meer
complete bespreking.</para>
</sect1>

<sect1 id="basics-bash-completion"><title>Tab Voltooi&iuml;ng</title>

<para>De Bash-shell is in staat de bestandsnaam of de opdracht wat je
in probeert te typen, te raden, en kan het nog niet volledig getypte opdracht
automatisch voor je aanvullen. Typ gewoon het begin van een opdracht of een
bestandsnaam en druk op <Emphasis>TAB</Emphasis>. Als Bash een enkele unieke
aanvulling vindt, zal het 't woord afmaken en er een spatie achter plaatsen.
Als het meerdere mogelijke aanvullingen vindt, zal het dat deel aanvullen dat
alle aanvullingen gemeen hebben en een beep genereren.
Je kunt dan zoveel tekens van het woord invullen dat het 't weer uniek maakt,
en nogmaals op <Emphasis>TAB</Emphasis> drukken. Als het geen aanvullingen
vindt, zal het slechts een beep genereren.
</para>
</sect1>

<!-- FIXME XXX
<sect1> <title>Meer mogelijkheden? Zo niet, elimineer deze sectie dan.
</title>
-->


<sect1 id="basics-identity"><title>Je identiteit beheren</title>

<para>Op Unix lijkende systemen zijn multi-user, en dus heb je je eigen
elektronische identiteit als een gebruiker op het systeem.
Typ <Emphasis>finger je-gebruikersnaam</Emphasis> om de informatie te
bekijken die voor het publiek toegankelijk is. Om de naam en de shell die
hier worden weergegeven, te wijzigen, kun je de opdrachten 
<Emphasis>chfn</Emphasis> en <Emphasis>chsh</Emphasis> gebruiken. Alleen de
superuser kan je login (gebruikersnaam) en directory wijzigen. Je bemerkt
dat het aangeeft "No plan" -- een "plan" is gewoon wat informatie welke je
voor anderen beschikbaar kunt stellen. 
Om een plan aan te maken, plaats je de informatie waarvan je wilt dat andere
mensen die kunnen zien in een bestand met de naam 
<Emphasis>.plan</Emphasis> --- hiervoor gebruik je een teksteditor
(zie <XRef LinkEnd="editor">). Vervolgens pas je op jezelf de opdracht
finger toe om je plan te bekijken.
Anderen kunnen de opdracht finger toepassen om je plan te zien en om te
controleren of je nieuwe mail hebt ontvangen of je mail leest.
</para>

<para>Merk op dat deze finger informatie standaard voor het gehele Internet
beschikbaar is. Lees over het configureren van <Emphasis>inetd</Emphasis> en
het bestand <Emphasis>/etc/services</Emphasis> als je dit niet wilt --- 
eventueel kan een beschrijving worden aangetroffen in het installatie-handboek,
voor 't moment zou je de man pages kunnen proberen, of gewoon wat onzin als
finger informatie in het bestand kunnen plaatsen.
</para>
</sect1>
</chapter>

<chapter id="docs-info"><title>Lezen van documentatie en hulp verkrijgen
</title>

<sect1 id="docs-sources"><title>Soorten documentatie</title>

<para>Helaas is de documentatie op Unix lijkende systemen een beetje
ongeorganiseerd. Onder Debian, kun je documentatie in ieder geval
op de volgende plaatsen aantreffen:

<itemizedlist>
<ListItem><para>man pages, te lezen met de opdracht man.</para></listitem>

<ListItem><para>info pages, te lezen met de opdracht info.</para></listitem>

<ListItem><para>De /usr/doc/package directory's, waar package de naam is van het
Debian package.</para></listitem>

<ListItem><para>/usr/doc/HOWTO/ bevat de Linux
Documentatie Project's HOWTO documenten, als je de Debian packages
hebt ge&iuml;nstalleerd waarin ze zich bevinden.</para></listitem>

<ListItem><para>Veel opdrachten accepteren een -h of --help
optie. Typ de naam van de opdracht gevolgd door &eacute;&eacute;n van deze
opties om het uit te proberen.</para></listitem>

<ListItem><para>Het Debian Documentatie Project heeft een aantal
handleidingen geschreven, waaronder deze handleiding.
Controleer het op <ULink url="http://www.debian.org/~elphick/ddp/">hun homepage</ULink>.</para></listitem>

<ListItem><para>Op de <ULink url="http://www.debian.org/support/">Debian support page</ULink> staat een FAQ en andere bronnen.
Je kunt ook de 
<ULink url="http://www.linux.org">Linux web site</ULink> proberen.</para></listitem>

<ListItem><para>Je kunt veel commerci&euml;le boeken met behulpzame
informatie kopen. De meeste mensen prijzen de merknaam O'Reilly hoog aan.
Neem echter ondersteunde vrij te wijzigen en herdistribueerbare
handboeken, zoals dit handboek, in overweging als dat mogelijk is.
Als je een papieren versie wilt, dan ondersteunt de aanschaffing van
vrije handboeken van het Free Software Foundation
(beschikbaar bij vele boekwinkels, zoals Borders, en direct via de FSF) 
de aanmaak van meer vrije software.
</para></listitem>
</itemizedlist></para>

<para>De verwarrende vari&euml;teit aan documentatie-bronnen bestaat
om vele redenen. Van <Emphasis>info</Emphasis> wordt bijvoorbeeld
verondersteld dat het <Emphasis>man</Emphasis> vervangt, maar
<Emphasis>man</Emphasis> is nog niet verdwenen. Het is echter prettig te weten
dat er zoveel documentatie bestaat!</para>

<para>Dus waar voor hulp te zoeken? Hier zijn wat suggesties:

<itemizedlist>
<ListItem><para>Gebruik de <Emphasis>man</Emphasis> pages en de 
<Emphasis>--help</Emphasis> of <Emphasis/-h/ optie om snel een
samenvatting van de syntax en opties van een opdracht te verkrijgen.
Gebruik ook <Emphasis>man</Emphasis> als een programma nog geen
<Emphasis>info</Emphasis> page heeft.</para></listitem>

<ListItem><para>Gebruik <Emphasis>info</Emphasis> als een programma
<Emphasis>info</Emphasis> documentatie heeft.</para></listitem>

<ListItem><para>Als niets hiervan werkt, kijk dan in de directory
<Emphasis>/usr/doc/packagename</Emphasis>.</para></listitem>

<ListItem><para><Emphasis>/usr/doc/packagename</Emphasis> heeft vaak voor
Debian specifieke informatie, zelfs als er een man page of info page is.
</para></listitem>

<ListItem><para>Gebruik de <Emphasis>HOWTO's</Emphasis> voor instructies over
hoe iets bepaalds in te stellen, of informatie over je specifieke hardware.
In de Ethernet HOWTO staat bijvoorbeeld een schat aan informatie over
ethernet-kaarten, en in de PPP HOWTO wordt in detail uitgelegd hoe PPP in te
stellen.</para></listitem>

<ListItem><para>Gebruik de handboeken van het Debian Documentatie Project
voor uitleg over begrippen en Debian-specifieke informatie.</para></listitem>

<ListItem><para>Als dit allemaal niet lukt, vraag iemand er dan om. Zie
de <XRef LinkEnd="docs-support">.</para>
</listitem>
</itemizedlist>
</para>

<para>Het gebruik van <Emphasis>man</Emphasis> pages is hierboven besproken
in de <XRef LinkEnd="basics-commandline">. (Het is zeer eenvoudig: druk op de
spatiebalk om naar de volgende pagina te gaan, en tik de
<Emphasis>q</Emphasis> in om te stoppen met lezen).
<Emphasis>info</Emphasis>, het bekijken van bestanden in
<Emphasis>/usr/doc</Emphasis>, en het vragen om hulp van iemand worden
in dit hoofdstuk besproken.
</para>
</sect1>

<!--
<sect1 id="docs-info"><title>Het gebruik van info</title>

<para>Een beknopte samenvatting/tutorial van toetsaanslagen, benoem
TkInfo, verontschuldig voor ridiculous keystrokes.</para>
</sect1>

<sect1 id="docs-textfiles"><title>Bekijken van tekstbestanden met more en less
</title>

<para>Gebruik deze om een aantal docs te bekijken. Benoem zless en wanneer
het te gebruiken.
</para>
</sect1>
-->

<sect1 id="docs-howtos"><title>HOWTO's </title>

<para>In aanvulling op hun boeken, heeft het Linux Documentatie Project een
serie beknopte documenten gemaakt die beschrijven hoe een bepaald aspect
van GNU/Linux kan worden ingesteld. De SCSI-HOWTO beschrijft bijvoorbeeld
wat van de complicaties over het gebruik van SCSI
--- een standaardwijze waarop met devices wordt gecommuniceerd --- met
GNU/Linux. In het algemeen staat in de HOWTO's wat specifiekere informatie
over bepaalde hardware configuraties, en ze zullen beter bijgewerkt zijn dat
dit handboek.</para>

<para>Er zijn Debian packages voor de HOWTO's. doc-linux-text bevat
de diverse HOWTO's in tekstvorm; terwijl het doc-linux-html package
de HOWTO's in (surprise!) browsable HTML-formaat bevat.
Tevens valt op te merken dat Debian packages heeft met vertalingen van
de HOWTO's in diverse talen waar je misschien de voorkeur aangeeft
als Engels je moedertaal niet is. <footnote><para>Debian heeft
packages voor de Duitse, Franse, Spaanse, Italiaanse, Japanse, Koreaanse,
Poolse, Zweedse en Chinese versies van de HOWTO's; gewoonlijk beschikbaar in
het package doc-linux-taalcode, waarbij voor de taalcode
<Emphasis/fr/ wordt gebruikt voor Frans, <Emphasis/es/ voor Spaans, 
enz...</para></footnote> Als je dit hebt ge&iuml;nstalleerd, zouden ze in 
<Emphasis>/usr/doc/HOWTO</Emphasis> moeten staan. Mogelijk kun je echter op het
net recentere versies aantreffen, zie
<Ulink url="LDP Project home page">http://sunsite.unc.edu/LDP/</Ulink>.</para>
</sect1>

<sect1 id="docs-support"><title>Van iemand hulp verkrijgen</title>

<para>De juiste plaats voor het vragen om hulp met Debian is de
debian-user mailing list <email>debian-user@lists.debian.org</email>. Als
je IRC (Internet Relay Chat) weet te gebruiken, dan is er een
<Emphasis>#debian</Emphasis> kanaal op <Emphasis>irc.debian.org</Emphasis>.
Je kunt algemene GNU/Linux hulp aantreffen in de
<Emphasis>comp.os.linux.*</Emphasis> Usenet hi&euml;rarchie. Je kunt Usenet
vragen en antwoorden terugzoeken met de
<Ulink url="http://www.dejanews.com">DejaNews service</Ulink>. Het is ook
mogelijke betaalde adviseurs in te huren voor de levering van gegarandeerde
ondersteuningsdiensten.
<ULink url ="http://www.debian.org">De Debian web site</ULink> heeft
meer informatie over veel van deze bronnen.</para>

<para>Nogmaals, vraag de auteurs van deze tutorial alsjeblieft
<Emphasis>niet</Emphasis> om hulp. We weten waarschijnlijk toch het antwoord 
niet op je specifieke probleem; als je een mail stuurt naar 
<Emphasis>debian-user</Emphasis>, zal je sneller reacties krijgen en reacties
die van meer kwaliteit zijn.
</para>

<para>Blijf altijd beleefd en onderneeem zelf een poging door het lezen
van de documentatie. Denk er aan dat Debian een inspanning is van
vrijwilligers en mensen je een gunst bewijzen door hun tijd te geven
je te helpen. Velen van hen brengen voor dezelfde diensten per dag honderden
dollars in rekening.
</para>
</sect1>

<sect1 id="docs-support-posting"><title>Wel of niet stellen van een vraag
</title>

<para>
<itemizedlist>
<ListItem><para>Lees wel eerst de vanzelfsprekende documentatie. Zaken
zoals opdrachtopties en wat een opdracht doet zullen daar te vinden zijn.
</para></listitem>

<ListItem><para>Kijk in de HOWTO-documenten als je vraag gaat over het
instellen van zoiets als PPP of Ethernet.</para></listitem>

<ListItem><para>Probeer je ervan te verzekeren dat het antwoord niet in deze
tutorial staat (alhoewel we ons realiseren dat een index hierbij behulpzaam
zou kunnen zijn---we werken eraan!).</para></listitem>

<ListItem><para>Wees niet bang te vragen, nadat je een poging hebt
ondernomen het op te zoeken.
</para></listitem>

<ListItem><para>Wees niet bang te vragen naar uitleg om begrippen,
adviezen en andere zaken die vaak niet in de documentatie
zijn te vinden.</para></listitem>

<ListItem><para>Sluit informatie in welke relevant lijkt. Bijna altijd
zal je de Debian-versie die je gebruikt, willen vermelden.
Wellicht dat je ook de versie van alle van toepassing zijnde packages
wilt vermelden: de opdracht <Emphasis>dpkg --status
naam van package</Emphasis> geeft je deze informatie. Het is ook handig
wat te zeggen over wat je tot dusverre hebt geprobeerd en wat het
resultaat daarvan was. Neem alsjeblieft de exacte foutmeldingen er in
op, als die er zijn.
</para></listitem>

<ListItem><para>Verontschuldig je niet voor je onwetendheid, of maak geen
excuus voor dat je een newbie bent. Er is geen reden voor dat iedereen een
GNU/Linux expert zou moeten zijn om het te gebruiken, net zo min als dat
iedereen een monteur zou moeten zijn om een auto te gebruiken.
</para></listitem>

<ListItem><para>Post geen mail in HTML. Een aantal versies van
Netscape en de Internet Explorer zullen in HTML posten in plaats van
in gewone tekst. De meeste mensen zullen deze post zelfs niet
lezen, omdat ze in de meeste mail-programma's moeilijk te lezen is.
Er zou ergens een instelling voor moeten komen in de voorkeuren om
HTML te deactiveren.</para></listitem>

<ListItem><para>Wees beleefd. Denk er aan dat Debian een inspanning
is van allemaal vrijwilligers, en iedereen die je helpt doet dit alleen
maar omdat het een aardig persoon is.
</para></listitem>

<ListItem><para>Mail je vraag nogmaals naar de lijst als je na verscheidene
dagen nog geen reactie hebt ontvangen.
Misschien dat er heel veel berichten waren en dat er overheen werd gekeken.
Of misschien dat niemand het antwoord weet ---
als niemand het de tweede keer beantwoord, dan is die kans groot.
Mogelijk wil je bij de tweede keer wat meer informatie invoegen.
</para></listitem>

<ListItem><para>Beantwoord zelf vragen, als je het antwoord weet.
Debian is ervan afhankelijk dat iedereen zijn aandeel levert --- als
je een vraag stelt, en iemand anders stelt later dezelfde vraag, dan weet
je wat te antwoorden. Doe het dan ook!
</para></listitem>
</itemizedlist></para>
</sect1>

<!--
<sect1 id="docs-sysinfo"><title>Informatie van het systeem verkrijgen</title>

<para>Bij de diagnose van problemen of het vragen om hulp, zal je
informatie over je systeem nodig hebben. Hier zijn een aantal manieren
om hier aan te komen.
</para>

FIXME : detail this commands a bit more ;) 
<para> /var/log/*, dmesg, uname -a
</sect1>
-->

</chapter>

<chapter id="shell"> <title>Gebruiken van de shell</title>

<!-- FIXME XXX
<sect1 id="shell-jobs"><title>Meer over job control</title>

<para>Fill in job control details not covered earlier, kill -9.
Kill works on the PID.
-->

<sect1 id="shell-variables"><title>Omgevingsvariabelen</title>

<para>Ieder proces heeft een <Emphasis>omgeving</Emphasis> waarmee het
verbonden is. Een omgeving bestaat uit een verzameling
<Emphasis>omgevingsvariabelen</Emphasis>. Een variabele is een veranderlijke
waarde met een vaste naam. Als voorbeeld, zou de naam <Emphasis>EMAIL</Emphasis>
naar de waarde <Emphasis>joe@nowhere.com</Emphasis> kunnen verwijzen.
De waarde kan vari&euml;ren --- <Emphasis>EMAIL</Emphasis> zou ook kunnen
verwijzen naar <Emphasis>jane@somewhere.com</Emphasis>.</para>

<para>Aangezien je shell net als ieder ander proces een proces is, heeft het
een omgeving. Je kunt de omgeving van je shell bekijken door het intikken 
van de opdracht <Emphasis>printenv</Emphasis>. Bij deze wat voorbeelduitvoer:

<screen>
PAGER=less
HOSTNAME=icon
MAILCHECK=60
MOZILLA_HOME=/usr/local/lib/netscape
PS1=$ 
USER=hp
MACHTYPE=i486-pc-linux-gnu
EDITOR=jed
DISPLAY=:0.0
LOGNAME=hp
EMAIL=hp@pobox.com
SHELL=/bin/bash
HOSTTYPE=i486
OSTYPE=linux-gnu
HISTSIZE=150
HOME=/home/hp
TERM=xterm-debian
TEXEDIT=jed
PATH=/home/hp/local/bin:/usr/sbin:/home/hp/.bin:/home/hp/local/bin:/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:.
_=/usr/bin/printenv
</screen>
</para>

<para>Op je systeem zal de uitvoer anders zijn, maar wel vergelijkbaar.
</para>

<para>Met omgevingsvariabelen heb je een manier om het systeem te configureren.
De variabele <Emphasis>EDITOR</Emphasis> laat je bijvoorbeeld
je voorkeurseditor voor het posten van nieuws, schrijven van email, enzovoort
selecteren. De variabele <Emphasis>HISTSIZE</Emphasis> vertelt Bash
hoeveel opdrachtregels in de historie bij te houden; je kunt dan met de
pijltjestoets naar boven zoveel opdrachtregels terug.
</para>

<para>Het instellen van omgevingsvariabelen is simpel. Zodra je
hebt geleerd hoe, zal je ze waarschijnlijk automatisch in
willen stellen, als je inlogt; zie
<XRef LinkEnd="custom-shell"> voor instructies.</para>

<para>Probeer als oefening je shell-prompt en je viewer voor
je tekstbestand met omgevingsvariabelen in te stellen:

<glosslist>
<glossentry><glossterm>man less</glossterm>
<glossdef><para>Bekijk het online handboek
voor de opdracht <Emphasis>less</Emphasis>. Om je de tekst per scherm
tegelijkertijd te laten bekijken, roept <Emphasis>man</Emphasis> een 
<Emphasis>pager</Emphasis> aan die je iedere keer dat je op de spatiebalk
drukt, een nieuwe pagina met tekst toont. Standaard maakt het gebruik van een
pager genaamd <Emphasis>more</Emphasis>.</para>

<para>Ga je gang en werp een vluchtige blik op de man page van
<Emphasis>less</Emphasis>, een uitgebreide pager. Scroll naar een
nieuwe pagina door de spatiebalk in te drukken; druk op <Emphasis>q</Emphasis>
om te stoppen. <Emphasis>more</Emphasis> zal ook automatisch stoppen als
je het einde van de man page bereikt.</para></glossdef>
</glossentry>

<glossentry><glossterm>export PAGER=less</glossterm>
<glossdef><para>Na het lezen
over de voordelen van <Emphasis>less</Emphasis>, wil je het wellicht
gebruiken om man pages te lezen. Stel hiervoor de omgevingsvariabele
<Emphasis>PAGER</Emphasis> in.</para> 

<para>De opdracht om een omgevingsvariabele onder bash in te stellen, heeft
altijd dit formaat: <Emphasis>export NAME=value</Emphasis>.
Mocht je ooit <command>tcsh</command> of een andere afgeleide van de
C-Shell draaien, dan is de equivalente opdracht 
<command>setenv NAME value</command>.</para>

<para><Emphasis>export</Emphasis> betekent het verplaatsen van de variabele
van de shell naar de omgeving. Dit betekent dat ook andere programma's dan de
shell ze kunnen benaderen.</para></glossdef>
</glossentry>

<glossentry><glossterm>echo $PAGER</glossterm>
<glossdef><para>Dit is de makkelijkste manier om de waarde van een variabele
te bekijken. <Emphasis>$PAGER</Emphasis> vertelt de
shell de waarde van de variabele <Emphasis>PAGER</Emphasis>
in te voegen <Emphasis>voordat</Emphasis> de opdracht wordt aangeroepen.
<Emphasis>echo</Emphasis> kaatst zijn argument terug: in
dit geval, echoot het de huidige waarde van <Emphasis>PAGER</Emphasis>,
namelijk <Emphasis>less</Emphasis>.</para></glossdef>
</glossentry>

<glossentry><glossterm>man more</glossterm>
<glossdef><para>Lees de handleiding van <Emphasis>more</Emphasis>.
Deze keer zou <Emphasis>man</Emphasis> de pager
<Emphasis>less</Emphasis> moeten hebben aangeroepen.</para>

<para><Emphasis>less</Emphasis> heeft veel mogelijkheden die in
<Emphasis>more</Emphasis> ontbreken.
Je kunt bijvoorbeeld met de <Emphasis>b</Emphasis>-toets
terugscrollen. Je kunt je met de cursorpijlen ook naar beneden en boven
verplaatsen (zelfs zijwaarts). <Emphasis>less</Emphasis> eindigt niet
wanneer het 't einde van de man page bereikt; het wacht totdat je de
<Emphasis>q</Emphasis> intikt.</para></glossdef>
</glossentry>

<glossentry><glossterm>PAGER=more man more</glossterm>
<glossdef><para>Als je tijdelijk een andere instelling wilt, kun je een
nieuwe waarde plaatsen die alleen effect heeft voor de huidige opdrachtregel.
Plaats de <Emphasis>NAME=value</Emphasis> aan het begin van de opdrachtregel
gevolgd door de uit te voeren opdracht.
Laat <Emphasis>export</Emphasis> achterwege.</para>

<para>Je kunt wat <Emphasis>less</Emphasis>-specifieke opdrachten,
zoals <Emphasis>b</Emphasis> uitproberen, om te verifi&euml;ren dat ze
met <Emphasis>more</Emphasis> werken en je inderdaad gebruik maakt van
<Emphasis>more</Emphasis>.
<!-- FIXME
Onder mijn Debian 2.1, heeft /bin/more een functionerende 'b'. 
We zullen een andere specifieke mogelijkheid van 'less' moeten bedenken.
--></para></glossdef>
</glossentry>

<glossentry><glossterm>echo $PAGER</glossterm>
<glossdef><para>De waarde van 
<Emphasis>PAGER</Emphasis> zou nog steeds <Emphasis>less</Emphasis>
moeten zijn; de instelling van hierboven was slechts tijdelijk.
</para></glossdef>
</glossentry>

<glossentry><glossterm>unset PAGER</glossterm>
<glossdef><para>Als je geen pager meer
in wilt stellen, kun je de opdracht <Emphasis>unset</Emphasis> op de
variabele toepassen. <Emphasis>man</Emphasis> zal dan standaard gebruik maken
van <Emphasis>more</Emphasis>, net als dat 't deed voor je de variabele
instelde.
</para></glossdef>
</glossentry>

<glossentry><glossterm>echo $PAGER</glossterm>
<glossdef><para>Aangezien <Emphasis>PAGER</Emphasis> is verwijderd, zal
<Emphasis>echo</Emphasis> niets afdrukken.
</para></glossdef>
</glossentry>

<glossentry><glossterm>PS1=hello:</glossterm>
<glossdef><para>Wijzig gewoon voor de lol je shell-prompt.
<Emphasis>$</Emphasis> wordt <Emphasis>hello:</Emphasis>.</para> 

<para><Emphasis>export</Emphasis> is niet nodig, omdat we de werking
van de shell zelf wijzigen. Er is geen reden de variabele naar de
omgeving te exporteren zodat andere programma's het kunnen zien.
Technisch gesproken is <Emphasis>PS1</Emphasis> een
<Emphasis>shell variabele</Emphasis> in plaats van een omgevingsvariabele.
</para>

<para>Als je dat zou willen, zou je de shell-variabele kunnen
<Emphasis>exporteren</Emphasis> waarbij je het naar een omgevingsvariabele
transformeert. Vervolgens zouden andere programma's het dan kunnen zien:
Met name de <Emphasis>kinderen</Emphasis> van het huidige
shell-proces. De volgende sectie legt dit uit.</para></glossdef>
</glossentry>
</glosslist></para>
</sect1>

<sect1 id="shell-variables-parents"><title>Ouder- en kindprocessen
</title>

<para>Alle processen zijn afkomstig van een eerder proces, wat hun
<Emphasis>ouder proces</Emphasis> wordt genoemd. 

<footnote><para>Misschien dat je hier een kip en ei probleem ziet.
Er is een origineel proces dat alle anderen start; het is procesnummer 1,
<Emphasis>init</Emphasis>. Je kunt het zien door het intikken van
<Emphasis>ps u 1</Emphasis>.</para>  
</footnote>

De opdracht <command>ps</command> is een handig hulpmiddel voor het
verkennen van processen, en het kan worden gebruikt om de verhoudingen
tussen ouder-kind te bestuderen.

<ItemizedList>
<ListItem><para><Emphasis>ps f</Emphasis>
Deze opdracht vraagt een lijst te tonen van
processen die aan jou toebehoren, in een formaat waarmee wordt getoond
hoe processen met elkaar in verband staan.</para></listitem>
</ItemizedList></para>

<para><Emphasis>ps f</Emphasis> zou de volgende uitvoer kunnen tonen:

<screen>
$ ps f
PID  TT STAT   TIME
7270  p5 S      0:00 bash
15980  p5 R      0:00  \_ ps f
19682  p4 S      0:00 bash
15973  p4 S      0:00  \_ man ps
15976  p4 S      0:00      \_ sh -c /bin/gzip -dc '/var/catman/cat1/ps.1.gz' | { export MAN_PN LESS; MAN_PN='ps(1)'; LESS="$LESS\$-Pm\:\$i
15977  p4 S      0:00          \_ /bin/gzip -dc /var/catman/cat1/ps.1.gz
15978  p4 S      0:00          \_ sh -c /bin/gzip -dc '/var/catman/cat1/ps.1.gz' | { export MAN_PN LESS; MAN_PN='ps(1)'; LESS="$LESS\$-Pm\
15979  p4 S      0:00              \_ less
$ 
</screen></para>

<para>Hier kun je zien dat ik een aantal processen, waaronder
twee shells, heb draaien. De shells hebben kindprocessen: shellproces 
7270 heeft kindproces 15980 (<Emphasis>ps f</Emphasis>) en shell 19682
heeft kindproces 15973 (<Emphasis>man ps</Emphasis>). 
<Emphasis>man ps</Emphasis> heeft op zijn beurt een complexe
set subprocessen aangeroepen om een manpage te kunnen tonen.
Maak je er nu niet druk om wat deze subprocessen doen.
</para>

<para>Ouders en kinderen hebben een complexe verhouding. 
Meestal is het zo dat als een ouder afsterft, het kind ook af zal sterven.
Zo kun je een hele set processen killen --
--- je kunt bijvoorbeeld door het killen van het ouderproces, 15973 in 
het voorbeeld hiervoor, alle kinderen van <Emphasis>man ps</Emphasis> killen.
</para>

<para>Kinderen erven de omgevingsvariabelen, en een
aantal kenmerken zoals de huidige werkdirectory van hun ouders.</para>

<para>Als een shell een opdracht uitvoert, brengt het de opdracht voort als
een kindproces. Dus de opdracht <Emphasis>man</Emphasis> erft de omgeving
van de shell; als je de variabele <Emphasis>PAGER</Emphasis> hebt ingesteld, zal
<Emphasis>man</Emphasis> het kunnen zien.</para> 

<para>Als het je niet is gelukt een variabele te 
<Emphasis>exporteren</Emphasis> zal alleen de shell zelf het zien, en zal het
niet aan de kinderen, zoals <Emphasis>man</Emphasis> worden doorgegeven.</para>
</sect1>

<sect1 id="shell-path"><title>Waar opdrachten te vinden zijn:
de variabele <Emphasis>PATH</Emphasis></title>

<para>Als je een opdracht in de shell intikt, zal het deze opdracht
op je harddisk op moeten zoeken voordat het dit uit kan voeren.
Als de shell de hele disk door had moeten zoeken, zou het erg langzaam zijn;
Het zoekt in plaats daarvan in een lijst met bestanden die in de
omgevingsvariabele <Emphasis>PATH</Emphasis> staan. Deze lijst met
directory's leggen het <Emphasis>zoekpad</Emphasis> van de shell aan; als
je een opdracht invoert, doorzoekt het iedere directory naar het door
jou verzochte programma dat moet worden uitgevoerd.
</para>

<para>Wellicht dat je de variabele <Emphasis>PATH</Emphasis> moet wijzigen als
je zelf programma's in een niet-standaard lokatie installeert.</para>

<para>De waarde van <Emphasis>PATH</Emphasis> is een door dubbele punten
gescheiden lijst met directory's. De standaardwaarde ervan op Debian-systemen is:

<screen>
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games  
</screen></para>

<para>Deze waarde is gedefinieerd in het bestand 
<Emphasis>/etc/profile</Emphasis> en geldt voor alle gebruikers. Je kunt deze
waarde eenvoudig wijzigen, net als je iedere andere omgevingsvariabele wijzigt.
</para>

<para>Als je de opdracht <Emphasis>ls</Emphasis> typt, zal de shell eerst
in <Emphasis>/usr/local/bin</Emphasis> zoeken; <Emphasis>ls</Emphasis> is
daar niet, dus zal het <Emphasis>/usr/bin</Emphasis> proberen; als dat
mislukt, zal het <Emphasis>/bin</Emphasis> controleren. Daar zal het
<Emphasis>/bin/ls</Emphasis> ontdekken, het zoeken stoppen en het programma
<Emphasis>/bin/ls</Emphasis> uitvoeren. Als 
<Emphasis>/usr/bin/X11/ls</Emphasis> bestond (het is niet zo, maar doe even
alsof), zou het worden genegeerd.</para>

<para>Je kunt met de opdracht <Emphasis>type</Emphasis> zien welke
<Emphasis>ls</Emphasis> de shell zal gaan gebruiken. 
<Emphasis>type ls</Emphasis> zal als antwoord 
<Emphasis>/bin/ls</Emphasis> opleveren --- probeer het zelf.</para>

<para>Probeer te vragen waar <Emphasis>type</Emphasis> zelf voorkomt:

<screen>
$ type type
type is a shell builtin
</screen>
</para>

<para><Emphasis>type</Emphasis> is eigenlijk geen programma; het is een
functie waarin door de shell is voorzien. Je gebruikt het echter net als een
extern programma. <footnote><para>Als je een afgeleide van de C-Shell draait,
is het equivalente ingebouwde opdracht voor <Emphasis>type</Emphasis>
<Emphasis>which</Emphasis>.</para>
</footnote></para>

<para>Er zijn zo een aantal opdrachten; typ <Emphasis>man
builtins</Emphasis> om de beschrijving in de manpage ervan te lezen. In
het algemeen, hoef je niet te weten of een opdracht een ingebouwde opdracht
of een echt programma is; ingebouwde opdrachten zullen echter niet in de
uitvoer van <Emphasis>ps</Emphasis> of <Emphasis>top</Emphasis> verschijnen,
aangezien het geen aparte processen zijn. Ze maken slechts onderdeel uit van
de shell.</para>
</sect1>

<sect1 id="custom-shell-aliases"><title>Aliassen en shell-functies</title>

<para>Als je vaak eenzelfde opdracht gebruikt, wordt je er wellicht moe van het
in te tikken. <Emphasis>bash</Emphasis> laat je kortere
<Emphasis>aliassen</Emphasis> voor je opdrachten schrijven. Je kunt ook
<Emphasis>shell-functies</Emphasis> schrijven, wat aangepaste opdrachten
samengesteld uit verscheidene andere opdrachten zijn.
</para>

<para>Stel dat je altijd de <Emphasis>--almost-all</Emphasis> en
<Emphasis>--color=auto</Emphasis> opties met <Emphasis>ls</Emphasis> gebruikt.
Je raakt al gauw moe van het typen van <Emphasis>ls --almost-all
--color=auto</Emphasis>. Dus maak je een alias:

<screen>
alias myls='ls --almost-all --color=auto'   
</screen>

</para>
<para>Nu kun je <Emphasis>myls</Emphasis> typen in plaats van de volledige
opdracht. Om te zien wat <Emphasis>myls</Emphasis> werkelijk is, start je
de opdracht <Emphasis>type myls</Emphasis> op. Je kunt met
<Emphasis>alias</Emphasis> een lijst met de gedefinieerde aliassen per regel
te zien krijgen.</para>

<para>Shell-functies zijn iets flexibeler dan aliassen. Een alias substitueert
gewoon een langere opdracht als je een kortere opdracht intikt. Functies
laten je gebruik maken van een serie opdrachten om een actie uit te
voeren.</para>

<para>Laten we allereerst eens bekijken hoe hier een shell-functie
in plaats van een alias voor kan worden gebruikt:

<screen>
myls() {
ls --almost-all --color=auto $*
}
</screen>
</para>

<para>Dit wordt een <Emphasis>functiedefinitie</Emphasis> genoemd, omdat
het de functie een naam (<Emphasis>myls</Emphasis>) geeft, en vervolgens
de betekenis van de naam definieert (een aantal uit te voeren opdrachten).
Om een functie te defini&euml;ren, schrijf je zijn naam, gevolgd door
<Emphasis>()</Emphasis>. Sluit dan de uit te voeren opdrachten in binnen de
accolades (<Emphasis>{}</Emphasis>). Het deel omsloten door de accolades
staat bekend als de <Emphasis>body</Emphasis> van de functie.</para>

<para>Naar de argumenten van de functie kan worden gerefereerd als
<Emphasis>$*</Emphasis>. Dus als je typt:

<screen>
myls /usr  /etc
</screen>

zal <Emphasis>$*</Emphasis> bestaan uit de twee argumenten 
<Emphasis>/usr  /etc</Emphasis>.
Als er geen argumenten zijn, dan zal <Emphasis>$*</Emphasis> 
leeg zijn.</para>

<para>Je kunt ook met behulp van nummers naar de argumenten refereren.
Dus <Emphasis>$1</Emphasis> zou in de body van de functie worden vervangen
door <Emphasis>/usr</Emphasis>, en <Emphasis>$2</Emphasis> zou worden
vervangen door <Emphasis>/etc</Emphasis>. Typ deze functie (je kunt het
achter de shell-prompt intypen; druk na iedere regel op de return):

<screen>
print_arguments() {
echo "Eerste argument:   $1"
echo "Tweede argument:   $2"
echo "Alle argumenten:   $*"
}
</screen>
</para>

<para>Je kunt met de opdracht <Emphasis>type</Emphasis> verifi&euml;ren
dat je de functiedefinitie correct hebt ingevoerd;
<Emphasis>type print_arguments</Emphasis> zal retourneren:

<screen>
print_arguments is a function
print_arguments () 
{ 
echo "Eerste argument:   $1";
echo "Tweede argument:   $2";
echo "Alle argumenten:   $*"
}
</screen>
</para>

<para>Probeer de functie uit. Als je <Emphasis>print_arguments een
twee</Emphasis> opgeeft, zal het weergeven:

<screen>
Eerste argument:   een
Tweede argument:   twee
Alle argumenten:   een twee
</screen>
</para>

<para>Er zijn heel wat complexere dingen die je met een shell-functie
kunt doen; je bent slechts beperkt tot je verbeelding. 
<!--Zie <XRef LinkEnd="advanced-scripting"> voor meer.--> </para>
</sect1>

<sect1 id="shell-io"><title>Invoer en uitvoer besturen</title>
<para>Stdin, stdout, pipelines, en redirectie</para>

<para>Ieder proces heeft op z'n minst drie verbindingen met de
buitenwereld. De <Emphasis>standaard input</Emphasis> is &eacute;&eacute;n
bron van de data van het proces; de
<Emphasis>standaard output</Emphasis> is een plaats waarnaar het proces
gegevens stuurt; en de <Emphasis>standaard error</Emphasis> is een
plaats waarnaar het proces zijn foutmeldingen kan sturen. (Deze worden 
vaak afgekort tot <Emphasis>stdin</Emphasis>, <Emphasis>stdout</Emphasis>, 
en <Emphasis>stderr</Emphasis>.)</para>

<para>De woorden `bron' en `plaats' zijn doelbewust vaag.
Deze standaard input en -output locaties kunnen door de gebruiker
worden gewijzigd; dit kan het scherm zijn, het toetsenbord, een bestand,
en zelfs een netwerkverbinding.
De gebruiker kan aangeven welke locaties moeten worden gebruikt.
</para>

<para>Als je een programma vanuit de shell draait, komt de standaard
input gewoonlijk vanaf je toetsenbord en standaard output en error gaan
beiden naar je scherm. Je kunt de shell echter vragen deze standaardwaarden
te wijzigen.
</para>

<para>Als voorbeeld zendt de opdracht <Emphasis>echo</Emphasis> zijn uitvoer
naar standaard output, normaal gesproken is dit het scherm. Maar je kunt
het in plaats daarvan met het <Emphasis>output redirectie teken</Emphasis>,
'<Emphasis>&gt;</Emphasis>' naar een bestand sturen.
Om bijvoorbeeld het woord "Hello" in het bestand 
<Emphasis>mijn-bestand</Emphasis> te plaatsen:

<screen>
echo Hello &gt; mijn-bestand
</screen>
</para>

<para>Gebruik <Emphasis>cat</Emphasis> of je tekstbestandpager 
(<Emphasis/more/ of <Emphasis/less/) om de inhoud van
<Emphasis>mijn-bestand</Emphasis> te bekijken.</para>

<para>Je kunt de standaard input van een opdracht wijzigen met het
<Emphasis>input redirectie teken</Emphasis>, '<Emphasis>&lt;</Emphasis>'.
<Emphasis>more &lt; mijn-bestand</Emphasis> bijvoorbeeld, zal de inhoud van
<Emphasis>mijn-bestand</Emphasis> tonen. In de praktijk is dit niet nuttig;
voor het gemak accepteert de opdracht <Emphasis>more</Emphasis> een
bestandsnaam als argument.
Dus je kunt heel eenvoudig aangeven <Emphasis>more mijn-bestand</Emphasis> en 
het effect zal hetzelfde zijn.</para> 

<para>Onder de motorkap betekent <Emphasis>more &lt; mijn-bestand</Emphasis>
dat de shell <Emphasis>mijn-bestand</Emphasis> opent, en het vervolgens
de inhoud doorgeeft aan de standaard input van
<Emphasis>more</Emphasis>. <Emphasis>more mijn-bestand</Emphasis>,
zonder het redirectie-teken, betekent dat de opdracht
<Emphasis>more</Emphasis> een argument ontvangt,
<Emphasis>mijn-bestand</Emphasis>, zelf het bestand opent en het vervolgens
het bestand weergeeft.
</para>

<para>Er is echter een reden voor de dubbele functionaliteit.
Je kunt bijvoorbeeld de standaarduitvoer van de ene opdracht verbinden
met de standaardinvoer van de andere opdracht.
Dit wordt een <Emphasis>pipeline</Emphasis> genoemd, en het maakt gebruik van
het <Emphasis>pipe symbool</Emphasis>, '<Emphasis>|</Emphasis>'.</para>

<para>Misschien dat je de GNU General License in spiegelbeeld wilt zien..
Hiervoor gebruik je de opdracht <Emphasis>tac</Emphasis>
(het is <Emphasis>cat</Emphasis>, maar dan omgekeerd). Probeer het uit:
<screen>
tac /usr/doc/copyright/GPL
</screen>
</para>

<para>Helaas gaat het te snel voorbij om het te kunnen lezen. Dus krijg je
slechts een paar paragrafen te zien. De oplossing is een pipeline:

<screen>
tac /usr/doc/copyright/GPL | more
</screen>
</para>

<para>Hierbij wordt de standaard output van <Emphasis>tac</Emphasis> genomen,
wat de GPL in spiegelbeeld is, en wordt het naar de standaard input van
<Emphasis>more</Emphasis> gezonden.</para>

<para>Je kunt zoveel opdrachten als je wilt aanelkaar koppelen.
Stel dat je een onverklaarbare wens hebt iedere
<Emphasis>G</Emphasis> te vervangen door een
<Emphasis>Q</Emphasis>; hiervoor gebruik je als volgt de opdracht
<Emphasis>tr G Q</Emphasis>:

<screen>
tac /usr/doc/copyright/GPL | tr G Q | more
</screen>
</para>

<para>Je zou hetzelfde effect kunnen verkrijgen als je gebruik maakt van
tijdelijke bestanden en redirectie.
Als voorbeeld:

<screen>
tac /usr/doc/copyright/GPL > tmpfile
tr G Q < tmpfile > tmpfile2
more < tmpfile2
rm tmpfile tmpfile2
</screen>
</para>

<para>Een pipeline is overduidelijk comfortabeler.</para>
</sect1>

<!--sect1 id="shell-modifiers"><title>Specifying how and when to run
commands <para>"modifiers" like batch, at, nohup, nice</title>-->

<sect1 id="shell-wildcards"><title>Bestandsnaam uitbreiding ("Wildcards")</title>

<para>Vaak wil je dat een opdracht op een groep bestanden werkt.
"Wildcards" worden gebruikt om een <Emphasis>bestandsnaam-uitbreidingspatroon
</Emphasis> aan te maken: een serie tekens en wildcards wat tot een lijst
met bestandsnamen wordt uitgewerkt.
Het patroon <Emphasis>/etc/*</Emphasis> wordt bijvoorbeeld uitgebreid tot
een lijst met alle bestanden in <Emphasis>/etc</Emphasis>
<footnote><para>In werkelijkheid worden bestanden beginnend met een 
<Emphasis>.</Emphasis> niet in de uitwerking van
<Emphasis>*</Emphasis> opgenomen.</para></footnote><Emphasis>*</Emphasis>
is een wildcard die voor iedere serie tekens kan staan, dus het patroon
<Emphasis>/etc/*</Emphasis> zal worden uitgewerkt tot een lijst met alle
bestandsnamen die met <Emphasis>/etc/</Emphasis> beginnen.</para>

<para>Deze lijst met bestanden is vooral handig als een set argumenten
voor een opdracht. Als voorbeeld, de <Emphasis>/etc</Emphasis> directory
bevat een serie subdirectory's genaamd <Emphasis>rc0.d</Emphasis>,
<Emphasis>rc1.d</Emphasis>, enz. Om hiervan de inhoud te bekijken, zou je
normaal gesproken typen:

<screen>
ls /etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d /etc/rcS.d
</screen>
</para>

<para>Dit is langdradig. In plaats daarvan kun je de
<Emphasis>?</Emphasis> wildcard gebruiken:

<screen>
ls /etc/rc?.d
</screen>
</para>

<para><Emphasis>/etc/rc?.d</Emphasis> wordt uitgewerkt tot een lijst
met bestandsnamen die beginnen met <Emphasis>rc</Emphasis>, gevolgd door elk
enkel teken, gevolgd door <Emphasis>.d</Emphasis>.</para>

<para>Beschikbare wildcards zijn:

<glosslist>
<glossentry><glossterm>*</glossterm>
<glossdef><para>Komt overeen met iedere groep bestaande uit 0 of meer tekens.
</para></glossdef>
</glossentry>

<glossentry><glossterm>?</glossterm>
<glossdef><para>Komt overeen met exact &eacute;&eacute;n teken.
</para></glossdef>
</glossentry>

<glossentry><glossterm>[...]</glossterm>
<glossdef><para>Als je een aantal tekens in blokhaken omsluit, is het
resultaat een wildcard welke overeenkomt met die tekens.
<Emphasis>[abc]</Emphasis> komt bijvoorbeeld overeen met zowel a, als b, 
als c. Als je na de eerste blokhaak een <Emphasis>^</Emphasis> toevoegt,
wordt de betekenis omgedraaid; dus <Emphasis>[^abc]</Emphasis>
komt overeen met elk teken dat geen a, b, of c is. Je kunt een bereik
opnemen, zoals <Emphasis>[a-j]</Emphasis>, welke overeenkomt met alles tussen
een a en een j. De overeenkomst is hoofdlettergevoelig, dus je moet
<Emphasis>[a-zA-Z]</Emphasis> opgeven om alle tekens toe te staan.</para></glossdef>
</glossentry>

</glosslist></para>

<para>Uitbreidingspatronen zijn simpel, zodra je wat concrete voorbeelden
hebt gezien:

<glosslist>

<glossentry><glossterm>*.txt</glossterm>
<glossdef><para>Hiermee krijg je een lijst met bestandsnamen die eindigen
op <Emphasis>.txt</Emphasis>, aangezien de 
<Emphasis>*</Emphasis> met werkelijk alles overeenkomt.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>*.[hc]</glossterm>
<glossdef><para>Dit geeft je een lijst met bestandsnamen die eindigen
op <Emphasis>.h</Emphasis> of <Emphasis>.c</Emphasis>.
</para></glossdef></glossentry>

<glossentry>
<glossterm>a??</glossterm>
<glossdef><para>Dit geeft je alle bestandsnamen bestaande uit drie
letters die met een <Emphasis>a</Emphasis> beginnen.</para></glossdef>
</glossentry>

<glossentry>
<glossterm>[^a]??</glossterm>
<glossdef><para>Dit geeft je alle bestandsnamen bestaande uit drie letters
die <Emphasis>niet</Emphasis> beginnen met een <Emphasis>a</Emphasis>.
</para></glossdef>
</glossentry>

<glossentry>
<glossterm>a*</glossterm>
<glossdef><para>Dit geeft je iedere bestandsnaam die begint met een
<Emphasis>a</Emphasis>, ongeacht uit hoeveel tekens de bestandsnaam bestaat.
</para></glossdef>
</glossentry>

</glosslist></para>

<!-- FIXME XXX
<sect1 id="shell-quoting"><title>Quoting</title>
<para> When to quote and why 
-->
</sect1>

<sect1><title>Interactief/niet-interactief <!-- FIXME move this --></title>

<Para>Bash heeft twee verschillende modi: <Emphasis>interactief</Emphasis> en
<Emphasis>niet-interactief</Emphasis>. Interactief betekent dat je er in
kunt typen, en het dingen voor je kunt laten doen. Niet-interactieve shells
interpreteren shell-scripts, vergelijkbaar met DOS batch-bestanden.
Je geeft een lijst uit te voeren opdrachten en het voert ze uit, maar dan
zonder je tussenkomst. Je ziet alle ingetypte opdrachten niet. Natuurlijk zal
alle uitvoer ergens worden geregistreerd (de standaarduitvoer, of stdout,
normaal gesproken het scherm of een logbestand). We zullen later wat meer
ingaan op de niet-interactieve shell.
</para>
</sect1>

<sect1 id="interactive-shells"><title>Interactieve shells</title>

<Para>Het zal wat langer duren eer men interactieve shells machtig is, juist
omdat ze zo krachtig zijn -- je zal waarschijnlijk nooit alles leren!
Er is gewoon zoveel dat een shell kan doen, en natuurlijk is het altijd aan
verandering onderhevig. We zullen het hier over <Emphasis>bash</Emphasis>
hebben en over wat basisopdrachten welke je leven met een shell er eenvoudiger
op zullen maken. Onder bash kan men verscheidene verschillende dingen
aan de gang hebben, en dit kan verwarring opleveren.
</para>

<Para>Een shell is een Regel Geori&euml;nteerde- of opdrachregel omgeving.
De shell wacht altijd op je met een prompt wanneer het wacht op wanneer
je iets doet. De standaard debian-prompt is een $.
Achter de $-prompt kun je opdrachten intikkken om linux te vertellen dat
het iets moet doen, het kan de naam van een programma zijn, of het kan
een "interne" opdracht zijn waarin de shell voor je gemak voorziet.
</para>

<!-- FIXME 
<sect1 id="non-interactive-shells"><title>Non-interactive shells</title>
-->
</sect1>
</chapter>

<chapter id="files"><title>Meer over bestanden</title>

<para>In de <XRef LinkEnd="basics-files"> behandelden we het verplaatsen/
hernoemen van bestanden met <Emphasis>mv</Emphasis>, het kopi&euml;ren met
<Emphasis>cp</Emphasis>, verwijderen met <Emphasis>rm</Emphasis>, het 
verwijderen van directory's met <Emphasis>rmdir</Emphasis>,
en het aanmaken van directory's met <Emphasis>mkdir</Emphasis>. In dit hoofdstuk
zullen wat meer aspecten over bestanden worden behandeld.
</para>

<sect1 id="files-permissions"><title>Permissies</title>

<para>GNU en Unix systemen zijn zo ingesteld dat ze het toestaan dat
meerdere mensen van dezelfde computer gebruik maken, waarbij bepaalde 
bestanden priv&eacute; behouden blijven of bepaalde mensen worden behoed
voor het aanpassen van bepaalde bestanden. Je kunt dit voor jezelf
verifi&euml;ren:
</para>

<para>Log in als jezelf, d.w.z. <Emphasis>NIET</Emphasis> als root. 

<GlossList>
<glossentry><glossterm>whoami</glossterm>
<glossdef><para>Verifieert dat je geen root bent.</para></glossdef>
</glossentry>

<glossentry><glossterm>rm /etc/resolv.conf</glossterm>
<glossdef><para>Je zou de melding "Permission denied" moeten krijgen.
<Emphasis>/etc/resolv.conf</Emphasis> is een
essentieel systeemconfiguratiebestand --- je hebt geen toestemming het
te wijzigen of te verwijderen, tenzij je root bent.
Hiermee wordt voorkomen dat je het systeem per ongeluk verprutst,
en als het een publiek toegankelijke computer is, zoals &eacute;&eacute;n op
kantoor of school, voorkomt het dat gebruikers het systeem expres verprutsen.
</para></glossdef></glossentry>

</GlossList></para>

<para>Typ nu <Emphasis>ls -l /etc/resolv.conf</Emphasis>.
Hiermee krijg je uitvoer die er ongeveer zo uitziet:

<screen>
-rw-r--r-- 1 root root 119 Feb 23 1997 /etc/resolv.conf
</screen>
</para>

<para>De <Emphasis>-l</Emphasis> optie aan <Emphasis>ls</Emphasis> verzoekt
om al die aanvullende informatie.
De info aan de rechterkant is makkelijk - de grootte van het bestand is
<Emphasis/119/ bytes, de datum van de laatste keer dat het bestand werd
gewijzigd is <Emphasis/Feb 23 1997/, de naam van het bestand is
<Emphasis>/etc/resolv.conf</Emphasis>. Aan de linkerkant van het scherm
wordt het wat gecompliceerder.
</para>

<para>Als eerste een korte technische uitleg: de
<Emphasis>-rw-r--r--</Emphasis> is de <Emphasis>mode</Emphasis> van het bestand,
de <Emphasis>1</Emphasis> is het aantal hardlinks naar dit bestand (of het
aantal bestanden in een directory), en de twee keer <Emphasis>root</Emphasis>
zijn de gebruiker en de groep welke eigenaar zijn van het bestand.</para>

<para>Zo dat was cryptisch. Laten we dit eens langzaam doornemen (behalve
het deel over de hardlinks --- zie daarvoor de <Xref LinkEnd="advanced-files-hardlinks">).</para>
</sect1>

<sect1 id="files-permissions-groups"><title>Bestandseigenaarschap</title>

<para>Ieder bestand heeft twee eigenaren --- een gebruiker en een groep. Het
voorbeeld hiervoor is wat verwarrend, aangezien er zowel een groep met de naam
<Emphasis>root</Emphasis> als ook een gebruiker <Emphasis>root</Emphasis> is.
Groepen zijn gewoon verzamelingen gebruikers aan wie collectief permissie is
verleend om een gedeelte van het systeem te benaderen.
Een goed voorbeeld is een groep <Emphasis>spellen</Emphasis>. 
Je zou bijvoorbeeld je systeem zo kunnen hebben ingesteld dat alleen
de mensen in een groep <Emphasis>games</Emphasis> permissie hebben om
spellen te kunnen spelen.
</para>

<para>Een wat praktischer voorbeeld: stel dat je een computer voor een
school aan het instellen bent. Wellicht wil je dat bepaalde bestanden 
alleen voor leraren toegankelijk zijn, niet voor studenten, dus
plaats je alle leraren in een enkele groep. Dan kun je het systeem
vertellen dat bepaalde bestanden aan de leden van de groep 
<Emphasis>leraren</Emphasis> toebehoren, en dat niemand anders die bestanden
kan benaderen.</para>

<para>Hiermee kun je groepen op je systeem verkennen:

<GlossList>

<glossentry>
<glossterm>groups</glossterm>
<glossdef><para>Als je dit achter de shell-prompt
intikt, zal worden aangegeven van welke groepen je lid bent.
Het is zeer waarschijnlijk dat je slechts lid bent van &eacute;&eacute;n
groep, welke identiek is aan je gebruikersnaam.</para></glossdef>
</glossentry>

<glossentry><glossterm>more /etc/group</glossterm>
<glossdef><para>Dit bestand geeft
een opsomming van de groepen die op je systeem voorkomen. Merk de
groep <Emphasis>root</Emphasis> op (de enige deelnemer van deze groep is de
root-gebruiker), en de groep die correspondeert met je gebruikersnaam.
Er zijn ook groepen als <Emphasis>dialout</Emphasis>
(gebruikers die permissie hebben om via de modem
te bellen), en <Emphasis>floppy</Emphasis> (gebruikers die het
diskettestation mogen gebruiken). Je systeem is waarschijnlijk niet
zodanig geconfigureerd dat het gebruik maakt van deze groepen --- vermoedelijk
kan alleen root op dit moment gebruik maken van het diskettestation en de modem.
Probeer <Emphasis>man group</Emphasis> te lezen voor details over dit bestand.
</para></glossdef></glossentry>

<glossentry><glossterm>ls -l /home</glossterm>
<glossdef><para>Observeer hoe iedere directory van de gebruiker 
in eigendom is van die gebruiker en de persoonlijke groep van die gebruiker.
(Als je Debian net hebt ge&iuml;nstalleerd,
kan het zijn dat je de enige gebruiker bent).</para></glossdef>
</glossentry>

</GlossList></para>

</sect1>

<sect1 id="files-permissions-mode"><title>Mode</title>

<para>Naast dat ieder bestand en iedere directory als eigenaar een gebruiker
en groep heeft, hebben beiden ook een mode, waarmee wordt vastgesteld wie
toestemming heeft om het bestand te lezen, beschrijven en uit te voeren.
Er zijn nog wat andere dingen die door de mode worden vastgesteld, maar
dat zijn geavanceerde onderwerpen en die zullen we voor nu overslaan.
</para>

<para>De mode ziet er in de uitvoer van <Emphasis>ls</Emphasis> als volgt uit:
<Emphasis>-rw-r--r--</Emphasis>. Er zijn hier tien "elementen", en de mode
bestaat eigenlijk uit twaalf bits (denk aan bits als schakelingen die
aan of uit kunnen zijn). Maar nu zullen we slechts negen van deze bits in
aanmerking nemen: degenen die de permissies
<Emphasis>read</Emphasis>, <Emphasis>write</Emphasis>, en 
<Emphasis>execute</Emphasis> regelen voor de 
<Emphasis>gebruiker</Emphasis> die eigenaar is van het bestand, de
<Emphasis>groep</Emphasis> die eigenaar is van het bestand, en 
<Emphasis>anderen</Emphasis>
(iedereen op het systeem, soms genoemd <Emphasis>world</Emphasis>).</para>

<para>Merk op dat drie soorten permissies (read, write,
execute) maal drie sets mensen die permissies kunnen hebben
(gebruiker, groep, anderen) een totaal geeft van negen elementen.</para>

<para>In de mode regel, geeft het eerste "element" het type van het bestand.
De <Emphasis>-</Emphasis> betekent in dit geval dat het een regulier
bestand is. Als het een <Emphasis>d</Emphasis> was, zouden we naar een directory
aan het kijken zijn. Er zijn nog andere mogelijkheden maar die zijn te
gecompliceerd om hier nu op in te gaan
(zie de <XRef LinkEnd="advanced-files-permissions">).</para>

<para>De resterende negen "elementen" worden gebruikt om de 12 bits
waaruit de mode van het bestand bestaat, weer te geven.
De basis 9 bits (read, write, en execute voor gebruiker, groep, en anderen)
worden weergegeven als drie blokken met <Emphasis>rwx</Emphasis>. </para>

<para>Dus als alle permissies aan staan en dit een regulier bestand is, zal
de mode er als volgt uitzien: <Emphasis>-rwxrwxrwx</Emphasis>. Als het
een directory zou zijn met alle permissies uit voor anderen en volledige
permissies voor gebruiker en groep, zou het er uitzien als 
<Emphasis>drwxrwx---</Emphasis>.</para>

<para>(De resterende drie bits worden weergegeven door het wijzigen van de
<Emphasis>x</Emphasis> in <Emphasis>s</Emphasis>, <Emphasis>t</Emphasis>,
<Emphasis>S</Emphasis>, of <Emphasis>T</Emphasis>, maar dit is een
gecompliceerd onderwerp dat we bewaren voor de
<XRef LinkEnd="advanced-files-permissions">.)</para>

<para>Voor reguliere bestanden, hebben de "read", "write" en "execute"
permissies de volgende betekenissen:

<itemizedlist>
<ListItem><para>Read permissie, aangegeven door <Emphasis>r</Emphasis>,
geeft permissie de inhoud van een bestand te bestuderen. Voor directory's
geeft het permissie de inhoud van een directory weer te geven.</para>
</listitem>

<ListItem><para>Write permissie, aangegeven door <Emphasis>w</Emphasis>, geeft
permissie wijzigingen aan het bestand aan te brengen. Voor directory's,
geeft het permissie om bestanden in de directory aan te maken en ze te
verwijderen.
</para></listitem>

<ListItem><para>Execute permission, aangegeven door <Emphasis>x</Emphasis>,
geeft permissie het bestand als een opdracht uit te voeren. Het heeft
overduidelijk alleen zin de execute permissie in te stellen als het bestand
in feite een opdracht is.
</para>

<para>Aangezien directory's nooit kunnen worden uitgevoerd, heeft de
execute bit een andere betekenis. Voor directory's betekent de execute
permissie dat bestanden in de directory kunnen worden benaderd.
Merk op dat hier sprake is van een wisselwerking met write-permissies:
execute permissies moeten worden ingesteld om bestanden in een directory
<Emphasis>ook maar enigszins</Emphasis> te kunnen benaderen, dus zonder execute
permissie op een directory, is write-permissie zinloos.
Execute permissie voor directory's wordt vaak "zoek" permissie genoemd,
aangezien het eigenlijk niets te maken heeft met het uitvoeren.
"Bestandstoegangs" permissie zou waarschijnlijk nog een betere naam
zijn.
</para><