Linux Cursus Door Koen Wybo

163
Curs us L inux ve rs ie 0.1

Transcript of Linux Cursus Door Koen Wybo

Page 1: Linux Cursus Door Koen Wybo

Curs us Linuxve rs ie 0.1

Page 2: Linux Cursus Door Koen Wybo

2

This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Belgium License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/be/ or send a letter to Cre-ative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105,USA.

Met bijdrages en fragmenten uit de cursussen, handleidingen, documenten vanLieven Debaes, Kris Luyten, Jarkko Huijts, Piet van Oostrum, Frederik De Schrij-ver, Herman Bruyninckx, http://www.ubuntu-forums.nl,

Page 3: Linux Cursus Door Koen Wybo

Inhoudsopgave

1 Linux: eerste ontmoeting . . . . . . . . . . . . . . . . . . . . . 1

1.1 Een kleine demonstratie . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Wat is Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Geschiedenis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.1 Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.2 Het GNU copyleft . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.3 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Gezond verstand: Open Standaarden en Open Source . . . . . . 5

1.4.1 Open Standaarden . . . . . . . . . . . . . . . . . . . . . . 5

1.4.2 Open Source . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Waar GNU/Linux gebruikt wordt . . . . . . . . . . . . . . . . . . 7

1.6 Sterke en zwakke punten van GNU/Linux en open source . . . . . 8

1.6.1 Sterke punten . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6.2 Zwakke punten . . . . . . . . . . . . . . . . . . . . . . . . 9

1.7 Distributies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.7.1 Commerciele distributies . . . . . . . . . . . . . . . . . . . 12

1.7.2 Open of community based distributies . . . . . . . . . . . . . 13

1.7.3 Open met commerciele sponsoring . . . . . . . . . . . . . . 14

1.8 Licenties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.9 Het vinden van informatie . . . . . . . . . . . . . . . . . . . . . . 17

1.9.1 Website van de distributie . . . . . . . . . . . . . . . . . . . 17

3

Page 4: Linux Cursus Door Koen Wybo

INHOUDSOPGAVE 4

1.9.2 Linux Documentation Project . . . . . . . . . . . . . . . . . 17

1.9.3 HOWTO . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.9.4 Manual pages . . . . . . . . . . . . . . . . . . . . . . . . 18

1.9.5 Info pages . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.9.6 /usr/share/doc . . . . . . . . . . . . . . . . . . . . . . . . 18

1.9.7 Nieuwsgroepen en forums . . . . . . . . . . . . . . . . . . 19

1.9.8 Het web . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.9.9 Boeken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.9.10 Tijdschriften . . . . . . . . . . . . . . . . . . . . . . . . . 19

2 Verover je Desktop . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1 Desktopdiversiteit . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1.1 Desktopmanagers: GNOME, KDE en Xfce4 . . . . . . . . . . 22

2.1.2 Windowmanagers . . . . . . . . . . . . . . . . . . . . . . . 25

2.2 De GNOME-desktop verkennen . . . . . . . . . . . . . . . . . . 28

2.2.1 Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2.2 Pictogrammen . . . . . . . . . . . . . . . . . . . . . . . . 30

2.2.3 Paneel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.2.4 Menu: Toepassingen, Lokaties en Systeem . . . . . . . . . . 33

2.2.5 Correct uitloggen . . . . . . . . . . . . . . . . . . . . . . . 34

2.3 Je werkomgeving inrichten . . . . . . . . . . . . . . . . . . . . . 34

2.3.1 Systeem/voorkeuren . . . . . . . . . . . . . . . . . . . . . 34

2.3.2 Toepassingenmenu aanpassen . . . . . . . . . . . . . . . . 40

2.3.3 Zoals jij het wil . . . . . . . . . . . . . . . . . . . . . . . . 42

3 Werken met bestanden: basis . . . . . . . . . . . . . . . . . . 45

3.1 GNU/Linux-bestandssysteem . . . . . . . . . . . . . . . . . . . . 45

3.1.1 Bestandsstructuur . . . . . . . . . . . . . . . . . . . . . . 45

3.2 Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Page 5: Linux Cursus Door Koen Wybo

INHOUDSOPGAVE 5

3.3 The Black Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.4 Langzame start . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.5 Handige toetsen bij het gebruik van de shell . . . . . . . . . . . . 50

3.6 Enkele basiscommando’s . . . . . . . . . . . . . . . . . . . . . . 51

3.6.1 Gouden tip voor MANnen die vaak vergeten . . . . . . . . . . . 51

3.6.2 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.6.3 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.6.4 cp en rm . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.6.5 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.6.6 mkdir en rmdir . . . . . . . . . . . . . . . . . . . . . . . . 54

3.7 Bestandseigenaarschap . . . . . . . . . . . . . . . . . . . . . . . 55

3.8 GNU/Linuxbestandspermissies . . . . . . . . . . . . . . . . . . . 55

3.8.1 Inleiding tot bestandspermissies . . . . . . . . . . . . . . . . 55

3.8.2 Attributen . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4 Systeembeheer: software . . . . . . . . . . . . . . . . . . . . 59

4.1 Software van Ubuntu in een deb-je . . . . . . . . . . . . . . . . . 59

4.1.1 Software in deb-formaat . . . . . . . . . . . . . . . . . . . . 59

4.2 Software installeren en verwijderen . . . . . . . . . . . . . . . . . 60

4.2.1 Software installeren met synaptic . . . . . . . . . . . . . . . 60

4.2.2 Software installeren met de console . . . . . . . . . . . . . . 62

4.2.3 Softwarebronnen en Ubuntu-componenten . . . . . . . . . . 62

4.2.4 Repository’s toevoegen/verwijderen . . . . . . . . . . . . . . 64

4.3 Anders installeren . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.3.1 Individuele deb-pakketten vanuit je browser installeren met gdebi 66

4.3.2 Andere pakketten: rpm . . . . . . . . . . . . . . . . . . . . 67

4.3.3 Compileren en installeren van broncode . . . . . . . . . . . . 67

4.3.4 Java? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.3.5 Installatiescripts . . . . . . . . . . . . . . . . . . . . . . . . 69

Page 6: Linux Cursus Door Koen Wybo

INHOUDSOPGAVE 6

4.3.6 Naar een standaardinstallatieformaat? . . . . . . . . . . . . . 69

4.4 . . . en mijn windowssoftware? . . . . . . . . . . . . . . . . . . . 70

4.4.1 WINE is not (an) emulator . . . . . . . . . . . . . . . . . . . 70

4.4.2 Programma’s die werken onder Wine . . . . . . . . . . . . . 71

5 Publicaties in LATEX . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.1 Wat en waarom? . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.2 Installatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.3 Aan de slag met LATEX . . . . . . . . . . . . . . . . . . . . . . . . 75

5.3.1 Basisprincipe . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.3.2 LATEX-elementen in het tex-bestand . . . . . . . . . . . . . . 75

5.3.3 Een wat uitgebreider voorbeeld . . . . . . . . . . . . . . . . 76

5.4 Opmaak van tekst . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4.1 Speciale tekens . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4.2 Spaties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4.3 Paragrafen . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.4 Lettertypes . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.5 Lijsten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.4.6 Voetnoten . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.4.7 Letterlijke tekst . . . . . . . . . . . . . . . . . . . . . . . . 81

5.4.8 Figuren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.5 Van bron naar ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.5.1 dvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.5.2 pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.5.3 html . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.6 Goede LATEX-editors . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.6.1 Niet Wysiwig, code-editors . . . . . . . . . . . . . . . . . . 83

5.6.2 Wysiwig met lyx en Openoffice.org . . . . . . . . . . . . . . 85

5.7 Presentaties met LATEX . . . . . . . . . . . . . . . . . . . . . . . 85

Page 7: Linux Cursus Door Koen Wybo

INHOUDSOPGAVE 7

5.7.1 Basis van beamer . . . . . . . . . . . . . . . . . . . . . . . 85

5.8 Verdere informatie . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.8.1 Online informatie . . . . . . . . . . . . . . . . . . . . . . . 86

6 Alle in’s en uit’s . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.1 Enkele handige commando’s om tekstbestanden te bekijken . . . 87

6.2 In en uit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.2.1 Redirecting . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.2.2 Piping: in-out | in-out | in-out . . . . . . . . . . . . . . . . . . . 90

6.3 Nog enkele behulpzame commando’s . . . . . . . . . . . . . . . 90

6.3.1 Sorteren met sort. . . . . . . . . . . . . . . . . . . . . . . 90

6.3.2 Zoeken met grep . . . . . . . . . . . . . . . . . . . . . . . 91

6.3.3 Vinden met find . . . . . . . . . . . . . . . . . . . . . . . . 91

7 Beheer van gebruikers . . . . . . . . . . . . . . . . . . . . . . . 97

7.1 Root en het sudo-systeem . . . . . . . . . . . . . . . . . . . . . 97

7.1.1 Basisprincipe . . . . . . . . . . . . . . . . . . . . . . . . . 97

7.1.2 Meerdere sudo’ers . . . . . . . . . . . . . . . . . . . . . . 98

7.1.3 /etc/sudoers . . . . . . . . . . . . . . . . . . . . . . . . . 98

7.1.4 Sudo: enkele handigheidjes . . . . . . . . . . . . . . . . . . 100

7.2 Werken met gebruikers . . . . . . . . . . . . . . . . . . . . . . . 100

7.2.1 Aanmaken van gebruikers . . . . . . . . . . . . . . . . . . . 101

7.2.2 Achter de coulissen van adduser . . . . . . . . . . . . . . . 102

7.2.3 Gebruikers verwijderen: tijdelijk, definitief, in een backup . . . . 104

7.3 Groepen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

7.3.1 Ubuntu-groepen . . . . . . . . . . . . . . . . . . . . . . . 106

7.4 Enkele handige extra’s . . . . . . . . . . . . . . . . . . . . . . . 106

7.4.1 Wie ben ik? . . . . . . . . . . . . . . . . . . . . . . . . . . 106

7.4.2 Wie is er op het systeem? . . . . . . . . . . . . . . . . . . . 106

Page 8: Linux Cursus Door Koen Wybo

INHOUDSOPGAVE 8

7.5 Grafische omgevingen voor meerdere gebruikers . . . . . . . . . 107

7.5.1 Pessulus . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

7.5.2 Sabayon . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8 Processen en booten . . . . . . . . . . . . . . . . . . . . . . . 111

8.1 Processen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

8.1.1 Multi-user and multi-tasking . . . . . . . . . . . . . . . . . . 111

8.1.2 Wat is een proces? . . . . . . . . . . . . . . . . . . . . . . 111

8.2 Processen beheren . . . . . . . . . . . . . . . . . . . . . . . . . 112

8.2.1 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

8.2.2 Achter- en voorgrond . . . . . . . . . . . . . . . . . . . . . 114

8.2.3 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.2.4 Aardige processen . . . . . . . . . . . . . . . . . . . . . . 116

8.2.5 Kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.3 GNU/Linux booten . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.3.1 GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8.3.2 Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.3.3 init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.3.4 Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

9 Op het net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

9.1 Plug jezelf in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

9.1.1 Wat heb je nodig om te kunnen netwerken? . . . . . . . . . . 126

9.1.2 Je netwerk grafisch configureren . . . . . . . . . . . . . . . 126

9.1.3 Een zorgeloze toekomst? . . . . . . . . . . . . . . . . . . . 127

9.1.4 Netwerken: back to basics . . . . . . . . . . . . . . . . . . 127

9.1.5 Troubles? . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

9.1.6 Grafische netwerktools . . . . . . . . . . . . . . . . . . . . 132

9.2 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Page 9: Linux Cursus Door Koen Wybo

INHOUDSOPGAVE 9

9.2.1 Inloggen op een andere pc . . . . . . . . . . . . . . . . . . 133

9.2.2 Grafische programma’s opstarten . . . . . . . . . . . . . . . 133

9.2.3 Grafisch bestandsbeheer op afstand . . . . . . . . . . . . . . 134

9.3 Enkele weetjes . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

10 Beheer van apparaten . . . . . . . . . . . . . . . . . . . . . . . 137

10.1 Devices: concept . . . . . . . . . . . . . . . . . . . . . . . . . . 137

10.2 Daemons en servers . . . . . . . . . . . . . . . . . . . . . . . . 138

10.3 Printers en cups . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

10.4 Beelscherm(en) en Xorg . . . . . . . . . . . . . . . . . . . . . . 140

10.4.1 /etc/X11/xorg.conf . . . . . . . . . . . . . . . . . . . . . . 142

10.5 Audio en Alsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

10.6 Scanner en SANE . . . . . . . . . . . . . . . . . . . . . . . . . . 143

10.7 Harde schijven lokaal en over het net . . . . . . . . . . . . . . . . 144

10.7.1 Een filesysteem mounten . . . . . . . . . . . . . . . . . . . 145

10.7.2 Een filesysteem u(n)mounten. . . . . . . . . . . . . . . . . . 146

10.7.3 Filesystemen mounten bij het opstarten. . . . . . . . . . . . . 147

10.7.4 Filesystemen mounten als gewone user. . . . . . . . . . . . . 148

A Creative Commons Licentie . . . . . . . . . . . . . . . . . . . 1

Page 10: Linux Cursus Door Koen Wybo

De aarde was woest en leeg; duisternis lag over de diepte,

boek Genesis hfst. 1

1Linux: eerste ontmoeting

In dit eerste hoofdstuk willen we je overstelpen met de mogelijkheden van hetGNU/Linux-besturingssysteem en programma’s. Dit om je in een heel kort mo-ment een totaaloverzicht te geven van wat GNU/Linux is, wat je ervan kan ver-wachten, mee bereiken, enz. Voorlopig is dit terrein voor jou misschien nog nietin kaart gebracht. Een eerste contact zal misschien overweldigend en chaotischlijken. We gidsen je graag om vanuit de diepte en duisternis een breder inzichtte geven zodat je reeds een eerste overzicht hebt. Hopelijk komen er bij jou velevragen op die we gedurende deze cursus kunnen plaatsen en beantwoorden.

Deze cursus gaat ervan uit dat je reeds gewoon bent om te werken met eendesktopomgeving, dat je reeds kan werken met een office-pakket, kan werkenmet mail en internet, enz. Met andere woorden: je bent geen absoluut beginner.

Keuze en vrijheid zijn sleutelwaarden binnen de GNU/linux-omgeving. We de-monstreren even

1.1 Een kleine demonstratie

— uitgebreid aanbod van gnome/kde/XFCE/fluxbox -omgevingen. Diverse pro-gramma’s voor diverse taken. —

1

Page 11: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 2

1.2 Wat is Linux?

Strikt gesproken is Linux de naam van de kernel voor een besturingssysteem 1.Op zichzelf is de kernel niet zo interessant. Het biedt geen mogelijkheid voor degebruiker om de computer te bedienen. Er is meer nodig. Wat vaak met “Linux”wordt bedoeld, is een GNU/Linuxdistributie. Dat is een samengesteld geheel vande kernel en andere software. Samen vormt het wel een volledig OS, en meer.Belangrijk zijn de GNU-utility’s. GNU is een recursief acroniem dat staat voorGNU’s Not Unix. Het is een set utility’s die is gemaakt door de FSF (Free SoftwareFoundation) en een alternatief vormt voor de utility’s die bij Unices te vinden zijn.(Meer over de FSF en GNU komt verderop.) Bij deze utility’s hoort o.a. een shell,software die een command line toont zoals bij MS-DOS. De kernel en GNU-utility’svormen samen een volledig functionerend OS dat dezelfde mogelijkheden biedtals Unix, maar dan op een pc. Omdat de software van het GNU-project net zobelangrijk is als de kernel, is het eigenlijk correcter het systeem GNU/Linux tenoemen. Voortaan hanteren wij dan ook deze benaming.

De moderne gebruiker wil graag een grafische desktop. Ook dat is beschikbaarbij GNU/Linux-distributies. Ten grondslag aan alle grafische software voor GNU/-Linux (en andere Unices) ligt X. Software die een desktopomgeving vormt, maaktgebruik van X. Er zijn twee belangrijke projecten voor desktopsoftware: GNOMEen KDE.Je merkt dat een GNU/Linux-distributie is opgebouwd uit een hoop verschillendeonderdelen. Naast de hier genoemde onderdelen is er nog veel meer softwa-re te vinden bij een distributie. Wat al deze software gemeen heeft, is dat hetopen source is. Verder wordt het door vele verschillende individuen en groepengemaakt.

1.3 Geschiedenis

1.3.1 Unix

GNU/Linux is voor alles een Unix en Unix is van oudsher een systeem voor envan universiteiten. En als zodanig is het stevig verankerd in de eeuwenoude we-tenschappelijke traditie van open communicatie en uitwisseling. In deze omgevingworden systemen en ideeen niet, of niet alleen, ontwikkeld om er geld mee te ver-dienen, maar eerst en vooral om aanzien te verwerven binnen de eigen groep: depeer recognition. Zowel Unix als GNU/Linux zijn voortgekomen uit een zeer sterkeen constante drang in de mens: de wens voor vol aangezien te worden door jecollega’s. En zolang de aard van het beestje niet verandert is het voortbestaanvan GNU/Linuxhierdoor waarschijnlijk beter verzekerd dan dat van andere compu-

1Een besturingssysteem (of operating system, OS) is basissoftware voor een computerdie de gebruiker de mogelijkheid biedt het systeem te gebruiken. De kernel is het deel datals eerste wordt geladen en dan aanwezig blijft in het geheugen. Het vervult essentieletaken, zoals geheugenmangament, scheduling om taken te verdelen over de processortijd,en communicatie met de hardware via device drivers.

Page 12: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 3

tersystemen, die afhankelijk zijn van de altijd grillige economische marktwerking.Unix werd aan het einde van de zestiger, begin zeventiger jaren ontwikkeld alseen “klein” operating system dat in staat moest zijn op de meest uiteenlopendeplatforms meerdere gebruikers tegelijkertijd verschillende taken uit te laten voe-ren. Vanaf het begin werd de source (of broncode) ter beschikking gesteld aaniedereen die er maar aan wilde sleutelen. Dat gebeurde natuurlijk vooral aan deuniversiteiten en onderzoeksinstituten, en het is geen overdrijving om te zeggendat het uiteindelijke Unix het resultaat was van honderden computerdeskundigenen hackers2.

Het is kenmerkend voor deze anarchistische omgeving van wetenschappers enstudenten dat er al snel een ware cultuur van humor en sterke verhalen om ditoperating system ontstond en het kwam dan ook voor velen als een klap dat inhet begin van de tachtiger jaren Unix opeens werd gecommercialiseerd. Het wasafgelopen met het inspecteren van de source, het experimenteren met alterna-tieve algoritmes. Computers waren “big business” geworden en de sources vanprogrammatuur werden even jaloers geheimgehouden als het recept van CocaCola. Het logische gevolg was dat de softwarebedrijven steeds meer een wurg-greep kregen op hun klanten: elke wijziging in de code, elke aanpassing aan eenprogramma moest duur worden betaald, zonder dat de klant enig zicht had op watzich achter de schermen afspeelde.

Microsoft en Bill Gates zijn de voortbrengselen van deze commerciele cultuur.Programmatuur was alleen nog maar een van de vele manieren om geld te makenen alles werd ondergeschikt gemaakt aan de winst. De gebruiker was volledigafhankelijk van de grillen van de producent, want hij had geen keus. Alleen hadBill Gates begrepen wat de eigenaars van Unix nooit hadden ingezien: dat je beterduizend systeempjes van honderd dollar kon verkopen dan vijf van tienduizenddollar. De bezitters van Unix hadden dat niet door en de commercialisering vanUnix leidde in korte tijd tot de versplintering van dit operating system in evenveelpeperdure varianten als er hardwareplatforms voor bestonden. En ondertussenhaalde Microsoft de markt van de huiscomputer naar zich toe.

1.3.2 Het GNU copyleft

Deze commercialisering van wat in zijn ogen vrij zou moeten zijn voor iedere ge-bruiker stootte een zekere Richard Stallman zozeer tegen de borst dat hij beslootactie te ondernemen. Met de typisch Amerikaanse mengeling van naıviteit endadendrang richtte hij in 1984 de “Free Software Foundation”, de FSF op. Hetessentiele verschil tussen de producten van de FSF en die van de commercielebedrijven was nadrukkelijk niet dat de FSF-software per definitie gratis zou moe-ten zijn. In tegenstelling tot wat veel mensen denken wordt er over het verkopenvan de software niets bepaald in de legale definitie van het “GNU copyleft” (eenparodie op copyright). Maar wel is iedereen verplicht om de source van de betref-fende software altijd mee te leveren en geen beperkingen te leggen op de verdere

2Hackers zijn begaafde computergebruikers en -programmeurs. De populaire pers ver-wart ze ten onrechte met “crackers”, ofwel mensen die inbreken in computersystemen. Maarde populaire pers weet nu eenmaal zelden waar zij het over heeft . . . )

Page 13: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 4

verspreiding ervan. Het woord “free” moet hier dan ook worden gezien zoals in deuitdrukking “free speech”, niet “free beer”. Om Richard Stallman zelf aan te ha-len: “Een programmeur mag best geld verdienen. Hij en zijn gezin moeten goedkunnen eten als ieder ander, maar hij hoeft dat niet elke dag in een driesterren-restaurant te doen.”Natuurlijk werden de ideeen van Richard Stallman door de rest van de wereldweggehoond. Dat verhinderde hem en zijn geestverwanten echter niet om eengroot aantal uitstekende softwarepakketten te schrijven die op praktisch elke Unixkonden draaien. Vooral op universiteiten gooiden de systeemadministrators zosnel mogelijk de commerciele versies van hun respectievelijke Unixen overboordom daarvoor in de plaats de GNU-utility’s te kunnen draaien. En dat gebeurdeniet uit het oogpunt van kostenbesparing, want de commerciele applicaties warenimmers al betaald, maar omdat de source open was en door honderden program-meurs over de hele wereld kon worden bekeken en verbeterd. Daardoor stak deGNU-software met kop en schouders boven de andere programmatuur uit.

1.3.3 Linux

Niettemin zag het er in het begin van de negentiger jaren slecht uit voor Unix. Demassamarkt was door Microsoft veroverd en de hoge prijs van de verschillendeUnixen verhinderde dat er serieus aan een Unix voor pc’s werd gewerkt. AlleenMicrosoft had geexperimenteerd met een eigen Unix voor pc’s, Xenix geheten, endie was als SCO Unix een eigen leven gaan leiden. Unix op de pc kon dus wel,alleen kostte een volledige installatie toen nog (omgerekend) zevenduizend euroen dat kon natuurlijk geen enkele thuisgebruiker opbrengen.In 1991 veranderde dat dramatisch. Een Finse student, Linus Torvalds, ergerdezich aan het feit dat zijn favoriete besturingssyteem, Unix, niet thuis op zijn pckon draaien. Toen hij hoorde van Minix, een OS gemaakt door Andy Tanenbaumop de Vrije Universiteit in Amsterdam, was hij direct geınteresseerd. Minix wasgeınspireerd door Unix. Linus vond Minix aardig, maar miste functionaliteit. Hijwilde het gaan uitbreiden, maar Tanenbaum wilde dat niet. Hij wilde Minix kleinhouden om het te kunnen gebruiken als onderwijsmateriaal. Toen besloot hij zelfmaar een OS te gaan schrijven. Dat was echter niet zijn grootste verdienste. Hetgeniale van Linus Torvalds was dat hij het op universiteiten toen al lang populaireinternet gebruikte om medestanders te vinden die samen met hem aan een Unixvoor pc’s wilden werken en dat wilden uitbrengen onder het GNU copyleft. Hetbefaamde usenetbericht van Linus uit 1991 begon als volgt:

“Hello everybody out there using minix - I’m doing a (free) opera-ting system (just a hobby, won’t be big and professional like gnu) for386(486) AT clones.”

We moeten niet vergeten dat op een typisch GNU/Linuxsysteem met honderdenmegabytes aan “vrije” programmatuur, slechts een miniem gedeelte van vijf- azeshonderd kilobytes (de kernel) echt “GNU/Linux’ is. De rest bestaat uit softwaredie door anderen in het kader van het GNU copyleft is geschreven en aan de restvan de wereld ter beschikking gesteld. En daarin ligt de grote verdienste van LinusTorvalds: het bij elkaar brengen van al deze bestaande stukjes tot een coherent

Page 14: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 5

besturingssysteem.Hiermee is Unix eindelijk weer terug waar het thuishoort: in de wereld van open-heid, onderwijs en experiment, van samenwerking en peer recognition. En hetis hoopgevend dat deze onbetaalde aandrang om erkend te worden binnen hetwereldje van hackers, programmeurs en internet erin is geslaagd waar miljoenen-firma’s als IBM, Sun, Novell en al die andere hebben gefaald: het vormen van eenserieuze bedreiging voor het gigantische Microsoft.Ongeacht wat de toekomst brengt, een ding is zeker. Met GNU/Linux is de geestvan vrije software definitief uit de fles en niemand zal hem er ooit weer in terugkunnen stoppen. De GNU-filosofie van open source, die iedereen kan bekijken endie door iedereen kan worden aangepast en verbeterd, bestaat nu al 20 jaar enanders dan de commerciele bovenbazen graag beweren: zij heeft niet tot versnip-pering geleid. In tegendeel: de GNU-software is verreweg de beste software dieer bestaat. [?]

1.4 Gezond verstand: Open Standaarden en OpenSource

Termen die vaak voorkomen in Linuxland zijn Open Standaarden en Open Source.Veel gehoorde termen bij Open Standaarden zijn bescherming tegen vendor lock-in, proprietaire bestandsformaten, open formaten, enz. .

1.4.1 Open Standaarden

Wat is nu eigenlijk een ’Open Standaard’? (http://www.openstandaarden.be/?q=node/2)

We maken een onderscheid tussen de volgende 3 definities:

• Open Specificatie: de specificatie moet gratis, online beschikbaar zijn enmoet voldoende zijn om een volledig functionerende implementatie te schrij-ven.

• Vrije Specificatie: de specificatie moet open zijn (zie hierboven) en moetvrij zijn van juridische beperkingen (patenten, licenties, ...).

• Open Standaard: de specificatie moet vrij zijn (zie hierboven) en moetgoedgekeurd zijn door een standaardenorganisatie.

Deze wijkt af van bijvoorbeeld de definitie gegeven op -nederlandstalige- wikipe-dia (waar gesteld wordt dat open niet noodzakelijk gratis betekent). De Engelsta-lige versie vermeld dat men voor de gratis versie soms de term ‘open formats’gebruikt. De Europese Commissie op zijn beurt voegt dan weer aan toe datde standaard door een non-profitorganisatie moet onderhouden en vrijgegevenworden (http://europa.eu.int/idabc/en/document/3761). Bruce Peerens-stuwende kracht in de Open Source- legt dan weer zijn accenten.

Page 15: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 6

Een mooi document om uit de impasse te raken: http://www.davidecerri.

org/en/doc/openness.pdf. Zij stipuleren:

• the standard specification document must be publicly available, either freeof charge or at a nominal fee;

• the standard must be owned and managed by an official standardizationbody or by an open group or consortium: it must not be owned or controlledby a single party, and no single party must have special rights on it;

• the standard must be defined and managed according to an open process:every interested party must be able to join the standardization process,which must be based on an open decision making procedure (e.g., con-sensus);

• the standard must be free to implement for all interested parties, without anyroyalty fee: possible patented technologies included in the standard must belicensed with royalty free non discriminatory terms;

• it must be possible to extend and reuse the standard in other open standards.

Waarom zoveel drukte maken over open standaarden? Als men open standaar-den hanteert en consequent gebruikt dan neemt de uitwisselbaarheid tussen deverschillende soorten hardware- en software-onderdelen toe. Omdat iedereen vrijmag zien hoe iets wordt opgebouwd is er ook meer sprake van vrije ‘concurrentie’en is men als consument minder afhankelijk van een bepaalde hardware- en/ofsoftwareleverancier, dan wel dienstverlener (vrij van vendor-lockin).

1.4.2 Open Source

De Open Source Beweging is ooit begonnen als een ‘praktische’ beweging. Gnuen vrije software is OK maar men moet ook in de praktijk kunnen werken metelkaar. Daarom stelt men meestal dat waar bij vrije software de klemtoon ligt ophet morele karakter van software voor iedereen, wil open source vooral gewoonaan de slag gaan zonder daarom altijd naar de morele (of immorele) intenties vaneen medewerker te kijken. In de praktijk echter komen ze heel goed overeen ;-).

Bruce Peerens stelt enkele voorwaarden waar Open Source software moet aanvoldoen:

• De licentie mag niemand verbieden de software gratis weg te geven of teverkopen.

• De broncode moet met de software meegeleverd worden of vrij beschikbaarzijn.

• Wederverspreiding van afgeleide werken en aangepaste versies van desoftware moeten toegestaan zijn.

Page 16: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 7

• Licenties mogen vereisen dat aanpassingen alleen als patch verspreid wor-den.

• De licentie mag niet discrimineren tegen gebruikers(groepen).

• De licentie mag niet discrimineren tegen gebruiksomgeving van de software.

• De rechten verbonden aan het programma moeten opgaan voor iedereenaan wie het programma gedistributeerd wordt.

• De rechten verbonden aan het programma moeten niet afhangen van soft-waredistributies waarvan de software een onderdeel is.

• De licentie mag niet verlangen dat andere software die samen met de soft-ware verspreid wordt onder dezelfde licentie valt.

• Geen van de bepalingen van de licentie mag slaan op een bepaalde tech-nologie of interface-stijl.

Lees er ook eens http://people.mech.kuleuven.be/~bruyninc/ictvisie.html op na.

1.5 Waar GNU/Linux gebruikt wordt

• Door mensen met technische opleidingen, zoals natuurkunde, wiskunde en(vooral) informatica. Zeker iemand die informatica studeert mist mijns in-ziens wel erg veel als hij niets over Unices weet. En binnen alle serieuzeonderzoeksgebieden is Unix nog altijd de standaard.

• In film- en animatiestudio’s, o.a. Disney, DreamWorks en Pixar. Enkele titelswaar GNU/Linux voor is gebruikt, zijn Titanic, Shrek, Harry Potter en Lordof the rings.

• Door Google, de populairste zoekmachine van het moment.

• Steeds meer overheden van verschillende landen overwegen om open-sourcesoftware te gebruiken of doen dit al voor overheidscomputers, omdat hetveiliger, beter controleerbaar en goedkoper is.

• In China wordt een eigen distributie van GNU/Linux gebruikt als officieel OS.

• Ook op scholen in vele landen wordt GNU/Linux steeds meer gebruikt. Eenbelangrijke reden is dat GNU/Linux veel kosten bespaart. Om die redenbegonnen wat armere landen er als eerste mee, zoals Brazillie en sommigeAfrikaanse landen.

• Voor servers, o.a. bij internetproviders.

• Voor embedded systemen.

• Door een groeiend aantal bedrijven en thuisgebruikers.

Page 17: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 8

• Open-sourcesoftware die erg veel gebruikt wordt: Apache, een webserver(software), wordt gebruikt op meer dan 60% van alle webservers (hard-ware). BIND (Berkeley Internet Name Daemon), een DNS-server, wordtgebruikt op meer dan 80% van alle DNS-servers. Sendmail, een mailser-ver, wordt gebruikt op bijna 80% van alle mailservers. MySQL en PHP, eendatabase en een scripttaal; deze combinatie wordt voor vele dynamischewebsites gebruikt. Deze software is behalve onder GNU/Linux ook onderverschillende andere OS’en te gebruiken.

[?]

1.6 Sterke en zwakke punten van GNU/Linux enopen source

1.6.1 Sterke punten

• Een GNU/Linuxdistributie is voor geen of weinig geld (legaal) te verkrij-gen. Wat het kost hangt af van de distributie. Er zijn enkele commerciele,die mooie dozen verkopen via winkels. Daar krijg je dan een handleiding ensupport bij. Er zijn ook volledige distributies te downloaden via internet.

• Linux (de kernel) is stabiel. De meest voorkomende reden van vastlopersis hardwareproblemen. Er zijn veel mensen die het maanden of zelfs ja-ren achter elkaar draaien zonder een enkele reboot. Alhoewel de kernelheel stabiel is, is het wel mogelijk dat buggy programma’s onder GNU/Li-nux vastlopen. Daar is niet veel aan te doen. Het vastlopen van een enkelprogramma zal er in ieder geval niet toe leiden dat het besturingssysteemwordt gevloerd.

• GNU/Linux is leuk om te gebruiken. Het heeft een hoog speelgehalte. Demogelijkheden zijn bijna onbeperkt. Je kunt overal bij en alles aanpassen.Je kunt alles configureren hoe jij het graag wil. En de ontwikkeling vansoftware gaat snel, zodat je vaak nieuwe software of nieuwere versies kuntuitproberen.

• Linux (de kernel) heeft minimaal een 386 met 2 MB geheugen nodig. Metdie hardware kun je vervolgens echter niet veel interessants doen. Maar wilje GNU/Linux gebruiken om enkel als webserver of router te draaien, danvolstaat een oude 486 met 8 of 16 MB geheugen. Wil je GNU/Linux ge-bruiken als desktopmachine, dan wil je een mooie desktop environment alsKDE of GNOME kunnen gebruiken. Om daar een beetje fijn mee te kunnenwerken, heb je wel modernere hardware nodig. De kernel zelf maakt hetdus mogelijk het OS te gebruiken op oudere hardware als dat volstaat voorje doel. Alleen als je het als desktop wilt gebruiken, heb je betere hardwarenodig.

• Doordat zo goed als alle voor GNU/Linux beschikbare software open sour-ce is, kunnen hulpvaardige programmeurs de makers van een stuk software

Page 18: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 9

helpen met het vinden van bugs of zelfs actief meewerken met de ontwikke-ling. Ook niet-programmeurs kunnen meehelpen door het opsturen van bugreports. Door dit alles kunnen beveiligings- en andere soorten fouten in zeerkorte tijd gevonden worden. Al met al worden bugs wel sneller afgehandelddan bij de meeste commerciele software.

• GNU/Linux is een goed multitasking en multi-user OS. In GNU/Linux kun-nen meerdere gebruikers tegelijkertijd van een computer gebruik maken,zonder dat ze last van elkaar hebben. Hun configuratiebestanden en per-soonlijke bestanden staan allemaal in een eigen home directory.

• Multi-platform. GNU/Linux werkt op maar liefst 24 verschillende hardware-platformen. Dus niet enkel op Intel maar ook op Mac, Alpha, Sun Sparc,enz. Zo worden niet enkel desktops en servers ondersteund maar ook heelwat embedded systemen.

• Er bestaan zo goed als geen virussen of wormen voor GNU/Linux . Deenkele die bestaan zijn niet succesvol in de praktijk. Een veel reeler gevaarwaar je wel in de praktijk last van kunt hebben met een GNU/Linuxsysteemzijn crackers (mensen die inbreken in computersystemen).

• GNU/Linux is schaalbaar. Het draait evengoed op een oude 486 als op eensupercomputer.

• Uitgebreide netwerkmogelijkheden. De kernel heeft vrij geavanceerdefirewallmogelijkheden. Met de software die je bij een GNU/Linuxdistributieaantreft, kun je een DNS-, proxy-, POP-, SMTP-, FTP-, nieuws- en webser-ver opzetten. Om deze reden wordt GNU/Linux ook best veel gebruikt doorinternetproviders.

• Monopolie-vrij. De dominantie van Microsoft op de software-markt is velecomputergebruikers een doorn in het oog. Zij vinden dat ze te vaak verplichtzijn bij Microsoft middelmatige produkten aan te kopen aan een overdrevenprijs, enkel en alleen omdat dit bedrijf ook de absolute controle heeft overhet besturingssysteem waarop de toepassing draait.

Open software is op dit moment reeds zover ontwikkeld dat men zich eigen-lijk moet afvragen “Waarom zou ik kiezen voor niet-open software? . . . ”

Voorzichtigheid blijft echter geboden: het “open” zijn van software is, opzich, geen garantie voor de kwaliteit. Op de golf van suksesrijke open soft-ware projecten, bieden sommigen een miniem deel van hun code aan alsopen “instap”-programma, terwijl ze eigenlijk enkel geınteresseerd zijn in hetverkopen van hun gesloten, commerciele “professionele” versie! Of de codeis zo onleesbaar dat je handleidingen of ondersteuning bij hen moet kopen.(Dit gevaar loop je gelukkig niet bij de “grote” projekten zoals GNU of KDE.)Open software is dus meer dan software alleen: het is een mentaliteit!

1.6.2 Zwakke punten

Sommige GNU/Linuxgebruikers zien GNU/Linux als het ultieme OS. Ik zal je maargauw uit die droom helpen: GNU/Linux kent ook wel zijn zwakke punten. Zoals

Page 19: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 10

eigenlijk met alles, is er geen OS dat voor iedereen en voor alle doeleinden perfectis.

• Veel mensen weten niet erg veel van computers, maar gebruiken ze al-leen als veredelde typemachine en misschien om wat te browsen op inter-net. Dat wordt door veel GNU/Linux-gebruikers zwaar onderschat. Dat komtvooral doordat zij over het algemeen veel met computers omgaan, er inte-resse in hebben en al doende veel leren. Voor de doorsneegebruiker zijnzaken als herpartitioneren en configureren van hardware erg lastig. Er komtsteeds meer eenvoudig te gebruiken software, maar als een stuk hardwareniet direct na de installatie volautomatisch werkt of via een simpel (liefst gra-fisch natuurlijk, want dat spreekt meer aan) configuratieprogramma aan depraat te krijgen is, dan wordt het al erg vervelend. Om deze redenen is nietiedereen het ermee eens dat GNU/Linux al “gebruiksvriendelijk” genoeg is.Wat zeker zou helpen om meer mensen GNU/Linux te laten gebruiken, ishet voorinstalleren op de computer bij aanschaf. Een pc met GNU/Linuxerop is op enkele plaatsen te kopen, maar het is nog altijd een nichemarkt.

• Dit punt hangt samen met het bovenstaande. Je zult misschien de woor-den “steep learning curve” wel eens gezien hebben. Wat daarmee wordtbedoeld, is dat het wel tijd en inspanning (en daarom geduld) kost om meteen besturingssysteem als GNU/Linux overweg te kunnen. Mocht je ietswillen doen dat echt handmatig moet gebeuren, dan helpt het enorm om teweten hoe het werkt. In de meeste gevallen is dat een kwestie van “als jehet eenmaal weet, is het niet zo moeilijk”, maar je moet het wel eerst leren.Niet iedereen wil dat.

• Softwarefabrikanten die hun producten richten op de thuisgebruikers ma-ken natuurlijk programma’s voor wat de mensen vooral gebruiken. En datis op de dag van vandaag nog altijd Windows. Erg veel spellen (om maareens iets te noemen) zijn er daardoor niet voor GNU/Linux.

• Hetzelfde doen hardwarefabrikanten. Ze maken over het algemeen alleenmaar drivers voor Windows en de meeste willen geen specificaties vrijge-ven. Daardoor zal sommige hardware pas later of misschien zelf nooit wer-ken onder GNU/Linux. Bij Windows kun je ervan uitgaan dat al je hardwareondersteund wordt. Onder GNU/Linux is de kans kleiner. Maar schrik niet:er is behoorlijk veel hardware die onder GNU/Linux werkt. Er komen ooksteeds meer hardwarefabrikanten die zelf drivers voor GNU/Linux maken.

• Er is een groot aanbod aan open-sourcesoftware. Voor sommige takenzijn meerdere programma’s beschikbaar. Deze keuze heeft als voordeel datje iets kunt gebruiken wat aan jouw eisen voldoet, maar het kan ook verwar-rend zijn. Welk programma moet je gebruiken? Er zijn ook verschillendedistributies waaruit je kunt kiezen. Welke is het beste? De snelle ontwikke-ling in de open-sourcewereld heeft ook een keerzijde: informatie en kennisdie nu van toepassing is, kan over een jaar al behoorlijk achterhaald zijn.

• De GNU-software volgt de POSIX-standaard, zodat het compatible is metde Unix-equivalenten. Maar er is geen standaard manier waarop grafischesoftware zich moet gedragen of hoe het eruit moet zien. Er is een grote

Page 20: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 11

varieteit in “looks”. Zet GNOME-software, KDE-software en een ouder pro-gramma als Ghostview maar eens naast elkaar. Die verschillen nogal vanelkaar. Dit is misschien niet het ergste nadeel, maar wel iets dat desktop-gebruikers zal opvallen.

1.7 Distributies

Een linux-distributie is een verzameling van de linux-kernel met bij-horende GNU-tools, diverse systeemprogramma’s en software.

Meer en meer boekhandels verkopen boeken over GNU/Linux, vaakzelfs in combinatie met de software op CD’s. Als je op je eentje aan GNU/Linuxwil beginnen kies je best voor zo’n boek met CD, of ga je eens een kijkje nemenbij een Linuxgebruikersclub in je buurt. Heb je zelf internettoegang, dan vind jeniet alleen een massa informatie over alles wat met GNU/Linux en open softwarete maken heeft, maar je kan er ook met al je vragen terecht bij mensen die reedsjaren met GNU/Linux en open software bezig zijn.

Er bestaan verschillende GNU/Linux-distributies, d.w.z. enkele CD’s met opensoftware, verzameld en gebundeld door een of andere “distributie-maker.” Hetvoordeel van zo’n distributie is dat je zelf niet het Internet moet afschuimen om alde software waarin je geınteresseerd bent op te snorren en af te halen. Er zijntalloze distributie-makers actief, zodat je als neofiet het gevaar loopt het Linux-bosdoor de distributie-bomen niet meer te zien. Maar geen nood: met de summiereuitleg hieronder ben je al een heel eind op weg om de voor jou meest geschiktedistributie te proberen.

Een distributie bestaat uit een kernel, een hoop toepassingssoftware, en eeninstallatie- en configuratietools. Het verschil tussen de distributies zit hem vooralin het installatie-tool (van goede kwaliteit voor alle distributies, maar kan altijd nogbeter), en in de selectie van meegeleverde programma’s.

Alle distributies bevatten dezelfde kernel (namelijk het Linux-besturingssysteem)zodat je alle toepassingsprogramma’s onder alle distributies kan gebruiken. Er isimmers nog altijd maar een enkele Linux-kernel. Natuurlijk kan het versie-nummerop recentere CD’s hoger zijn dan op oudere. Een nuttige tip in verband met ver-sies: als het middelste van de drie getallen in het versie-nummer even is (bijv.2.0.35, 2.2.1, . . . ) dan heb je te maken met een stabiele versie; de oneven num-mers (bijv. 2.3.1) zijn ontwikkelversies die je als “gewone” gebruiker misschienbest vermijdt. CD-distributies bevatten alleen stabiele versies.

Alhoewel de software op distributies open en gratis is, is het niet verboden omgeld te verdienen met het aanmaken en verdelen van distributies, het maken van(grafische) “package management tools,” of het verlenen van ondersteuning aangebruikers. Er bestaan dus zowel commerciele distributies als “open” of betercommunity-based distributies. Wij sommen er slechts enkele op. Voor uitleg bijde meer dan honderd distro’s : http://www.distrowatch.com

Gebaseerd op http://linux.iguana.be/nl/linux/waar.php

Page 21: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 12

1.7.1 Commerciele distributies

Deze bieden de mogelijkheid om onderhoudscontracten af te sluiten, van eeneenvoudige telefonische helpdesk tot en met dag-en-nacht garantie. Zij hebbenook vertegenwoordigers in zowat alle geındustrialiseerde landen.

A SUSE LINUX - http://www.novell.com/linux/

SuSE LINUX is (vooral in Europa) een zeer populaire distro vanDuitse origine. SuSE is vooral gericht op verkoop via winkels.Er is een personal en professional edition. Sedert 2004 is hetovergenomen door Novell die met SuSE LINUX een eigen Li-nuxafdeling wil opzetten. Het pakket wordt geleverd met heel

wat documentatie in de vorm van 3 of 4 handboeken, en met de hoeveelhedensoftware is SuSE LINUX ook meer dan vrijgevig. De installatie gebeurt tegen-woordig met behulp van YAST2 (Yet Another Setup Tool), een toepassing die zeergoed en snel werk verricht in combinatie met YOU (YAST Online Update). Allesopgeteld is dit dus een zeer goede en complete distro!

B RedHat - http://www.redhat.com

Dit is waarschijnlijk de meest populaire distro, vooral dan in deVS. Wel krijg je minder documentatie en software bij deze distro.

Ook valt het ons de laatste tijd op dat er veel mensen klagen over het feit datRedHat de dingen steeds net iets anders doet. Ken je veel van RedHat, dan benje niet zeker dat je aan dezelfde kennis nog veel hebt in een andere distro. Hetis normaal dat elke distro eigen software gebruikt, maar onuitgesproken regelszoals die over de bestandslocaties worden door RedHat wel eens “gebroken”:in tegenstelling tot bijvoorbeeld Mandrake en vooral SUSE LINUX houdt RedHatzich niet bepaald aan de LSB3. In 2003 heeft RedHat zich gespecialiseerd opde servermarkt. Haar wereldwijde community werd ondergebracht in een nieuwproject: Fedora. (http://fedora.redhat.com

C Mandriva - http://www.mandriva.com

Mandriva is oorspronkelijk gebaseerd op RedHat, maar veel merkje daar vandaag niet meer van. Deze distro staat heel sterk ophet gebied van bijgeleverde software. De documentatie moetspijtig genoeg wel onderdoen voor die van SuSE. Van oorsprongis Mandriva een Franse distro die erg gebruiksvriendelijk is en op

alle vlakken (buiten dan misschien de documentatie) zeer volledig is. Voor iemand

3LSB of Linux Standard Base. Meer info op http://www.linux-foundation.org/en/LSB

Page 22: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 13

die pas start met Linux is deze distro zeker aan te raden.

1.7.2 Open of community based distributies

Deze worden volledig door vrijwilligers gerund, en zijn dus de “puurste”, in dezin dat ze het strikst te ideeen van de vrije software filosofie volgen. Al dezedistributies zijn gratis van het internet te halen (is 100 procent legaal) en mogenop meerdere PC’s geınstalleerd worden.

A Debian - http://www.debian.org

Debian is zowat de oudste van de community-based distributies.Het kent een wereldwijde, actieve gemeenschap van programmeursdie de distributie continu up-to-date en stabiel houdt. Op deze dis-tributie zijn heel wat andere distro’s gebaseerd omwille van de kwa-liteit, degelijkheid en zijn strak vasthouden aan de GNU. Hoewelvroeger relatief moeilijk te installeren is dit met de nieuwe installer

‘Sarge’ nu veel vereenvoudigd. Deze distro is volledig gratis en je vindt stapelsondersteuning op het internet!

B Gentoo - http://www.gentoo.org

Prille Linuxgebruikers worden het systeem misschien beter evengewend met een van de bovenstaande distro’s, of met een di-stro die rechtstreeks van een cd-rom boot zoals Knoppix. Wilje op een bepaald moment toch een niveau moeilijker gaan enbijleren, installeer dan Gentoo. Gentoo heeft enkele pluspuntendie op zijn minst vernoemenswaardig te noemen zijn. Gentoo is

volledig gratis. Je kunt van Gentoo dus ook geen boxen kopen zoals dit kan vanRedHAT, Mandrake, SuSE en vele anderen. Gentoo compileert en installeert elkprogramma van de broncode. Dit heeft als gevolg dat de software op maat ge-maakt is van je processor. Gentoo is de distro om de laatste nieuwe software teinstalleren.

C Knoppix - http://www.knopper.net

Knoppix is een Linuxdistributie die gebaseerd is op debian. Deze distributie is eenzogenaamde live-cd. De distro staat op cd en je moet niks installeren. Gewoonbooten vanaf CD-rom en knoppix-Linux wordt in het RAM geladen. Wanneer jeeen besturingssysteem draait vanaf een cd-romstation, is het vanzelfsprekend dattoepassingen niet zo snel lopen als bij een besturingssysteem dat op de hardeschijf staat. Natuurlijk verloopt alles trager dan gewoonlijk, maar niet in die mate

Page 23: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 14

dat het ging irriteren.

Knoppix is ideaal voor de beginnende Linuxgebruiker, voor dewindowsgebruiker die eens kennis wil maken met Linux zonderiets aan zijn systeem te veranderen. Het echte voordeel vanKnoppix is dat het als een snel reddingsmiddel voor gecrashtecomputers gebruikt kan worden. Deze distributie bevat een hoopschijf- en reparatietools (ook een virusscanner voor windows) die

je toelaten zoveel mogelijk data te redden/herstellen! Vergeet niet dat het metKnoppix slechts een kwestie van minuten is eer je een volledig werkende Linuxop je scherm hebt staan! Eens de smaak te pakken, kan je knoppix ook installerenop je harde schijf.

D Slackware - http://www.slackware.com/

Deze distro is meer bedoeld voor de hardcore Linuxgebruiker.Je vindt niet onmiddellijk iets wat eigen is aan Slackware, maarje krijgt wel een zeer zuivere distro in handen. Je zult wel zelfnog heel wat moeten configureren en dit zonder grafische confi-guratietools. De installatie verloopt nog voor een groot stuk tekst-

gebaseerd (via de commandoregel). Begin niet aan Slackware als je niet bereidbent op eigen houtje op zoek te gaan naar informatie en bij te leren. Laat jeook niet teveel afschrikken: Slackware is een heel goede distro; wanneer je watLinuxervaring hebt, kan het best eens leuk zijn om ermee te experimenteren!

1.7.3 Open met commerciele sponsoring

A Ubuntu - http://www.ubuntu.com

Ubuntu is een recente distributie die snel is opgekomen in popu-lariteit. Het is gebaseerd op Debian, maar met meer up-to-datepakketten. Ubuntu wordt net als Debian door een groep vrijwil-ligers gemaakt, maar wordt gesponsord door het Afrikaanse be-drijf Canonical Software, opgericht door ondernemer en multimil-jonair Mark Shuttleworth. Ubuntu is een oud Afrikaans woord dat

“humaniteit naar anderen” betekent. Deze distributie is niet commercieel. Sterkernog, het motto is dat software vrijelijk en gratis beschikbaar moet zijn voor ie-dereen. Het kan gedownload worden en er zijn gratis cd’s te verkrijgen. Een cdmet Ubuntu kan zelfs naar je toegezonden worden, waar je ook woont en zonderverzendkosten. Er komt elke 6 maanden een nieuwe versie uit. Dat is dezelf-de periode als die aangehouden wordt voor GNOME. Deze desktopomgeving iswat standaard geınstalleerd wordt bij Ubuntu. Je kunt KDE achteraf installeren.Je kunt ook Kubuntu (http://www.kubuntu.org) gebruiken, waarbij KDE juist stan-daard wordt geınstalleerd. Ubuntu en Kubuntu hebben dezelfde basis en wordendoor dezelfde mensen gemaakt.

Page 24: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 15

B Fedora - http://fedora.redhat.com/

Toen Red Hat in 2003 besloot om zich volledig te richten op dezakelijke markt ontwikkelde ze de desktopversie niet actief ver-der uit. De ontwikkeling van de variant voor thuisgebruikers werd

verplaatst naar de gemeenschap (dat proces is overigens nog steeds bezig). Fe-dora werd geboren.

Fedora heeft buiten zijn directe functie als desktopdistributie ook nog een anderebelangrijke functie: met het Fedoraproject hoopt Red Hat een grote gebruikers-groep te creeren die actief meeontwikkelt aan Fedora. Red Hat helpt, zeker in hetbegin, nog hard mee aan de ontwikkeling, maar naarmate de tijd verstrijkt moetde gemeenschap zich steeds meer zelf ontwikkelen. Red Hat neemt hiervan allegoede ontwikkelingen over in haar serversoftware.

Ook gepatenteerde software is niet opgenomen in Fedora Core. Daardoor is on-dersteuning voor enkele dingen niet opgenomen in Fedora Core. Denk daarbijaan: het afspelen van MP3-bestanden, het afspelen van Flash-filmpjes, onder-steuning voor Java in de webbrowser ontbreekt, geen 3d-acceleratie bij ATI- enNVidia-videokaarten.

C Welke distributie kiezen?

Veel beginners vragen zich af welke distributie ze moeten gebruiken. Ik kan nietvertellen welke distributie het beste is. Het is deels een kwestie van persoonlij-ke smaak. Van de genoemde distributies zijn Fedora Core, Mandriva, SuSE enUbuntu het meest geschikt om mee te beginnen. De installatie is eenvoudig en erwordt voor gezorgd dat alles meteen werkt. Bij andere distributies moet je vaaknog het een en ander zelf doen, wat vooral voor de beginnende gebruiker eenstruikelblok kan zijn.Waar je niet op moet letten bij het uitkiezen van een distributie is het versienum-mer. Om nieuwer te lijken, gebruiken sommige makers van distributies een hogerversienummer. Zoals je kunt verwachten doen alleen commerciele dat. Waar jebeter aan kunt zien hoe nieuw een distributie is, zijn de versienummers van desoftware die erbij zit, zoals de kernel en KDE/GNOME. Dat is ook precies watDistroWatch doet.

Figuur 1.1: Tux: de mascotte van Linux

Page 25: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 16

De officiele mascotte (en het logo) van GNU/Linux is Tux de pinguin, ontworpen door Larry Ewing

in 1996 voor een logocompetitie. Linus vond dat het een pinguın moest worden. De inzending van

Larry won. Je komt hem overal tegen, soms enigszins verkleed voor de gelegenheid.

1.8 Licenties

Er zijn verschillende licenties die gebruikt kunnen worden voor open-sourcesoftware.De meest gebruikte zijn GPL (General Public License) en LGPL (Lesser GeneralPublic License) van GNU en de BSD- en MIT-licenties.De GPL-licentie bepaalt dat iedereen de software mag gebruiken (ook voor com-merciele toepassingen) en het zonder restricties verder verspreid mag worden.Het is bij verdere verspreiding wel verplicht de broncode te leveren. Bijzonderaan de GPL-licentie is dat het verplicht stelt dat software waar GPL-software ingebruikt wordt ook onder de GPL-licentie wordt uitgebracht. Als gevolg moet debroncode er ook van worden vrijgegeven. Op die manier komt het ter beschikkingvoor de maatschappij. Sommigen, vooral makers van proprietaire software, ziendit echter als het “infecteren” van de nieuwe software en zullen iets wat onder deGPL-licentie valt niet snel gebruiken. Alle GNU-software en GNU/Linux zijn voor-beelden van software die onder de GPL-licentie verspreid worden.LGPL is een iets “lichtere” variant. Het stelt niet verplicht dat software waar LGPL-software in gebruikt wordt ook onder de LGPL-licentie wordt uitgebracht. Wel ver-plicht het wijzigingen in de LGPL-delen vrij te geven. LGPL was oorspronkelijkbedoeld voor library’s, omdat die bij uitstek door veel andere software gebruiktworden.De BSD-licentie is heel eenvoudig. Het vereist dat je de naam van de auteur ver-meldt als je de software gebruikt in een ander product. Alle vormen van gebruiken verspreiding zijn zonder meer toegestaan. De besturingssystemen FreeBSDen OpenBSD en de webserver Apache dragen deze licentie. De MIT-licentie isvergelijkbaar. Die vereist enkel dat een verklaring wordt opgenomen waarin al-le aansprakelijkheid van de auteur voor schade, in welke vorm dan ook, wordt

Page 26: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 17

afgewezen.

1.9 Het vinden van informatie

Dit hoofdstuk geeft een aantal mogelijkheden die je kunt aflopen als je op zoekbent naar informatie over een bepaald GNU/Linuxgerelateerd onderwerp

1.9.1 Website van de distributie

Vaak is op de website van de distributie informatie te vinden. Voor informatie overdistributiespecifieke zaken is dit de aangewezen plaats om te kijken. Zo heeftbijvoorbeeld de distributie Gentoo uitstekende online documentatie. De delen dieniet specifiek zijn voor Gentoo, kun je ook gebruiken voor een andere distributie.

Ubuntu heeft ook een uitstekende hulp: https://help.ubuntu.com/ biedt eenonline documentatie aan https://help.ubuntu.com/community/ gaat een stap-je verder en biedt ook community-supported artikelen aan. Nederlandstalige ge-bruikers kunnen ook terecht op : http://www.ubuntu-nl.org/ubuntu-nl/

Buiten de officiele site van Ubuntu kun je ook heel wat info vinden op :

• http://doc.gwos.org/index.php/Main Page

• http://ubuntuguide.org

• http://www.linuxdocs.nl

1.9.2 Linux Documentation Project

De hoofdpagina van TLDP, The Linux Documentation Project, is http://www.

tldp.org. (Er zijn vele mirrors van gemaakt, dus er zijn nog wel meer URL’s voor.)Je kunt er o.a. HOWTO’s, guides en manual pages op vinden. Veel informatiedie op het TLDP te vinden is, kan ook op de harde schijf geınstalleerd worden.Linuxgazette is een aanvulling op deze howto’s http://linuxgazette.net/.Een aanrader voor Nederlandstaligen is http://doc.nl.linux.org/

1.9.3 HOWTO

In een HOWTO staat informatie over een specifiek onderwerp. Zoek je bijv. in-formatie over fonts, kijk dan eens of je een font HOWTO kunt vinden. Let wel opde datum van de documenten! Sommige zijn jaren oud. De informatie kan danachterhaald en niet meer van toepassing zijn.Installeer je de HOWTO’s, dan worden ze geplaatst in /usr/share/doc/HOWTO/ of

Page 27: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 18

(bij distributies die zich niet zo goed aan de Filesystem Hierarchy Standard hou-den) in /usr/doc/HOWTO. Het zijn tekstbestanden, dus ze zijn met elke teksteditorof less te bekijken.

1.9.4 Manual pages

Een manual page bevat volledige informatie over een bepaald programma, be-stand, libraryfunctie e.d. De manual pages zijn ingedeeld in acht secties, te we-ten:

• user commands

• system calls

• functions and library routines

• special files, device drivers and hardware

• configuration files and file formats

• games and demos

• miscellaneous character set, file system types, datatype definitions and soon

• system administration commands and maintenance commands

Het is aan te raden de manual pages te installeren op je harde schijf. Dezebestanden bevatten een bepaalde opmaak. Bekijk ze met het programma man.Wil je bijv. weten hoe het configuratiebestand /etc/crontab in elkaar zit, typ danman 5 crontab. (Als je geen onderdeel opgeeft, dan krijg je de manual page methet laagste onderdeelnummer te zien.) Voor verdere informatie over het gebruikvan manual pages typ man man.

1.9.5 Info pages

Deze zijn vergelijkbaar met manual pages, maar de informatie is vaak meer up-to-date. Mits geınstalleerd, zijn de info pages te vinden in /usr/share/info of /usr/info.Gebruik info om ze te bekijken. Hoe je info gebruikt, staat in info info.

1.9.6 /usr/share/doc

Hier vind je de documentatie van geınstalleerde software. Heb je bijvoorbeeldgaim geınstalleerd, dan staat de bijbehorende documentatie in /usr/share/doc/gaim-versie, met in plaats van versie het versienummer. Bij distributies die zich niet zogoed aan de Filesystem Hierarchy Standard houden, zou dit ook in /usr/doc kun-nen staan.

Page 28: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 19

1.9.7 Nieuwsgroepen en forums

Als je de benodigde informatie niet kunt vinden of als je er echt geen hout van be-grijpt, kun je ook terecht in nieuwsgroepen over GNU/Linux zoals nl.comp.os.linux.overigof be.comp.os.linux De hele nl.comp.os.linux-boom staat bekend als NCOL en deVlaamse als BCOL.Je kunt ook tussen oude nieuwsberichten rondzoeken op http://groups.google.com.Wellicht heeft iemand al eens een interessant bericht gepost.Vergelijkbaar met nieuwsgroepen zijn forums. Op de website van Gentoo (eenGNU/Linuxdistributie) staat er een die zich heeft ontpopt tot een van de bestevan dit moment: http://forums.gentoo.org. Het ubuntuforum is ook aan eenopmars bezig: http://ubuntuforums.org/.

1.9.8 Het web

Informatie die niet direct in een van de vorige bronnen te vinden is, kan nog welop andere lokaties op het web staan. Een goede zoekmachine is http://www.

google.com. Op http://www.google.com/linux kun je zoeken op GNU/Linux-gerelateerde sites. De online encyclopedie Wikipedia (http://www.wikipedia.org) bevat ook veel nuttige (achtergrond)informatie. Het meeste is te vinden opde Engelstalige pagina’s.

1.9.9 Boeken

O’Reilly heeft veel goede boeken over het gebruik van GNU/Linux programmeer-talen en allerlei GNU-software uitgebracht. Je herkent ze direct door hun wittevoorkant met een of ander beest erop. Een veel gelezen boek is “Linux in a Nuts-hell”. Een ander boek waar veel positieve geluiden over te horen zijn, is “RunningLinux”.

1.9.10 Tijdschriften

Een tijdschrift is een leuke manier om wat nieuwtjes en tips op te steken. Er zijner verschillende in boeken- en tijdschriftenwinkels te vinden. Enkele bekende zijn:

• http://www.linuxformat.co.uk - Engels tijdschrift

• http://www.ed-diamond.com: Linuxmagazine / France - degelijker dande Nederlandstalige versie

• http://www.linuxmag.nl - Nederlands tijdschrift

• CT is geen linuxtijdschrift ‘pur sang’ maar verwerkt maandelijks 1 of meer-dere artikelen met betrekking tot linux. http://www.fnl.nl/ct/.

Page 29: Linux Cursus Door Koen Wybo

UNIT 1. LINUX: EERSTE ONTMOETING 20

Ook online zijn er gratis tijdschriften te vinden. De bekendste in het Nederlands-talig gebied is http://www.livre.nl.Engelstalig is vooral freesoftwaremagazine bekend: http://www.freesoftwaremagazine.com/

Ook Ubuntu lanceert een gratis magazine gericht op de desktopgebruiker: http://www.fullcirclemagazine.org/.

Page 30: Linux Cursus Door Koen Wybo

Choice, the problem is choice

Neo - The Matrix Reloaded

2Verover je Desktop

2.1 Desktopdiversiteit

Elk deftig besturingsysteem biedt vandaag een gebruiksvriendelijke interface aan.Met de muis aanwijzen, klikken en slepen, vensters maximaliseren en minimalise-ren. Dat vindt iedereen evident.In de beginjaren van Linux werd er voornamelijk op de terminal gewerkt: een“DOS-achtige” omgeving die blijkbaar ook de muis overbodig vond. Met de op-komst van de windowmanagers midden jaren 90 is er veel veranderd. Toch ishet goed om te onthouden dat de echte kracht van GNU/Linux vooralsnog vaakverscholen ligt in zijn terminalkant.

Linux grafisch introduceren is moeilijk. Men beschikt immers over meerdere grafi-sche schillen die ook nog eens in ondersteuning, wijze van werken, . . . soms veelvan elkaar verschillen. (voor een breder overzicht : http://xwinman.org/) Westellen je voor aan -slechts- twee windowmanagers en drie desktopomgevingen.

Een windowmanager regelt de plaatsing van de vensters, de deco-raties van de vensters, knopjes, taakbalken, menu’tjes, pictogram-men op je desktop en veel meer. Naast windowmanagers kent

Linux ook desktopomgevingen: naast het plaatsen van venstertjes wil een DEeen complete, all-round productieve omgeving aanbieden. Zo bieden GNOMEen KDE ook een eigen emailprogramma, browser, officepakket, configuratietools,bestandsbeheerder, . . . aan.

21

Page 31: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 22

2.1.1 Desktopmanagers: GNOME, KDE en Xfce4

A GNOME

GNOME is een acroniem dat staat voor GNU Network Object Model Environment.Ooit opgestart als tegenwicht voor KDE (die eind jaren 90 nog niet onder een vrijelicentie te verkrijgen was) is het uitgegroeid tot een van de meest populaire werk-omgevingen voor UNIXen.GNOME is een volledig vrije omgeving. Niet enkel vrij te gebruiken maar ookvrij om zelf aan de slag te gaan met de broncode. GNOME omvat zowel eenwerkomgeving (desktop environment) als een ontwikkelplatform (met GTK als be-langrijkste component). Het wordt ondersteund door grote bedrijven als HP, RedHat, Novell en Sun. Het is dan ook niet te verwonderen dat zij GNOME als hunstandaardwerkomgeving promoten. Ook in ubuntu is dit de standaard.

GNOME is een desktopomgeving en kent dus een eigen ‘arsenaal’ aan program-ma’s. Een kleine greep uit de belangrijkste programma’s:

• Ekiga: een videoconferentietoepassing ook geschikt voor voIP.

• Epiphany: browser (in Ubuntu vervangen door Mozilla-Firefox)

• Evince: bekijken van PDF, PostScript, DVI en andere

• Evolution: email, agenda, taken, adressen

• Pidgin: instant messaging

• gedit: editor voor tekst met diverse handige plugins

• GIMP: bijna professioneel grafisch pakket

• Openoffice: Office-pakket

• Inkscape: vectortekenprogramma

• Nautilus: bestandsbeheer

• Rhythmbox: muziekbeheerder

• Totem: mediaspeler voor diverse audio- en videoformaten

Op gnomefiles (http://www.gnomefiles.org/) vind je heel veel GTK-gebaseerdesoftware terug.

GNOME is gebaseerd op GTK. GTK (afkorting van de GIMP Toolkit) ontstondtoen de ontwikkelaars van de Gimp niets zagen in bestaande GUI-toolkits en erzelf eentje begonnen te schrijven. De aldus ontstane toolkit bleek ook voor ande-re programma’s geschikt en werd als basis voor GNOME gekozen. Programma’sgeschreven met de GTK kunnen daardoor zonder 1 regel programmacode te wij-zigen geschikt gemaakt worden voor zowel Linux als Windows.

Page 32: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 23

website: http://www.gnome.org

Figuur 2.1: De gnome-desktop op ubuntu na installatie

B KDE

KDE is een krachtige grafische gebruikersomgeving voor Unix-werkstations, uit-gegeven onder een Open Source-licentie. Het combineert gebruiksgemak, mo-derne functionaliteit en een uitstekend grafisch design met de technologische su-perioriteit van het Unix-besturingssysteem.

Net zoals bij GNOME kent ook KDE een ontwikkelplatform: QT. De Qt-bibliotheek(ontwikkeld door een commercieel bedrijf: Trolltechh) is de basis waarop KDEbouwt. Andersom wordt de ontwikkeling van Qt ook door KDE beınvloed (mededoordat de oprichter van KDE, Matthias Ettrich, nu leider is van de ontwikkelafde-ling van Trolltech).

Een aantal KDE-programma’s:

• Konqueror: bestandsbeheerder en uitstekende webbrowser in een

• Kontact: een volledige PIM-suite bestaande uit e-mail, adresboek, agenda,notities, etc.

• KOffice: een razendsnel officepakket, dat enkele handige extra’s kent tenopzichte van OpenOffice.org en vanaf versie 1.5 ook volledig de ODF-standaardgebruikt als documentsindeling.

Page 33: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 24

• Kopete: instant messaging

• Digikam: foto’s beheren

• Een aantal indrukwekkende educatieve programma’s, zoals KStars en Kig.Het aantal breidt continu uit.

• K3b: een volledig cd-dvd brandprogramma

• Een groot aantal krachtige gereedschappen voor het werken met tekst, mul-timedia en afbeeldingen.

Met versie 4 van de QT-bibliotheken zullen KDE-applicaties heel wat makkelijkerom te zetten zijn voor andere besturingssystemen. One QT to rule them all.

website: http://www.kde.org

Figuur 2.2: De KDE-desktop op kubuntu

C Xfce4

website: http://www.xfce.org/

Xfce is een lichtgewicht desktopomgeving: ideaal voor de oudere of langzame-re machines of machines met beperkte hoeveelheid geheugen. De configuratiewordt volledig met de muis bestuurd en de configuratiebestanden worden verbor-gen voor de gewone gebruiker. Xfce is ontworpen voor productiviteit. Het laadtprogramma’s snel en voert ze ook snel uit maar is toch conservatief in het gebruikvan systeembronnen.

Page 34: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 25

Xfce levert ook een ontwikkelingsplatform voor applicaties. Behalve Xfce zelf ge-bruiken er ook andere applicaties bibliotheek-functies van Xfce zoals Mousepad(tekst editor), xfmedia muziekspeler en een Terminal emulator.

XFCE is (sedert versie 4) gebaseerd op de GTK+ 2.x toolkit. Het gebruikt Xfwmals window manager. Xfce lijkt wat op het commerciele CDE maar bij elke nieuweversie gaat deze vergelijking minder op. Xfce is twee keer totaal herschreventussen versies 2-3 en 3-4.

Een aantal Xfce-programma’s:

• Thunar: bestandsbeheer

• Orage: kalender

• Xfburn: Xfburn is een frontend voor diverse brandprogramma’s als cdrecord,cdrdao, mkisofs, enz.

• Xfmedia: een gebruiksvriendelijke mediaspeler gebaseerd op de xine-engine(audio en video).

website: http://www.xfce.org

Figuur 2.3: De XFCE4-desktop op xubuntu

2.1.2 Windowmanagers

Aan windowmanagers geen gebrek onder GNU/LinuxEr zijn er werkelijk tientallen:Twm, windowmaker, fvwm, EvilWM, LarsWM, . . . . Sommige gebruikt men op de

Page 35: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 26

desktop/server, andere op embedded systemen.

A Enlightenment

website: http://www.enlightenment.org

Enlightenment is echt een schitterende windowmanager, maar niet zo functioneel.Een leuk speeltje dus. Het doet nogal futuristisch aan, en er zijn veel mogelijkhe-den om het mooier te laten lijken, of een totaal andere look te geven.

In Enlightenment krijg je verschillende menu’tjes door met de verschillende muis-knoppen (links, rechts, midden=scrollwheel) ergens op de achtergrond te klikken.Linksonder zie je miniatuurafbeeldingen van de verschillende bureaubladen. BijEnlightenment kunnen bureaubladen zich ook nog uitspreiden over verschillendeschermen: je kan dan van het ene naar het andere scherm gaan door met demuis tegen de zijkant van je scherm te stoten. In het hokje rechtsonder komende vensters die hebt geminimaliseerd, die kan je dan meenemen van bureaubladnaar bureaublad.

Als je een goeie videokaart hebt kan je een heleboel mooie effecten aanzetten:bijvoorbeeld watergolfjes aan de onderkant van het scherm. De vensters reflecte-ren ook in de golfjes, een erg leuk effect. Je kan ook zorgen dat nieuwe scherm-pjes met een mooi effect te voorschijn komen, of wegschuiven als je van het enedeel naar het andere deel van een bureaublad gaat.

Samengevat is Enlightenment dus een schitterend speeltje voor de liefhebber,maar voor het gemiddelde kantoorgebruik minder geschikt.

Page 36: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 27

Figuur 2.4: Enlightenment-desktop (versie E17) met enkele typische programma’s

B Fluxbox

website: http://fluxbox.sourceforge.net

Fluxbox is gewoon een heel klein programma’tje en reageert ontzettend snel. Hetgeeft een vergelijkbaar effect als windows 98 op een moderne computer. Het iswel jammer dat fluxbox er niet zo supermooi uitziet. Fluxbox is niet zo windows-achtig als gnome, en vooral geliefd bij computerfreaks.

Op het eerste gezicht is fluxbox een beetje leeg. Als je fluxbox opstart krijg je ookniets meer te zien dan een achtergrond en een klein taakbalkje. Op die taakbalkzit een klokje, een desktopswitcher en vensterlijst. Je krijgt in fluxbox een menu’tjedoor met de rechtermuisknop te klikken op de achtergrond. Erg leuk aan fluxboxis dat je programma’s van bureaublad naar bureaublad kan verplaatsen door zenaar de zijkant van het scherm te slepen (desktop warping). Een ander leuk snufjezijn tabs: aan ieder venstertje zit een soort uitsteekseltje, waarmee je vensters bijelkaar kan groeperen. Best handig.

Page 37: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 28

Figuur 2.5: De ‘kale’ desktop van fluxbox. Toverwoord is rechtermuisknop.

2.2 De GNOME-desktop verkennen

.

Ubuntu maakt standaard gebruik van de GNOME-desktopomgeving. Deze zullenwe als basis gebruiken om een GUI voor GNU/Linux te demonstreren. Uiteraardpikken we in op andere omgeving/toepassingen als deze meer kwaliteit aan boordhebben dan de standaard GNOME-tools.

2.2.1 Desktop

Na het inloggen komt de gebruiker standaard in de GNOME-omgeving terecht.Dit is een grafische interface die zowel de beginnende als de ervaren gebruikerheel wat mogelijkheden biedt.De gelijkenissen met het bureaublad van MS-Windows zijn op het eerste gezichttreffend. Toch zijn er een aantal fundamentele verschillen. Op deze eigenaardig-heden/mogelijkheden gaan we nu dieper in.

Voor we van start gaan: hou er rekening mee dat de visuele vormgeving van GNO-ME volledig aangepast kan worden. Het uiterlijk van het paneel, vensterbalken,icoontjes, klikgedrag, virtuele werkbladen, . . . tot de onderliggende windowmana-ger toe.

Page 38: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 29

Figuur 2.6: De standaard-desktop van GNOME in Ubuntu.

A Wat is er anders dan bij de doorsnee desktop?

A.1 Geen iconen?

Netjes staat mooi. Daarom zijn alle applicaties terug te vinden in het bovenstenpaneel bij het menu ‘Toepassingen’. Icoontjes voor USB-toestellen (draagbareMP3-spelers, digitale camera’s, enz.) verschijnen automatisch als deze ingeplugdworden. Dit is standaard voor de Ubuntu-GNOMEdesktop. Andere distributieshouden er andere gewoontes op na. Uiteraard kan je manueel een computer-,thuis- of/en prullenbakicoon op het bureaublad plaatsen.

A.2 Virtuele Desktops

Een GNU/Linux-desktop omvat meerdere virtuele desktops. Standaard zijn ertwee ingeschakeld. Dit aantal kan altijd groter/kleiner gemaakt worden (van 1 tot36). Elk bureaublad is een exacte ‘kopie’ van uw werkelijke bureaublad, dus in-clusief startknop, taakbalk en snelkoppelingen. Op elk virtueel bureaublad kuntu programma’s openen die dan op de andere virtuele bureaubladen niet openstaan. Daarmee worden deze virtuele bureaubladen het ideale hulpmiddel om uwwerkomgeving netjes opgeruimd en overzichtelijk te houden. Via de pager rechtsnaast de taakbalk kan je makkelijk via je muis tussen de desktops wisselen. Detoetsencombinatie Ctrl + Alt + pijl links/rechts doet hetzelfde. Via menu Systeem-/Voorkeuren/Screen actions kan je de virtuele schermranden inschakelen. Dankan je door het bewegen van de muis naar de rechter-/linkerkant van het schermdoorstoten naar het volgende virtuele werkblad.

Page 39: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 30

Figuur 2.7: Een venster wordt van werkblad 3 naar werkblad 4 versleept. De muis is nietzichtbaar.

A.3 Vensters

Dubbelklikken op de menubalk van een venster maximaliseert deze. Je kan ditgedrag via Systeem/Voorkeuren/Vensters aanpassen. Zo kan een dubbelklik ookgeconfigureerd worden als oprollen.

Vensters kan je ook naar andere virtuele desktops plaatsen door op het toepas-singsicoontje of de titelbalk te klikken en dan ‘naar een ander werkblad verplaat-sen’ selecteren. Het gaat echter sneller als je via de mini-pager aan de rechterkantvan de taakbalk de voorstellingen van de vensters van het ene naar het anderewerkblad versleept.

Figuur 2.8: Snel een toepassing naar een andere desktop verplaatsen

Andere handigheidjes voor het manipuleren van de vensters zijn te ontdekkendoor met de rechtermuisknop op de titelbalk te klikken.

Sneltoetsen :

• ALT + F4 : afsluiten

• ALT + F5 : herstellen naar oorspronkelijke grootte

• ALT + F9 : minimaliseren

• ALT + F10 : maximaliseren

2.2.2 Pictogrammen

De icoontjes op je desktop zijn normaal niet zichtbaar. Wens je toch enkele vanje favoriete toepassingen op je bureaublad? Sleep deze vanuit het menu Toepas-singen naar het bureaublad.

Page 40: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 31

Mappen maak je snel aan door via de rechtermuisklik ‘map aanmaken’ te selecte-ren. Hoe je een icoon voor prullenbak, home en netwerk aanmaakt: zie hoofdstuk?? op pag. ??.

Figuur 2.9: Een wel erg grote map op de desktop. Te bereiken door de map te selecteren met derechtermuisknop en te kiezen voor ‘Pictogram uitrekken’. Sleep vervolgens aan de handgreepjestot de gewenste afmetingen (tot maximum 128x128 pixels)

2.2.3 Paneel

Het paneel komt standaard met in de linkerkant de menus voor Toepassingen,Locaties en Systeem. Direct gevolgd door een icoontje voor Mozilla-Firefox enEvolution. Aan de rechterkant is er een mededelingengebied, afsluitknop, datumen tijd.

Icoontjes kun je aan het paneel toevoegen door

a) Icoontjes vanuit het menu Toepassingen op het paneel te slepen.b) Via de rechtermuisknop ‘Toevoegen aan paneel’ te selecteren en dan ‘Toepas-

singsstarter’ te selecteren. Een compleet dialoogvenster met alle toepassin-gen verschijnt.

Page 41: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 32

Figuur 2.10:

Andere handige ‘hebbedingetjes’ kun je toevoegen. Sta met je muis op een ‘blan-co’ stukje van het paneel en selecteer via de rechtermuisknop ‘Toevoegen aanpaneel’. Een dertigtal handige applets staan standaard ter beschikking.

Page 42: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 33

Figuur 2.11:

Je kan de applets configureren door -na plaatsing op het paneel- deze via de rech-termuisknop te seleceteren en respectievelijk op ‘voorkeuren’ of ‘eigenschappen’te klikken.

Het volledige paneel aanpassen kan je door via rechtermuisknop ‘eigenschappen’te selecteren. Daar kan je de plaats, grootte, gedrag, achtergrondskleur, enz.aanpassen. Ook via de rechtermuisknop kun je het paneel verwijderen of er eentjeextra toevoegen.

Figuur 2.12:

2.2.4 Menu: Toepassingen, Lokaties en Systeem

• In het menu ‘Toepassingen’ staan uiteraard alle programma’s opgesomddie je ter beschikking staan. Tot voor kort waren dit enkele GNOME/GTK-toepassingen maar met de standaardisatie door freedesktop.org zijn daarook bijv. KDE-programma’s in terug te vinden.

• ‘Locaties’ toont je niet enkel je thuismap maar ook de laatst bezochte map-pen. Het herbergt ook de handige computermap. Je ziet ook de aangekop-pelde devices hierin verschijnen (cd, dvd, USB-stick, diverse aangekoppel-de partities, . . . ).Netwerklocaties zijn er ook te vinden en door de handige avahi-backendverloopt de verkenning van het netwerk heel vlot.

• Het systeemmenu bespreken we direct ;-)..

Page 43: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 34

2.2.5 Correct uitloggen

Correct uitloggen is een must in GNU/Linux. Dit kan je via het menu Systeem/af-sluiten.

Sleep de afsluitknop in het menu Systeem naar je paneel. Zo hebje ’m kant en klaar op je Desktop.

2.3 Je werkomgeving inrichten

2.3.1 Systeem/voorkeuren

In het menu Systeem/voorkeuren zijn er heel wat basisinstellingsmogelijkhedenvan je desktop: van een nieuwe achtergrond op je bureaublad tot het wijzigen vanhet standaardprogramma bij het invoegen van een dvd.

Opzet is dat je zelf eens op zoek gaat in de diverse menu’s en ‘experimenteert’.De meest handige opties of verborgen geheimen sommen we op.

A Het oog wil ook wat

Je GNOME-werkomgeving kun je heel vlot inrichten naar je eigen wensen enverlangens. Een paneeltje meer of minder ;-) op het bureaublad inrichten is snelgebeurd.

A.1 Werkbladachtergrond wijzigen

Gewoon met de rechtermuis klikken op het bureaublad en dan ‘Werk-bladachtergrond wijzigen’ selecteren. Vervolgens je prentje aanduiden uit

diegene die reeds aanwezig zijn of een eigen afbeelding door ‘Afbeelding toevoe-gen’ te selecteren, zoomfactor kiezen en klaar is kees. Uiteraard kun je dit ookterugvinden in menu Systeem/Voorkeuren.

Page 44: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 35

Figuur 2.13: Snel een foto toevoegen, schalen of niet, enz.

: op zoek naar een gnome-achtergrond? Probeer http://art.gnome.org

A.2 Thema

Uit het menu Systeem/Voorkeuren/Thema selecteren. Je kan extra the-ma’s installeren uit de ubuntu-reposotories (zie hfst.

‘Distributie-vreemde’ thema’s, pictogrammen, vensterkaders, elementen kun jebinnenhalen als tar.gz. Via “Thema installeren” zijn ze in een handomdraai geınstalleerd.

Figuur 2.14: Een thema kun je algemeen instellen maar ook nog eens de diverse vensters,pictogrammen, enz. apart

A.3 Oogsnoep

Wil je meer ‘oogsnoep’ en beschik je over een (ondersteunde) 3D- gra-fische kaart? Dan kan je Beryl en Emeraldthema’s installeren: een rote-

rende desktopkubus, wiebelende vensters, transparante vensters, leuke effecten,. . .

Page 45: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 36

Figuur 2.15: Met gnome-compiz-manager kun je heel snel aanpassingen aan je 3D-desktopdoorvoeren

A.4 Muis

Muis-cursor beu? Via menu /systeem/Voorkeuren/Cursor Selection kunje snel een ander nemen. Installatie van diverse muisthema’s: zie hoofd-

stuk software installeren.

Figuur 2.16: Zeg niet zomaar ‘muis’ tegen het belangrijkste aanwijsinstrument van je PC.

A.5 Geluidjes

GNOME-geluiden zijn snel aan te passen via menu /Systeem/Voorkeu-ren/Geluid. Naast het veranderen van de standaardgeluiden kan je ook

zorgen voor een visuele terugkoppeling.

Page 46: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 37

Figuur 2.17: Geluiden instellen.

A.6 Schermbeveiliging

Sommige benijden GNU/Linux omwille van zijn mooie screensavers. Stan-daard zijn er niet zo veel geınstalleerd. Je kan mooie 3D schermbeveili-

gingen aanvullen via de online softwarebronnen (zie hfst software). Schermver-grendeling behoort ook tot de opties.

Figuur 2.18: Mooie 3D screensavers.

A.7 Lettertype

Ben je het standaard bureaubladlettertype beu? Voor visueel gehandi-capten kan het beter zijn om een vetter en groter lettertype te selecteren.

Page 47: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 38

Figuur 2.19: Ook heel handig voor visueel handicaps.

B Basisconfiguratie van je Desktop

B.1 Assisterende technologie

Is heel handig voor mensen met visuele en andere handicaps. Je kan een(engelstalige) screenreader installeren alsook inzoomen op het beeld,

een schermtoetsenbord, vertraagde toetsinslag, enz.

Figuur 2.20: Assisterende technologie is heel goed ontwikkeld onder GNOME

B.2 Toetsenbordinstellingen

Naast knipperfrequentie van de muis en herhalingstoetsen vind je hierook de keuze van je toetsenbordmodel (handig voor de extra multimedi-

atoetsen), taalkeuze (azerty, qwerty, cyrillisch, enz.), extra opties en RSI-pauze.Verder extra toegankelijkheidsopties als herhaal-, kaats- en tragetoetsen.

Page 48: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 39

Figuur 2.21: Toetsenbordinstellingen

B.3 Schermresolutie

Beeldschermgrootte en -frequentie. Dit is afhankelijk van de instellingenvan xorg.conf (zie later).

Figuur 2.22: Minimale configuratie van je beeldscherm. De echte kracht zit ’m -voorlopig- nog inxorg.conf.

B.4 Verwisselbare stations en media

Welk programma wens je te zien verschijnen als je een scanner, fototoe-stel, camera, . . . aansluit.

Figuur 2.23: Minimale configuratie van je beeldscherm. De echte kracht zit ’m -voorlopig- nog inxorg.conf.

Page 49: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 40

2.3.2 Toepassingenmenu aanpassen

Je kan programma’s toevoegen/verwijderen aan het menu door met de rechter-muisknop op menu Toepassingen te klikken en ‘Menu’s bewerken’ selecteren. Demenu-editor ‘alacarte’ wordt opgestart. Je kan ook via het menu Systeem/voorkeuren/menu-indeling het programma alacarte opstarten. Je krijgt nu een simpele interface omprogramma’s aan- of uit te vinken.

Figuur 2.24:

A Toepassingenmenu: theorie en praktijk

Het gnome-menu voldoet aan de XDG-standaard (volgens de standaarden vanfreedesktop.org). Dit houdt in dat het gebruik maakt van :

• een menu-lijst

• een directory-lijst

• map(pen) vol met desktop-bestanden

Alle drie zijn xml-bestanden die volgens de XDG-standaard 1 worden opgesteld iningelezen door het menu-programma.

1http://www.freedesktop.org/wiki/Standards/menu-spec

Page 50: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 41

A.1 Menu-lijst

Ubuntu maakt standaard o.a. gebruik van de menulijsten in /etc/xdg/menus/. Me-nulijsten zijn xml-bestanden die beschrijven welke desktop-entries en directory-lijsten moeten worden opgenomen in het menu. Ook de persoonlijke menu-aanpassingenper gebruiker worden geıntegreerd. Deze zijn niet standaard opgenomen maarverschillen per gebruiker. De persoonlijke menus kun je terugvinden in /.config/menus.

A.2 Directory.list

Is een xml-bestand dat de diverse mappen in een menu benoemd. Deze is voorhet systeem terug te vinden in /usr/share/desktop-directories .

A.3 Desktop-bestand

Is op zijn beurt ook een xml-bestand dat voorziet in de naam, commando, icoon,mime-gegevens, plaats in het menu . . . van een item in het menu. De systeem-desktopbestanden zijn terug te vinden in /usr/share/applications/. Elke gebruikerkan ook zijn persoonlijke desktop-bestanden aanmaken. Deze komen dan terechtin $HOME/.local/share/applications/.

Voorbeeld van een desktop-bestand.

[ Desktop Entry ]Encoding=UTF−8Name=Text E d i t o rName[ n l ]= Tekst−e d i t o rComment= Ed i t t e x t f i l e sComment [ n l ]= Tekstbestanden bewerkenExec= ged i t %UTerminal= f a l s eType= A p p l i c a t i o nS t a r t u p N o t i f y = t rueMimeType= t e x t / p l a i n ;Icon= tex t−e d i t o rCategor ies=GNOME;GTK; A p p l i c a t i o n ; U t i l i t y ; Tex tEd i to r ;

A.4 Mime

Standaardtoepassingen die automatisch opstarten bij een bepaalde extensie (zo-als .odt, .rtf, .mp3, . . . ) worden bepaald vanuit

• “MimeType” in desktop-bestanden in /usr/share/applications (systeem) en$HOME/.local/share/applications/

• Lijst van mime in /etc/gnome/defaults.list (systeem) en $HOME/.local/share/mime/(gebruiker)

Page 51: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 42

2.3.3 Zoals jij het wil

GNOME geeft de indruk op een heel eenvoudige en rudimentaire wijze configu-reerbaar te zijn. Schijn bedriegt. GNOME kan heel wat diepgaander aangepastworden. De meeste van deze mogelijkheden worden echter voor de doorsneege-bruiker verborgen gehouden.

Wat moet je weten? GNOME maakt gebruik van de map .gconf in je /homeom je persoonlijke instellingen in op te slaan. In de mappen zelf staan opnieuwmappen met daarin xml-bestanden. Het is zeker wat zoeken om de juiste instellingvan hieruit te kunnen aanpassen. Anders uitgedrukt: je kan manueel met eenteksteditor de instellingen aanpassen. Gelukkig bestaat er een GUI ;-).

Bij het opstarten van gnome wordt de daemon gconfd-2 mee opgestart. Dezezorgt voor de onmiddellijke aanpassingen van de desktop bij het wijzigen van dexml-bestanden.

A Met gconf-editor het diepe in.

Een handige tool om diepgaand je bureaublad aan te passen is gconf-editor. Hetis niet standaard geınstalleerd maar kan via

sudo apt−get i n s t a l l gconf−e d i t o r

snel geınstalleerd worden.

Page 52: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 43

Figuur 2.25: Gconf-editor

Onder //desktop/gnome vind je heel wat instellingsmogelijkheden terug. De meestinteressante zijn :

• /apps/metacity/general/num workspaces: kun je het aantal workspaces di-rect veranderen.

• /apps/nautilus/desktop: kun je icoontjes voor je /home, prullenbak, netwerk,... zichtbaar op de desktop maken.

• /apps/nautilus/icon view: icoontjes dichter bij elkaar zetten, sorteervolgor-den, enz.

• /apps/nautilus/preferences: zitten enkele leuke bij.

• always use browser: de bestandsbeheerder met een zijpaneel om de map-pen te zien of de default ’spatial’ weergave.

• always use location entry : Nautilus met een knoppennavigatie of met eeninvoerveld.

• click policy: enkel- of dubbelklikken?

Een nieuwe tool vanaf GNOME 2.16 is het programma: hide and seek. Te down-loaden van http://getdeb.net

Page 53: Linux Cursus Door Koen Wybo

UNIT 2. VEROVER JE DESKTOP 44

Figuur 2.26: Hide and Seek: makkelijk om de ‘verborgen’ opties te manipuleren.

Page 54: Linux Cursus Door Koen Wybo

3Werken met bestanden: basis

Vooraleer we je de basis van bestanden bijbrengen: een eerste kijk op ‘de zwartedoos’: de console. Voor window-gebruikers doet het denken aan DOS maar daneentje op steroıden. Verder in dit hoofdstuk een diepere uitwerking van het linux-bestandssysteem.

3.1 GNU/Linux-bestandssysteem

3.1.1 Bestandsstructuur

GNU/Linux heeft een hierarchische bestandsstructuur. Root is het startpunt (voor-gesteld door “/”). Hieronder bevinden zich de mappen.

Handig om te weten:

• Een verschil met DOS/Windows is dat Windows gebruik maakt van de ”\”(backslash) terwijl het bij GNU/Linux een ”/” (slash) voorstelt.

• Onder GNU/Linux kun je tot 255 karaktertekens (ext2) invoeren voor eenbestandsnaam en dit met meerdere punten.

• GNU/Linux is hoofdlettergevoelig. Hoofdletters en kleine letters worden inbestandsnamen als verschillende tekens gezien. Daarom zijn bestand.txten BESTAND.txt twee verschillende bestanden. ls is een commando, LS iseen fout.

• Het is heel lastig werken met spaties in console (niet aan te bevelen maarwel mogelijk). Een bestandsnaam met spaties moet je tussen dubbele aan-halingstekens plaatsen. Bijvoorbeeld: mkdir “Mijn Documenten”. Bovendien

45

Page 55: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 46

is het beter een aantal tekens niet te gebruiken: een aantal daarvan zijn !*$ & #.

• Extensies zijn niet verplicht maar wel handig. Via console firefox opstartenis dus gewoon “firefox” en niet “firefox.exe”. Uitvoerbare bestanden wordenaan het einde van de bestandsnaam door een asterisk ‘*’ gemarkeerd wan-neer je het commando ls -F geeft. Backupbestanden eindigen op een tilde‘∼’. Een bestand waarvan de naam begint met een punt wordt als verbor-gen aangemerkt.

Als je distributie de LSB-standaard volgt dan beschik je zeker over volgende map-pen waarvan de inhoud reeds bepaald is.

• “/bin”: commando’s die je kunt intypen in de shell.

• “/dev”: bestanden die de hardware in het systeem representeren.

• “/etc”: configuratiebestanden van het systeem.

• “/home”: de mappen van de gebruikers in het systeem.

• “/lib”: additionele bibliotheken.

• “/opt”: optionele grote programma’s die voor iedereen toegankelijk zijn (meest-al in een eigen map).

• “/sbin”: commando’s die alleen de root kan intypen in de shell.

• “/etc/init.d”: scripts voor het opstarten.

• “/tmp”: tijdelijke bestanden.

• “/usr/bin”: algemeen toegankelijke programma’s.

• “/usr/doc”: documentatie.

• “/usr/man”: alle manual pagina’s.

• “/usr/src”: brondcode van applicaties.

• “/var”: log-, spool- en tijdelijke bestanden.

Wat opvalt is dat de mapnamen heel kort zijn vergeleken bij Windows. Linux on-dersteunt wel lange bestandsnamen, maar korte directories zijn veel makkelijker.Vooral omdat er nog steeds veel in de console wordt gewerkt en snel naar map-pen gaan is dan wel handig: ‘cd /opt/kde/bin’ is toch makkelijker dan eerst op zoekte gaan naar de juiste schijf en dan pas op zoek naar de juiste map. Bovendienkent de console onder linux automatische bestandsaanvulling (via de TAB-toets)wat het allemaal nog makkelijker maakt. Linux kent geen harde schijven als eenD: of E:. De harde schijven zijn ‘vastgeschroefd’ (mounten) aan het systeem envinden hun plaats in de mappenstructuur.

Page 56: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 47

A Speciale mappen

Binnen GNU/Linux bestaan er twee speciale mappen: /dev en /proc. De /dev mapdient om rechtstreeks randapparatuur aan te spreken.De /proc map is een “pseudo-filesystem”, het bestaat niet echt op een van je fy-sieke devices. /proc kan worden gebruikt om configuratiegegevens uit te halen(hoeveelheidvrij geheugen, hardwareinfo, status van het systeem,. . . ), maar ookom “at runtime” systeemparameters te wijzigen (routing aan/uitzetten, gebruik vande hardware aanpassen,. . . ). Het proc bestandssysteem bevat informatie over hetsysteem en draaiende processen. Een aantal “bestanden” in /proc zijn voor men-sen redelijk te begrijpen (probeer cat /proc/meminfo of cat /proc/cpuinfo) terwijleen aantal anderen uit een vreemde verzameling cijfers bestaat. Vaak makensysteemutility’s hier gebruik van om informatie bijeen te vergaren en het je op eenwat begrijpelijker manier te presenteren.

3.2 Devices

De Linux kernel heeft tot taak met alle apparaten (devices) te praten, zoals hardeschijven, floppy drives, cdrom drives, de printer, de muis, de geluidskaart en noemmaar op. Om op een eenvoudige manier te kunnen aangeven over welk devicehet gaat, hebben alle devices een apart nummer gekregen. Of eigenlijk tweenummers, een soort-nummer (major device number) en een volgnummer (minordevice number). Maar mensen hebben veel liever namen dan nummers, dus er iseen hele rij bestanden voorhanden met een ‘normale’ naam, die ‘doorverwijzen’naar het juiste device number. Die bestanden heten de device files en ze staanallemaal bij elkaar in de /dev map.

Een paar voorbeelden:

• /dev/audio: een van de manieren om naar de geluidskaart te refereren.

• /dev/lp0 t/m lp3: de parallelle printerpoorten (line printers);

• /dev/fd0 en fd1: de floppy drives;

• /dev/hda1 t/m hdh20: de IDE harddisks, de echte harde schijven wordenaangeduid met de letters a t/m h, de partities op die schijven met de getallen1 t/m 20. Er kan dus verwezen worden naar de derde partitie op de tweedeharde schijf met /dev/hdb3;

• /dev/sda1 t/m sdh16: de SCSI disks, aanduidingen hetzelfde als de IDEharddisks; /dev/scd0 t/m scd7: de SCSI CDROM drives.

Voor IDE schijven geldt de volgende ‘nummering’:

• /dev/hda - eerste schijf (master) op de eerste (primaire) controller;

• /dev/hdb - tweede schijf (slave) op de eerste (primaire) controller;

Page 57: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 48

• /dev/hdc - eerste schijf (master) op de tweede (secundaire) controller;

• /dev/hdd - tweede schijf (slave) op de tweede (secundaire) controller, enz.

Een of meer hiervan kunnen eventueel IDE/ATAPI CDROM drives voorstellen.Een vaak voorkomende situatie is een harde schijf /dev/hda en een CDROM /de-v/hdc. (In het ‘dagelijks spraakgebruik’ wordt /dev vaak weggelaten en heeft menhet over “hda”).

Elk fysiek apparaat dat aan een Linux systeem hangt (disks, terminals en printers)wordt als een map in het bestandssysteem weergegeven. Meestal staan ze in demap /dev. Neemt u daar maar eens een kijkje. De inhoud van de verschillendeapparaten worden gewoonlijk onder de map /mnt getoond.

gebruiker@naam−pc : ˜ $ mount / dev / cdrom / mnt / cdrom

Met dit commando koppelt u een cdrom aan uw Linux systeem, waarna u deinhoud van de cdrom kunt lezen in de map /mnt/cdrom. Dit is trouwens een nogalbelangrijk verschil in werking vergeleken bij een operating system als bijvoorbeeldDOS. Onder DOS worden de randapparaten bij het opstarten automatisch aanhet systeem gekoppeld. Waarom moet je de devices aan het systeem koppelen?Omdat je er restricties voor gebruikers op kan plaatsen, omdat je in realtime eenfysieke apparaat fysiek kan verwijderen van het systeem en weer aankoppelen.

3.3 The Black Box

De shell is de primaire interactievorm tussen gebruiker en hardware. Via de shellworden de commando’s en input -meestal via het toetsenbord- doorgegeven aanhet systeem.De meest populaire shell is bash (wat staat voor “Bourne Again Shell”). Het is eenvrije versie van de Bourne Shell (unix). Het voldoet grotendeels aan de POSIX-standaard 1 voor Unix-shells. Naast bash bestaan er ook nog diverse andereshells die meer of minder features hebben.

Je komt in contact met de shell via een console of terminal-apparaat. Die kun jeopstarten via Toepassingen/hulpmiddelen of ook door in te loggen op de virtueleconsoles (vanuit een grafische omgeving is dit Ctrl + Alt + Functietoets F1 tot F6).Open je binnen GNOME (of een andere windowmanager) een console dan kun jeook via de commandolijn programma’s opstarten.

Ben je nog niet ingelogd (virtuele console) dan zie je volgende output op hetscherm verschijnen

ubuntu 7.04 naam−van−mijn−pc t t yX

1http://en.wikipedia.org/wiki/POSIX

Page 58: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 49

naam−van−mijn−pc l o g i n :

Geef je login op, druk op enter, voer je paswoord in. Nu ben je ingelogd en zie jevolgende boodschap verschijnen:

gebruiker@naam−pc : ˜ $

Zoals je ziet is je gebruikersnaam vermeld die zich aan (@) naam-PC bevindt.Waarom vermelden? Als je veel wisselt tussen gebruikers is het altijd interessantom te weten welke user je nu bent en op welke server/pc je aan het werken bent(je kan bijv. ook remote inloggen op een pc).Je wordt ingelogd in je persoonlijke /home-map (zie later). Dit kan je merken aanhet tilde-teken (). Wil je het nog even checken? Voer dan het commando “pwd”uit. Dit toont je de huidige map.Het dollarteken duidt erop dat je als gewone gebruiker bent ingelogd (root is een# -teken).

Kwestie van overeenkomst: bij het vermelden van de opdrachtprompt zullen wemelding maken van de volledige lijn die verschijnt (dus gebruiker@naam-pc:˜$ )

3.4 Langzame start

Open een console binnen in GNOME en typ:

gebruiker@naam−pc : ˜ $ f i r e f o x

Daarna gewoon enteren. De webbrowser firefox opent zich. Uiteraard kan ditenkel als je ingelogd bent in een grafische omgeving als GNOME (anders krijg jeeen foutmelding dat het display niet geopend kan worden).

gebruiker@naam−pc : ˜ $ f i r e f o x h t t p : / / www. godsd iens t ig . be

De webbrowser firefox opent zich en toont de website van www.godsdienstig.be

De console is een heel snelle manier om een programma op te starten. Zo kun jeook andere programma’s opstarten via console: gimp, gedit, evolution, oowriter,. . .

Maar het kan leuker worden ;-) De Bash-shell kan wat werk uit handen voor jenemen. Typ bijvoorbeeld eens de letter oo in en druk dan op tab.

Page 59: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 50

gebruiker@naam−pc : ˜ $ oooobase o o f f i c e oomath oowr i t e roocalc oofromtemplate ooo−wrapperoodraw ooimpress ooweb

Via de tab-toets kan je bash automatisch laten raden wat er moet worden aange-vuld. Hij vult niet enkel aan met uitvoerbare programma’s maar ook met mappendie aan de criteria zouden voldoen (te herkennen aan de / op het einde van denaam).

Een leuke eigenschap is dat je kan scrollen doorheen je reeds ingevoerde com-mando’s. Zo kun je met de op- en neerpijltjes de vorige en volgende commando’soproepen.

Bash houdt ook je geschiedenis bij. Zo kun je via de toetsencombinatie Ctrl-Rgaan zoeken in je commando-geschiedenis. Nogmaals drukken op Ctrl-R levertde volgende hit op. Merk op dat men begint te zoeken van jongste naar oudsteinput.

expert: bash houdt een logbestand bij van al je input in het bestand .bash historyin je ˜map. Via Ctrl-R doorzoekt het dit bestand.

3.5 Handige toetsen bij het gebruik van de shell

Andere nuttige toestenscombinaties die te gebruiken zijn in je Bash-shell.

ctrl-c breek huidig proces af

ctrl-d voer EOF-karakter (end of file) in, sluit een shell af

ctrl-l refresh het scherm

ctrl-a naar begin van de regel

ctrl-b karakter naar links (zelfde als pijltje naar links)

ctrl-d delete het karakter onder de cursor (zelfde als delete)

ctrl-e naar einde van de regel

ctrl-f karakter naar rechts (zelfde als pijltje naar rechts)

ctrl-h delete het karakter voor de cursor (zelfde als backspace)

ctrl-k delete alles van de cursor tot het einde van de regel

ctrl-t verwissel het karakter onder de cursor met die ervoor

ctrl-u delete alles van de cursor tot het begin van de regel

ctrl-w delete het vorige woord

ctrl-s bevries de output

Page 60: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 51

ctrl-q laat de output weer doorgaan

ctrl-v karakter dat je hierna invoert wordt ingevoerd als escape code

ctrl-y voeg in wat je het laatste verwijderd hebt

Als je per ongeluk op ctrl-s druk, lijkt het alsof alles vast zit in de terminal. Je kuntdan simpelweg op ctrl-q drukken om alles weer door te laten gaan.

3.6 Enkele basiscommando’s

Hierna volgen wat basiscommando’s m.b.t. bestandsnavigatie en -beheer.

3.6.1 Gouden tip voor MANnen die vaak vergeten . . .

Standaard komt een GNU/Linux-distro met heel wat informatie. Alle info overde commando’s is terug te vinden in manuals. Deze kan je vanuit de consoleoproepen met

gebruiker@naam−pc : ˜ $ man naam−van−het−commando

Je verlaat man door op de toets “q” (quit) te drukken.

3.6.2 ls

“ls” toont je de ‘lijst’ van aanwezige bestanden in de huidige map. Sommige ter-minals kennen een extra ’kleurtje’ om aan te tonen dat het gaat over mappen,tekstbestanden, muziekbestanden, enz. “ls” op zich toont niet zoveel informatie.Met enkele opties kan je het zich al heel wat uitbreiden.

Om te zien welke opties je ter beschikking hebt, kun je - -help achter het com-mando zetten (dit geldt trouwens voor de meeste commando’s). Wil je heel watmeer info over dit commando? Hoogstwaarschijnlijk is het opgenomen in de ma-nualpages. Het commando “man ls” toont je de manual.

De - -help toont je naast het gebruik ook een tabel met de verschillende opties enuitleg. Daarin twee types opties: een met een liggend streepje ervoor, de rechterkolom bevat woorden met twee liggende streepjes ervoor. Beide opties doenhetzelfde. De opties met een liggend streepje voldoen aan de POSIX-standaard.De lange versie zijn de toevoegingen van de GNU.

Veel gebruikte opties voor ls zijn:

Page 61: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 52

• -a : voor het bekijken van verborgen bestanden en mappen.

• -l : voor meer informatie Je krijgt achtereenvolgens de permissies, het aan-tal harde links, de gebruiker, de groep, bestandsgrootte in bytes, aanmaak-datum en bestandsnaam te zien.

• -al : uiteraard kun je beide combineren

• -h : in combinatie met -l : toont je de bestandsgrootte in ‘human-readable’bewoording.

• -R : krijg je een compleet overzicht van alle bestanden in de huidige en allesubmappen.

A Wildcards?

Met ls * worden alle bestanden in de huidige en een map “dieper” getoond. Het*-teken geeft een reeks tekens met willekeurige lengte aan. Naast * bestaat erook ?, wat staat voor een enkel karakter. De tekens * en ? worden wildcardsgenoemd. Met ls a* worden alle bestanden getoond waarvan de naam begint meteen a.Met haakjes kun je ook een combinatie opnemen:

gebruiker@naam−pc : ˜ $ l s −a [ ab ]∗

Dit toont je alle bestanden en mappen die beginnen met de letters a of b en ab.

Je kan ook een bereik ingeven: zij het in letters of in nummers:

gebruiker@naam−pc : ˜ $ l s −a [ a−p ]∗

Dit toont je alle bestanden en mappen die beginnen met de letters a, b, c, . . . toten met p.

Linux is, net als alle andere Unices, hoofdlettergevoelig. Hierdooris file een ander bestand dan File, terwijl dat onder Windows het-zelfde bestand zou zijn.

3.6.3 cd

“ cd” of change directory zorgt voor het veranderen van map

cd /home/gebruiker/Desktop brengt je naar de Desktop van de gebruiker. Ben jeechter reeds in /home/gebruiker dan kan een simpele “cd Desktop” ook de trucdoen.

Page 62: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 53

Andere handige weetjes

• cd .. (en dus niet cd..) brengt je naar de bovenliggende map terug. (.. staatvoor de bovenliggende map, een enkele punt is de huidige map)

• cd / ga naar de / van het systeem

• cd /etc ga naar de map /etc

• cd ∼. brengt je snel naar je home-map.

Ben je je weg eventjes kwijt en weet je niet meer in welke map je bent? “pwd”geeft je het antwoord.

3.6.4 cp en rm

“cp” is het commando om te kopieren cp [opties] BRON BESTEMMING

gebruiker@naam−pc : ˜ $ cp t e k s t . t x t / home / gebru ike r / Desktop

Kopieert het bestand tekst.txt naar home/gebruiker/Desktop.

Je kan ook meerdere bronnen opgeven:

gebruiker@naam−pc : ˜ $ cp t e k s t . t x t t eks t2 . t x t t eks t3 . t x t / home /gebru iker / Desktop

Of waarom niet een volledige map met inhoud (inclusief submappen). Hiervoorschakel je de optie -R in.

gebruiker@naam−pc : ˜ $ cp map−met−bestanden −R home / gebru iker /Desktop

Merk op: het commando cp overschrijft zonder waarschuwing ge-lijknamige bestanden

Zijn ‘broertje’ is rm. Remove of verwijderen.

gebruiker@naam−pc : ˜ $ rm t e k s t . t x t

Met de -r optie verwijder je volledige mappen met al hun inhoud.

Page 63: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 54

3.6.5 mv

Met mv (move) kun je hele mappen verplaatsen naar waar je maar wil.

gebruiker@naam−pc : ˜ $ mv t e k s t . t x t / home / gebru ike r /

Verplaatst het bestand tekst.txt naar de home-map van gebruiker.

mv wordt ook gebruikt om bestanden te herbenoemen.

gebruiker@naam−pc : ˜ $ mv t e k s t . t x t inhoud . t x t

Verandert de naam van het bestand tekst.txt naar inhoud.txt.

In combinatie

gebruiker@naam−pc : ˜ $ mv t e k s t . t x t ˜ / inhoud . t x t

Wordt het bestand tekst.txt verplaatst naar de home-map van gebruiker en wordthet hernoemd tot inhoud.txt. Met de optie -i wordt er eerst om toestemming ge-vraagd indien het bestand reeds bestaat.

3.6.6 mkdir en rmdir

“mkdir” gebruik je om een nieuwe map aan te maken.

gebruiker@naam−pc : ˜ $ mkdir t e k s t

Maak in de huidig map een nieuwe map aan genaamd tekst.

Je kan het ook combineren en in 1 keer meerdere mappen aanmaken.

gebruiker@naam−pc : ˜ $ mkdir t eks t1 / home / gebru ike r / Desktop /teks t2

mkdir heeft een foutmelding als er een bestaande map zou worden nieuw aange-maakt.

rmdir is het verwijderen van mappen indien ze leeg zijn. Zijn ze niet leeg dan wordtde map niet verwijderd. Voor een volledige verwijdering van map met inhoud kan“rm -r” zonder vragen de klus snel klaren.

Page 64: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 55

3.7 Bestandseigenaarschap

Ieder bestand heeft twee eigenaren — een gebruiker en een groep. Het voorbeeldhiervoor is wat verwarrend, aangezien er zowel een groep met de naam root alsook een gebruiker root is. Groepen zijn gewoon verzamelingen gebruikers aan wiecollectief permissie is verleend om een gedeelte van het systeem te benaderen.Een goed voorbeeld is een groep spellen. Je zou bijvoorbeeld je systeem zokunnen hebben ingesteld dat alleen de mensen in een groep games permissiehebben om spellen te kunnen spelen. Daarvoor moeten de uitvoerbare bestandenvan de spelletjes uiteraard ook in de groep ‘games’ zitten.

3.8 GNU/Linuxbestandspermissies

3.8.1 Inleiding tot bestandspermissies

Linux is een multi-user besturingssysteem waarbij gebruikers kunnen opgevenwie er toegang (permissie) heeft tot een bestand. Elke gebruiker heeft een uniekgebruikersnummer dat hem identificeert. Gebruikers horen bovendien tot een ofmeer gebruikersgroepen. Hiermee is het mogelijk om bestanden voor een groepgebruikers toegankelijk te maken. Deze eigenschap van Unix-varianten zoals Li-nux, maakt het delen van bestanden binnen een groep eenvoudig. Om te zienwelk gebruikersnummer u heeft en tot welke groep(en) u behoort, typt u het com-mando ’id’:

gebruiker@naam−pc : ˜ $ i d uu id =1000(koen ) g id =1000(koen ) groepen =4(adm) ,20( d i a l o u t ) ,21(fax ) ,24( cdrom ) ,25( f l oppy ) ,26( tape ) ,29( audio ) ,30( d ip ) ,44( video ),46( plugdev ) ,100( users ) ,106( lpadmin ) ,110( scanner ) ,113( nvram ),114( admin ) ,1000( koen ) ,1001( burn ing ) ,1003( l i n u x )

Permissies voor lezen (r van read), schrijven (w van write) en uitvoeren (x vanexecute) kunnen per bestand gezet worden voor de eigenaar, groep en anderen.U kunt het commando ‘ls -l’ gebruiken om de permissie-indicatoren te zien.

gebruiker@naam−pc : ˜ $ l s − l bestand . t x t−rw−r−−r−− 1 koen koen 0 2007−02−27 15:27 bestand . t x t

De eigenaar van bestand.txt is de gebruiker koen en het bestand is onder beheervan de groep koen. De permissie-indicatoren -rw-r–r– laten de bestandspermis-sies zien. Dit bestand is leesbaar (r), schrijfbaar (w) en maar niet uitvoerbaar(x) voor de eigenaar. Voor de gebruikersgroep en alle andere gebruikers is hetbestand leesbaar (r).

Page 65: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 56

• Read betekent dat je het bestand kan inkijken

• Write betekent dan je het kan aanpassen en/of deleten

• Execute dat je het programma kan uitvoeren

Permissies betekenen iets anders voor mappen:

• Read betekent dat je de inhoud van de map kan bekijken

• Write betekent dat je bestanden kan toevoegen of verwijderen

• Execute betekent dat je informatie kan opvragen over de bestanden in demap

Het eerste karakter geeft het type van bestand aan:

• - : Gewoon bestand

• d : Directory

• c : Character device file

• b : Block device file

• s : Unix domain socet

• p : Named pipe

• l : Symbolic link

Van deze lijst zullen de types “-”, “d” en “l” het meest voorkomen in het dagelijksgebruik op uw systeem. Na het type bestand komen 3 blokken van 3 karakters diede permissies op het betreffende bestand of map aangeven: user, group, other.

De permissies zijn opgeslagen in een bitvector met drie bits voor de eigenaar,groep en anderen. De r-bit komt overeen met het decimale cijfer 4 (100); het w-bitmet 2(010) en het x-bit met 1 (001). Je kan ze ook optellen zo kom je voor eenbestand dat mag gelezen worden veranderd aan 4 + 2 = 6 (of 110).

user group otherread write execute read write execute read write execute

400 200 100 40 20 10 4 2 1

Met het commando ‘chmod’ kunnen de bestandspermissies veranderd worden.Uit veiligheidsoverwegingen kunnen alleen de root-gebruiker en de eigenaar vanhet bestand de permissies wijzigen. Het commando kan zowel met een decimaleals met een symbolische weergave werken om de gewenste permissie te krijgen.De symbolische weergave is [ugoa][+-][rwx]. Een argument bestaat dus uit een

Page 66: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 57

van de letters u (van user, eigenaar), g (groep), o (van others, anderen) of a (alle,zowel u als g en o) gevolgd door een + (toevoegen) of - (verwijderen) en daarna desymbolische weergave voor de permissie r (lezen), w (schrijven) of x (uitvoeren).Om het bestand ”bestand.txt” schrijfbaar te maken voor alle gebruikers typt u:

gebruiker@naam−pc : ˜ $ chmod a+w bestand . t x t

of

gebruiker@naam−pc : ˜ $ chmod 666 bestand . t x t

Het commando ‘chmod 644 bestand.txt’ zou de permissie weer herstellen tot de“normale” situatie: lees- en schrijfbaar voor de eigenaar en alleen leesbaar vooralle andere gebruikers.

Het gaan naar een andere map (met het commando ‘cd’) is het-zelfde als het uitvoeren van de map. De “normale” permissie vooreen map is dan ook 755 en niet 644.

Het commando ‘chown’ kan enkel door root gebruikt worden.

3.8.2 Attributen

Naast de standaard rechten, is er nog 1 bit die gebruikt kan worden om bijkomen-de aanpassingen te doen: setuid & setgid

De setuid en setgid worden voorgesteld door 4000 en 2000 respectievelijk. Dezebits laten programma’s toe om bestanden te openen en processen te benade-ren die anders niet toegankelijk zouden zijn. Ze krijgen standaard de gid of uiddie ingesteld is voor dat bestand.(bvb root rechten voor het passwd commando)Wanneer de gid voor een map is ingesteld, krijgen alle nieuw aangemaakte be-standen of directories de groep van de bovenliggende map.De guid bit weergegeven met een ”s” (of een S indien het bestand niet executableis) of de plek van de groeps execute bit.De suid bit weergegeven door een ”s” (of een ”S” indien het bestand niet executa-ble is door de eigenaar) op de plek van de executable bit van de eigenaar.

A Sticky Bit

Deze bit wordt octaal voorgesteld door 1000. Deze bit zorgt ervoor dat enkel deeigenaar van een bestand, dat betreffende bestand kan verwijderen. De sticky bitwordt getoond door een “t” (of “T” als het bestand niet executable is) op de plekvan de others execute bit.

Page 67: Linux Cursus Door Koen Wybo

UNIT 3. WERKEN MET BESTANDEN: BASIS 58

Page 68: Linux Cursus Door Koen Wybo

4Systeembeheer: software

Er zijn -ruw genomen- drie manieren om software te installeren op GNU/Linux.

1. gebruik maken van de software die geleverd wordt door je distributie

2. het compileren van broncode tot volledig werkende programma’s

3. gebruik maken van de software die geleverd wordt door een andere distri-butie of bedrijf.

De nummering vertegenwoordigt ook een appreciatie van te verkiezen bron. Hetis sterk aan te raden om de software te gebruiken die je distributie levert endit binnen de geınstalleerde versie. De meeste software is namelijk ook gebon-den aan gedeelde bibliotheken die per nieuwe release mee geupdate worden.

4.1 Software van Ubuntu in een deb-je

4.1.1 Software in deb-formaat

Ubuntu (en GNU/Linux in het algemeen) kent een eigen manier om software teinstalleren. Vergeet vooral hoe je software moet installeren op andere besturings-systemen.

Ubuntu kent letterlijk duizenden softwareprogramma’s en -bibliotheken. Alle soft-ware wordt aangeleverd in een specifiek bestandsformaat: het deb-formaat. Meest-al kom je er niet mee in aanraking als je gebruik maakt van de standaard installa-tieprogramma’s. 1

1Ubuntu heeft het software-installatiemechanisme overgeerfd van Debian. Deze komt

59

Page 69: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 60

Deb-pakketten kun je vanop verschillende plaatsen verkrijgen en van hieruit in-stalleren:

• ben je aangesloten op het internet dan kun je ze automatisch binnenhalenvan speciale http- en ftp-servers. Dit is standaard reeds ingesteld en je hoeftverder enkel maar de installatiesoftware te gebruiken om er gebruik van tekunnen maken.

• via cd-rom en dvd

• als lokaal bestand

Het is sterk aan te raden om de software te gebruiken die je distri-butie levert en dit binnen de geınstalleerde versie.

4.2 Software installeren en verwijderen

4.2.1 Software installeren met synaptic

Synaptic is een grafisch programma voor het installeren van ubuntu-pakketten. Jekan het opstarten via menu /systeem/beheer/synaptic. Je zal het root-paswoordmoeten opgeven. (of van een gebruiker die lid is van sudoers)

met een uiterst krachtige software-installatie tool: het apt-systeem. (Advanced PackagingTool). Het .deb formaat dat hierbij gehanteerd wordt, is specifiek voor Debian (en Ubuntu).Een deb-pakket is een tar-gezipt bestand. Neem je een kijkje in een deb-pakket dan zie jetwee tar-gezipte bestanden: control.tar.gz met alle instructies, beschrijvingen, aanvullendescripts, enz. om te installeren. Het pakket data.tar.gz bevat diverse mappen met binairebestanden, configuratie-bestanden, desktop-icoontjes, enz. Het installatieprogramma paktdit deb-pakket uit, leest de instructies, voert ze uit, pakt de gecomprimeerde data-mappenuit en ‘gooit’ ze op je harde schijf.

Er bestaat geen programma ‘apt’ maar wel diverse hulpprogramma’s om het installatie-procede te beınvloeden. Ze bevatten meestal allemaal de letter APT. Zo heb je apt-get,apt-cache, enz. Deze zijn op hun beurt weer de onderliggende programma’s voor grafischeapplicaties als synaptic (Gnome/GTK) en adept (KDE).

Page 70: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 61

Figuur 4.1: De grafische interface van synaptic

A Zoeken, aanvinken, toepassen

Software installeren is heel gemakkelijk.

1. Via de zoekknop kun je termen/titels opgeven om te zoeken. De meestenzullen genoeg hebben aan zoeken op naam of naam en beschrijving.

2. Dubbelklik op het gewenste pakket.

3. Klik op de ‘uitvoeren’-knop

De afhankelijkheden van het pakket worden nagegaan en automatisch mee geınstalleerd.Is het een grafisch pakket dan vind je het terug in het toepassingenmenu.

B Synaptic configureren

In vogelvlucht:

• Via synaptic kan je ook makkelijk je lijsten updaten via de herladen-knop.

• Het systeem bijwerken is ook zo gebeurd met de systeem-bijwerken-knop.

• Een cd-rom/dvd als bron toevoegen, kies in het menu Bewerken voor cd-rom toevoegen.

• Andere fine-tuning gebeurt via het menu Instellingen/voorkeuren.

Page 71: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 62

4.2.2 Software installeren met de console

Synaptic is een grafische schil die een beroep doet op niet-grafische program-ma’s. Zo kun je alle functies ook via CLI oproepen.

• sudo apt-cache show naam-pakket : pakket zoeken

• sudo apt-get install naam-pakket : installeren

• sudo apt-get remove naam-pakket : verwijderen

• sudo apt-get update : update van de lijsten

• sudo apt-get upgrade : doorvoeren van de updates en de pakketten op-waarderen

• sudo apt-get dist-upgrade : volledige update

• sudo apt-get clean : verwijder gedownloade pakketten van je harde schijf

De apt-programma’s zijn gebaseerd op dpkg. Dit is de standaard Debian Packa-ger. Leuke opties:

• sudo dpkg -l naam : geeft een lijst van mogelijk installeerbare pakketten

• sudo dpkg -i naam-pakket.deb : installatie van pakketten

• sudo dpkg -r naam-pakket : verwijderen van pakketten uitgezonderd de con-figuratiebestanden

• sudo dpkg –purge naam-pakket : volledig verwijderen van pakket inclusiefconfiguratiebestanden

• sudo dpkg -s naam-pakket : krijg je naast de status van een pakket ook heelwat extra info (afhankelijkheden, maintainer, enz. )

• sudo dpkg -L naam-pakket : geeft een volledige lijst weer van alle bestandendie vanuit het pakket geınstalleerd zijn op je harde schijf

Kijk eens in de manual van dpkg om een volledige lijst met mogelijk opties te zien.

4.2.3 Softwarebronnen en Ubuntu-componenten

De Ubuntu software repositories bevatten duizenden software pakketten onder-verdeeld in 4 “componenten”, op basis van de support die Ubuntu levert en of zevoldoen aan onze “Free Software Philosophy”. De componenten heten “main”,“restricted”, “universe” en “multiverse”. Je kan ze aanvinken vanuit synaptic. Kiesin het menu instellingen/softwarebronnen. In het tabblad Ubuntu Software kun jeje keuze aanvinken.

Page 72: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 63

Figuur 4.2: Snel je softwarebronnen aanpassen kan vanuit synaptic

A Main

De main distributie componenten bevatten vrije software, deze kunnen vrij gere-distributeerd worden, ze krijgen 100% support van het Ubuntu team. Hierbij zitde meest populaire en betrouwbare open source programma’s die je kan vinden,Veel van deze software wordt geınstalleerd wanneer je Ubuntu installeert. Vandeze software krijg je veiligheids updates en technische support.

B Restricted

De restricted component is gereserveerd voor software die vrij vaak gebruiktwordt, en die ondersteund wordt door het Ubuntu team ook als is het niet te vin-den onder een compleet vrije licentie. Weet dat niet de volledige support kanverzekerd worden door ubuntu. Ubuntu kan enkel de problemen melden aan deeigenlijke auteurs.

C Universe

In universe vind je zowat alle open source software, en software beschikbaar on-der een varieteit van vrije tot minder open licenties. Deze laat zich vlot installeren,werkt goed samen met de software uit main maar zonder de garantie op veilig-heidsupdates en support. Universe bevat duizenden softwarepaketten waardoorgebruikers de diversiteit en flexibiliteit geleverd door de open source wereld krijgenop een stabiele Ubuntu kern.

D Multiverse

De “multiverse” component bevat software die niet vrij is, dit wil zeggen dat delicentie voorwaarden niet overeenkomen met de Ubuntu “main” Component Li-centie Politiek. Het is aan de gebruiker om na te kijken of je het recht hebt opdeze software in de licentie voorwaarden van de copyright-houder. Deze softwarewordt niet gesteund en kan ook niet hersteld of geupdate worden. Gebruik enkel

Page 73: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 64

op eigen risico.

E Backports

Daarbuiten bestaan er nog Backports: software van deze repositorie is nog niet zouitgebreid getest als de software die in main zit maar het bevat nieuwere versiesvan sommige programma’s die nuttige mogelijkheden zouden kunnen bevatten.

F Broncode in Ubuntu

Standaard zijn de Universe, Multiverse en Backports broncode niet ingeschakeld.

4.2.4 Repository’s toevoegen/verwijderen

Waar moet ubuntu-linux zijn pakketten ophalen? Dit staat beschreven in het be-stand /etc/apt/sources.list.

A Anatomie van een pakketbronlijn

In /etc/apt/sources.list vind je diverse lijnen met volgende syntax:

deb h t t p : / / a rch ive . ubuntu . com/ ubuntu / f e i s t y main un iverse

De regel is als volgt opgebouwd

• De regel begint altijd met deb of met deb-src (wat staat voor bronpakkettenom te compileren)

• Het tweede gedeelte van de regel bestand uit een URL, in dit geval http://archive.ubuntu.com/ubuntu/ . Merk op: de slash op het einde. Dezelokatiebepaling kan uiteraard ook verwijzen naar de harde schijf (via file),een beveiligde verbinding (ssh) of een cdrom of dvd (cdrom). Gebruik in hetlaatste geval apt-cdrom om deze toe te voegen aan de sources.list.Op de lokatie staat een indexbestand (genaamd Packages.gz). Via de ver-sie (zie volgende) wordt men doorverwezen naar de correcte Packages.gz

• Daarna volgt de versie van Ubuntu, in dit geval feisty (niet altijd aanwezig).Weet ook dat er ‘speciale’ varianten bestaan van je versie. Zo zijn de versie-updates en versie-security aangeraden om toe te voegen.

• Als laatste staat er welke delen van de repository worden gebruikt, in ditgeval main en universe. Er kunnen nog meerdere componenten vermeldstaan.

Page 74: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 65

Je kan hier dus zelf pakketbronnen aan toevoegen. Wil je er tijdelijk eentje buitenwerking stellen dan kan je de regel uit‘hekken’ (een hekje vooraan toevoegen). Viade ‘source-o-matic’ van de nederlandse ubuntuvereniging (http://www.ubuntu-nl.org/source-o-matic/) kun je makkelijk je keuze aanvinken. Vul alle pull-down menu’s in, en klik vervolgens op ‘Send’. Activeer de bronnen die jij zelf wiltdoor de gewenste bronnen aan te vinken. Interessante bronnen zijn:

• Ubuntu Backports (Nieuwere software pakketten dus ook meer updates)

• Medibuntu multimedia packages (multimedia en codec)

• Canonical Commercial packages (Opera, panda beveiliging en realplayer)

Klik op de knop create sources.list en je krijgt een nieuwe pagina met daarin eenhoop tekst, dit is de bronnenlijst die je kan overnemen in je sources.list.

Een voorbeeld van een sources.list aangemaakt voor feisty en een i386:

# Ubuntu supported packages : GPG key : 437D05B5deb h t t p : / / be . a rch ive . ubuntu . com/ ubuntu f e i s t y main r e s t r i c t e ddeb h t t p : / / be . a rch ive . ubuntu . com/ ubuntu f e i s t y−updates mainr e s t r i c t e ddeb h t t p : / / s e c u r i t y . ubuntu . com/ ubuntu f e i s t y−s e c u r i t y mainr e s t r i c t e d

# Ubuntu community supported packages GPG key : 437D05B5deb h t t p : / / be . a rch ive . ubuntu . com/ ubuntu f e i s t y un iversemu l t i ve rsedeb h t t p : / / be . a rch ive . ubuntu . com/ ubuntu f e i s t y−updatesuniverse mu l t i ve rsedeb h t t p : / / s e c u r i t y . ubuntu . com/ ubuntu f e i s t y−s e c u r i t y un iverse

mu l t i ve rse

# Ubuntu backports p r o j e c t : GPG key : 437D05B5deb h t t p : / / be . a rch ive . ubuntu . com/ ubuntu f e i s t y−backports mainr e s t r i c t e d universe mu l t i ve rse

# Medibuntu mul t imedia packages : GPG key : 0C5A2783deb h t t p : / / medibuntu . sos−s ts . com/ repo / f e i s t y f r ee non−f r ee

B Vergeet niet te updaten

Deze pakketbronnen zijn niet statisch. Zeker de versie updates en security wor-den regelmatig aangepast met nieuwere en meer veilige pakketten. Men moetdus regelmatig de pakketlijsten verversen zodat de nieuwste lijsten met softwareworden opgehaald. Dat kan je via het commando:

Page 75: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 66

sudo apt−get update

De lijsten worden ververst (merk op: de lijsten worden niet in hun geheel op-gehaald. Enkel de bestanden die staan opgesomd in Packages.diff. Zo kan erbespaard worden op bandbreedte).

Expert: In /var/lib/apt/lists staan alle lijsten opgesomd die je hebt binnengetrok-ken. Wil je een verse start? Verwijder de lijsten (niet de map partial) en doeopnieuw een apt-get update.

4.3 Anders installeren

4.3.1 Individuele deb-pakketten vanuit je browser instal-leren met gdebi

gdebi is een leuke add-on voor je browser. Zo kun je via het internet direct eenfront-end voor dpkg oproepen om pakketten te installeren.

Installeer gdebi

sudo apt−get i n s t a l l gdebi

Op bijvoorbeeld http://www.getdeb.net vind je heel wat extra handige pakket-ten voor ubuntu.

Waarschuwing: installeer enkel vanuit sites die betrouwbaar zijn!!

Page 76: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 67

Figuur 4.3: www.getdeb.net herbergt heel wat desktop-software voor ubuntu met heel recentepakketten.

4.3.2 Andere pakketten: rpm

Debian en ubuntu kunnen via het programma ‘alien’ distributievreemde pakketteninstalleren. Zo kan je pakketten van distributies die gebaseerd zijn op het rpm-formaat converteren en installeren.

Installeer eerst alien

sudo apt−get i n s t a l l a l i e n

daarna converteer je het rpm-pakket naar een deb-pakket

sudo a l i e n naam−pakket . rpm

Een deb-pakket met dezelfde naam (behalve dat het nu eindigt op .deb en niet.rpm) is aangemaakt. Je kan het vlot installeren via :

sudo dpkg − i naam−pakket . deb

4.3.3 Compileren en installeren van broncode

A Uitpakken van de gecomprimeerde broncode

Vind je op het www of op http://www.sourceforge.net interessante software maarniet in deb- of rpm-formaat? Beschik je enkel over de broncode? Dan kan jeovergaan tot het zelf compileren en installeren van de software.

De broncode wordt meestal als een tar.gz of tar.bz aangeboden. Dit is een ge-comprimeerd bestand. Uitpakken doe je snel met het commando :

t a r −xzv f naam−pakket . t a r . gz

Uiteraard kan je via file-roller op een grafische manier je tar-bestanden uitpakken.

Page 77: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 68

B Voorbereiding

Lees de README en/of INSTALL ingesloten in het gecomprimeerde bestand ofde online documentatie op de site van het project. Dit kan je snel op de hoogtebrengen van vereisten compilatiesoftware en library’s.

Om te kunnen installeren heb je nood aan diverse compilers

apt−get i n s t a l l bu i l d−e s s e n t i a l

Build-essential is een meta-package dat de meest gangbare compilers met hunafhankelijkheden installeert. Heb je echter nood aan een specifieke compiler : ziede readme ingesloten in het gecomprimeerde bestand (veel gebruikt: java, glade,python, ruby, mono, enz. ).

C Compileren en installeren: de ruwe manier

Ga naar de map van de uitgepakte broncode. In de hoofdmap voor je achtereen-volgens uit:

• ./configure

• make

• sudo make install

Het programma kun je nu via de console uitvoeren (tenzij het zich ergens instal-leert in een map die niet in PATH is opgenomen). Is het een grafisch programma:maak een bureaubladicoon en/of een menu-ingang (zie supra).

Dit is de ‘ruwe’ manier om broncode te compileren en vooral te installeren. Ditzorgt er wel voor dat de diverse binaire bestanden en de eventuele bibliotheken,afbeeldingen, enz. die mee worden aangemaakt en op diverse plaatsen op jeharde schijf terechtkomen, moeilijker gelokaliseerd en verwijderd kunnen worden.Ook weet je niet of het pakket bepaalde bestanden zomaar overschrijft. Daaromdat de debian-programmeurs graag een tussenstap maken: het creeren van eendeb-pakket om mooi te kunnen installeren en probleemloos te kunnen verwijde-ren.

D De debian manier van compileren en installeren.

Men voert alternatieve stap uit: men maakt een deb-pakket aan. Dit is het mak-kelijkst met het programma checkinstall .

Page 78: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 69

sudo apt−get i n s t a l l c h e c k i n s t a l l

• ./configure

• make

• sudo checkinstall’

• een .deb-pakket wordt aangemaakt en vervolgens automatisch geınstalleerd’.

Voordelen van deze methode: je kan het pakket mooi verwijderen als je het nietmeer nodig hebt. Bovendien kun je het deb-pakketje bewaren voor als je het bijv.wil herinstalleren.

4.3.4 Java?

Java-software is makkelijk te gebruiken: download de java-jre. Om een java-jar tevoeren, typ je in console

java − j a r naam . j a r

4.3.5 Installatiescripts

Sommige aanbieders van software komen met een installatiescript (in de vormvan een naam.sh). Dit is een shell-script dat uitvoerbare rechten nodig heeft. Omte installeren kun je ‘sudo installatiebestand.sh’ uitvoeren. Zo installeer je het vooriedereen op het systeem.

chmod 744 naam . shsudo . / naam . sh

Uiteraard is de betrouwbaarheid van dergelijke software afhankelijk van de aan-bieders. Verwijderen van de software kan soms veel tijd in beslag nemen.

4.3.6 Naar een standaardinstallatieformaat?

De laatste jaren proberen sommigen een standaard door te drukken voor instal-latie van software. Leidend moto is hierbij vaak: het moet even makkelijk worden

Page 79: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 70

om software te installeren als bij windows en mac. Tot op heden is er geen enkelproject echt doorgebroken (en is het maar de vraag of dit mogelijk/wenselijk is?).

Wie heeft het geprobeerd?

• Autopackage (http://autopackage.org/) leek een heel beloftevol pro-ject. Een eigen grafisch installatiesysteem met een duidelijke visuele feed-back dat beloofde heel makkelijk te zijn. Wie maakt hiervan gebruik? inks-cape, the gimp en gaim.

• Conory (http://www.rpath.com/rbuilder/) is een volledig crm-systeemom vanuit zowel rpm als deb een eenheidssysteem te bouwen

• CNR-1click install was voorbehouden aan de gebruikers van linspire-linux(http://www.linspire.com. Door een recente samenwerking kan het 1-clicksysteem (webgebaseerd) ook wel eens voor ubuntu-gebruikers toegan-kelijk worden.

4.4 . . . en mijn windowssoftware?

4.4.1 WINE is not (an) emulator

Wine is een open-source project (http://www.wine-hq.com) om een windows-emulatielaag te bouwen voor linux. Samen met een commerciele partner (http://www.codeweavers.com)wordt de wine-bibliotheek uitgebouwd. Zo kan windows-software bijna native op*nix functioneren.

sudo apt−get i n s t a l l wine

Page 80: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 71

Figuur 4.4: Wine kun je configureren via ‘winecfg’ waar je stations kan aanduiden, scherm,audio, enz. kan instellen

Een programma installeren doe je aan de hand van:

wine setup . exe

De installatie-procedure wordt opgestart en verloopt zoals gewoonlijk. Merk weldat niet alle windows-software kan geınstalleerd worden (zeker als er aanvullendeDLL’s nodig zijn). Merk ook op dat de legale beperkingen van windowssoftwareook onder wine geldig blijven. Om via wine geınstalleerde sofware te verwijderenvoer je (in console) ‘uninstaller’ uit. Nu opent zich een nieuw scherm dat heel hardlijkt op het Software-scherm uit Windows. Je kan hier een overzicht zien van allemet Wine geınstalleerde programma’s en je kan aanklikken wat je wil verwijderenen op ‘Remove’ klikken.

4.4.2 Programma’s die werken onder Wine

Een hele goede site met programma’s die onder Wine werken is Franks Corner(http://frankscorner.org/). Hij geeft er vaak ook nog uitleg bij hoe je diversesoftware correct kan installeren.

Page 81: Linux Cursus Door Koen Wybo

UNIT 4. SYSTEEMBEHEER: SOFTWARE 72

Page 82: Linux Cursus Door Koen Wybo

5Publicaties in LATEX

5.1 Wat en waarom?

Veel mensen gebruiken grafische teksverwerkings- en DTP-programma’s om hunteksten, cursussen, brieven, enz. te maken. Elk pakket heeft zo zijn eigen voor-en nadelen. Het bekendste pakket om onder GNU/Linux bijv. teksten op te stellenis Openoffice.org. De ‘mindere’ goden zoals Abiword en Kword presteren ookgoed 1 maar zijn -jammer genoeg- minder bekend bij het grote publiek. Grootvoordeel van alle pakketten is het gebruik van de ODT-standaard: een open ISO-gecertifieerde standaard die bestandsuitwisseling makkelijk maakt.

LATEX wijkt sterk af van de voorgaande. Het is om te beginnen geen tekstverwerkermaar eerder een typezettingssysteem. Het is geen grafisch programma maar eenprocessor die tekstbestanden met LATEX-opmaakelementen verwerkt en aflevertals DVI, PostScript, PDF of html.

Waarom LATEX? Met een WYSIWIG-programma bepaalt de gebruiker de opmaak.Met LATEX zorgt de gebruiker voor de inhoud en de indeling daarvan. LATEX bepaaltdaaruit de lay-out. De opmaakt wordt dus gescheiden van de inhoud en de ‘au-teur’ kan zich extra richten op de eigenlijke tekstinhoud (in plaats van zich druk tehoeven te maken over lay-out).LATEX-bestanden kunnen door om het even welke tekst-editor bewerkt worden.Zelfs met een simpele variant kun je dit doen. Je bent dus niet gebonden aaneen specifieke softwareproducent.

Andere voordelen zijn :

• Je document krijgt een professionele layout zonder dat je daar zelf veel

1Zo is Kword heel wat beter om PDF’s rechtstreeks te importeren en te bewerken en isAbiword een heel performante, no-nonsense en vinnige tekstverwerker.

73

Page 83: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 74

kennis dient over te hebben. Je hoeft je nauwelijks druk te maken over detechnische details.

• Het zetten van mathematische formules en ingewikkelde tabellen wordt bij-zonder goed ondersteund.

• Complexe strukturen zoals voetnoten, literatuuropgaven, inhoudsopgaven,tabellen enz. en zelfs eenvoudige tekeningen, kunnen zonder al te veelmoeilijkheden gemaakt worden.

• Het is beschikbaar voor bijna alle computersystemen, en meestal gratis ofgoedkoop.

• Niet enkel teksten kunnen doeltreffend gemaakt worden. Ook presentaties(met Beamer, zie later) of een html-variant van je tekst is snel aangemaakt.

Nadelen van LATEX:

• Binnen de door LATEX ondersteunde layouts kunnen weliswaar enige para-meters gevarieerd worden, maar ingrijpende afwijkingen van de gebruiktelayout kunnen slechts met veel moeite tot stand gebracht worden (Ontwerpvan een nieuwe ‘documentclass’).

• Het intypen van LATEX-commando’s is ingewikkelder dan het aanbrengen vanlayout met moderne tekstverwerkers, zeker als die voorzien zijn van eenmenu-besturing. Ook al omdat het resultaat van de commando’s niet directzichtbaar is.

• Het is gemakkelijker fouten te maken met LATEX dan met een tekstverwerkeren de foutmeldingen van LATEX zijn niet altijd even duidelijk.

Uit Handleiding LATEX door Piet van Oostrum

5.2 Installatie

Voor GNU/Linux bestaan er twee ’distributies’ van LATEX : TeTeX en Texlive. Omdatde maintainer van TeTeX in 2006 de spreekwoordelijke handdoek in de ring heeftgeworpen is elke toekomstgebaseerde oplossing TexLive.

Gelukkig is deze opgenomen in de repository’s en is een installatie heel gemak-kelijk:

gebruiker@naam−pc : ˜ $ apt−get i n s t a l l t e x l i v e− f u l l

Je kan uiteraard ook Texlive van cd-rom/dvd installeren. Meer info is te vinden ophttp://www.tug.org/texlive/

Page 84: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 75

5.3 Aan de slag met LATEX

5.3.1 Basisprincipe

LATEX is een niet-grafische processor die tekstbestanden met LATEX-opmaakelementenverwerkt en aflevert als DVI, PostScript, PDF of html.

Schema

LaTeX−bestandProcessing door LaTex

OUTPUT : − dvi− ps− pdf

− html

Figuur 5.1: LATEX-input naar outputproces

Vorbeeld: om het LATEX-tekstbestand om te zetten naar de standaardoutput (DVI)voer je gewoon volgend commando uit:

gebruiker@naam−pc : ˜ $ l a t e x teks tbes tand . tex

Je kan het resultaat bekijken met een DVI-viewer als evince, xdvi of kdvi.

5.3.2 LATEX-elementen in het tex-bestand

A Minimaal tex-bestand

\documentclass{ r e p o r t }%plaa ts voor het invoegen van meerdere packages en s e t t i n g s .Ook preambule genoemd .\begin{document}

Hel lo wor ld i s het bekende z i n n e t j e .\end{document}

\documentclass : is de bepaling van de aard van je document. Is het een article,report, book,

• article voor artikelen in wetenschappelijk tijdschriften, voordrachten, hand-leidingen, seminars, korte berichten, programmabeschrijvingen, uitnodigin-gen, etc.

Page 85: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 76

• artikel1,artikel2,artikel3 Als boven, maar dan met een Nederlandse layout.De Nederlandse layout is erg verschillend van de Amerikaanse.

• report voor langere stukken, die uit meer hoofdstukken bestaan, disserta-ties, scripties, etc.

• rapport1,rapport3 een Nederlandse rapport stijl.

• book voor boeken.

• boek een Nederlandse boekstijl.

• letter voor brieven.

• brief voor Nederlandse brieven (volgens de NEN-normen).

Uit zichzelf beschikt LATEX over een beperkt aantal mogelijkheden. Er is echtereen ganse waaier aan ‘plugins’ of beter ‘packages’ die je in preambule kan aan-koppelen. CTAN is een online verzameling van al deze packages2. Er bestaaner letterlijk honderden. Afhankelijk van de ‘versheidsdatum’ van je LATEX-installatiezijn de allerlaatste al dan niet geınstalleerd.

\begin{document} \end{document} : hier wordt het eigenlijk document ge-schreven.

5.3.3 Een wat uitgebreider voorbeeld

\documentclass [ a4paper ,11 p t ]{ book}\usepackage{ u t f 8 }{ inputenc}\begin{document}\chapter{P u b l i c a t i e s i n \LaTeX}\ sec t ion{Wat en waarom?}Veel mensen gebruiken g ra f i sche teksverwerk ings− en DTP−programma ’ s om hun teksten , cursussen , br ieven , enz . te maken .

Elk pakket hee f t zo z i j n eigen voor− en nadelen . Hetbekendste pakket om onder l i n u x b i j v . teks ten op te s t e l l e n i s

Openof f ice . org . De ‘ mindere ’ goden zoals Abiword en Kwordpres teren ook goed \ f oo tno te{Zo i s Kword heel wat be ter om PDF’ s rech ts t reeks te impor teren en te bewerken en i s Abiword eenheel performante , no−nonsense en v inn ige teks tve rwerker} maarz i j n −jammer genoeg− minder bekend b i j het gro te pub l i ek .

\end{document}

Er wordt gebruikt gemaakt van extra [opties] bij de \documentclass : zo wordtaan LATEX vermeld dat het uitvoerformaat A4 is en de grootte van het lettertype 11punt.

2http://www.ctan.org/

Page 86: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 77

Een eerste package wordt gebruikt: inputenc die als optie utf8 meekrijgt. Hiermeekun je niet utf8-encodings meegeven (zorg ervoor dat je editor UTF8 is)

Andere nuttige packages zijn :

• \usepackage{a4wide} (iets meer tekst op een bladzijde)

• \usepackage[dutch]{babel} (voor Nederlandstalige woordafbreking)

• \usepackage{amsmath} (uitgebreide wiskundige mogelijkheden)

• \usepackage{url} (om url’s te verwerken)

• \usepackage{graphicx} (om figuren te verwerken)

In de preambule komen ook opties voor algemene opmaak. Voor een thesis kanmen bijvoorbeeld gebruiken

• \setlength\{parindent\}{0cm} (geen inspringen eerste lijn paragraaf)

• \renewcommand{\baselinestretch}{1.2} (om de interlinie afstand watte vergroten)

Er worden \chapter en \section toegevoegd om de tekst in te delen naarhoofdstuk en sectie. Niet alle indelingen komen voor. Enkel de documentclassvan book herkent ze allemaal.

• \part

• \chapter

• \section

• \subsection

• \subsubsection

• \paragraph

• \subparagraph

Een aantal voorbeelden voor de syntax:

• \section{Titel in inhoudsopgave en in document}

• \section[Titel voor de inhoudsopgave]{Titel voor in het document}

• \section*{Titel komt niet in de inhoudsopgave (door de *)}

Er wordt gebruikgemaakt van een voetnoot via het commando \footnote{hier komt de voetnoot}

Page 87: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 78

5.4 Opmaak van tekst

Voor dit onderdeel werd uitvoerig gebruik gemaakt van ‘Inleiding tot LATEX’ van Frederik De Schrij-

ver, 13 december 2004 dat terug te vinden is op http://latex.ugent.be

5.4.1 Speciale tekens

De tekens die onderdeel vormen van LATEX-commando’s kunnen niet zomaar ge-typt worden.

% $ & # _ { } ~ ^ \ | < >

worden bekomen via respectievelijk

\% \$ \& \# \_ \{ \} \~{} \^{} \verb?\? $|$ $<$ $>$

Voor het euro-symbool moeten we nog een pakket toevoegen: \usepackage{marvosym}.We krijgen dan ¤, c, den e via \EUR, \EURhv, \EURcr, \EURtm.

Ellipsis (. . . ) kan verkregen worden via \ldots.

Verder zijn er ook nog drie soorten streepjes: -,– en —. Deze kunnen verkregenworden door een, twee of drie streepjes na elkaar te typen.

Daarnaast zijn normaal ook speciale commando’s vereist om accenten te typen.Gemakkelijker is gewoon het package inputenc te laden.

Tenslotte nog enkele speciale tekens: œ=\oe, Œ=\OE, ø=\o, Ø=\O, A=\AA,ß=\ss, ¡=!‘ en ¿=?‘.

5.4.2 Spaties

Voor spaties gelden volgende regels:

• meerdere spaties worden vervangen door een

• spaties in het begin van een paragraaf worden genegeerd

• expliciet een spatie invoegen gaat met "\ " (backslash gevolgd door spatie)

• spaties na een commando worden ingeslikt, voeg hier een expliciet spatiein

• woordgroepen, of woorden, die altijd op dezelfde lijn moeten blijven verkrijgtmen via: \mbox{dezelfde lijn}

Page 88: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 79

5.4.3 Paragrafen

Een harde enter wordt door LATEX aanzien als een spatie, een lege regel als eennieuwe paragraaf. Meerdere lege regels worden tot een gereduceerd.

Inspringen en regelafstand hangen af van de documentclass. Deze kunnen ge-wijzigd worden door bijvoorbeeld het volgende toe te voegen aan de preamble:

\setlength{\parindent}{0 pt} % geen inspringen

\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} %ruimte tussen paragrafen

LATEX zoekt zelf de beste uitvulling van de tekst. Om zelf toch een nieuwe lijn testarten kan die met \\ of \newline. Expliciet een nieuwe pagina starten kan met\newpage.

5.4.4 Lettertypes

A Lettergrootte

Er zijn tien lettergroottes. Deze kunnen op twee manieren gebruikt worden. Of-wel door \lettergrootte te typen, en in die lettergrootte verder te gaan tot ditopnieuw wordt veranderd, of een nieuwe onderdeel wordt gestart. Ofwel door detekst tussen {} te plaatsen. Dit laatste kan echter te documentopmaak in de warsturen.

• \Huge Referentietekst• \huge Referentietekst• \LARGE Referentietekst• \large Referentietekst

• \normalsize Referentietekst

• \small Referentietekst

• \footnotesize Referentietekst

• \scriptsize Referentietekst

• \tiny Refernentietekst

Page 89: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 80

Omgeving Commando

\rmfamily \textrm{xxx} Roman letters, standaard

\ttfamily \texttt{xxx} Typewriter letters

\sffamily \textsf{xxx} Sans serif letters

\upshape \textup{xxx} Upright tekst, standaard

\itshape \textit{xxx} Italic tekst

\slshape \textsc{xxx} Small Caps

\mdseries \textmd{xxx} Medium weight letters, standaard

\bfseries \textbf{xxx} Bold face

\textnormal{xxx} De Standaard

\emph{xxx} Benadrukken

B Letterstijlen

Ook voor de selectie van letterstijlen zijn er dezelfde twee opties. Alleen kan hierhet commando om van omgeving te veranderen verschillen van het commandomet {}’s.

\emph{xxx} is een speciaal commando. Als binnen een benadrukte tekst nog-maals iets benadrukt wordt, wordt het terug gewoon gezet:

\emph{Benadruk \emph{Benadruk meer} Benadruk}

5.4.5 Lijsten

Voor lijsten zijn er drie omgevingen: itemize, enumerate en description. We gevendrie voorbeelden:

\begin{itemize}

\item Een onderdeel

\item Nog een onderdeel

\end{itemize}

geeft

• Een onderdeel

• Nog een onderdeel

\begin{enumerate}

\item een

Page 90: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 81

\item

\begin{enumerate}

\item twee a

\item twee b

\end{enumerate}

\end{enumerate}

geeft

1. een

2. (a) twee a

(b) twee b

\begin{description}

\item[Term] Uitleg

\item[Nog een term] Nog een uitleg

\item Geen optioneel argument, een beetje ingesprongen

\end{description}

geeft

Term Uitleg

Nog een term Nog een uitleg

Geen optioneel argument, een beetje ingesprongen

5.4.6 Voetnoten

Voetnoten worden gegeneerd door het commando \footnote{tekst}. In dezevoetnoot3 vindt u de url van de cursus.

5.4.7 Letterlijke tekst

Om letterlijke tekst in te typen zijn er twee mogelijkheden. Ofwel via volgendeconstructie:

\verb?letterlijke tekst met rare symbolen { } %?

Hierbij moet men oppassen dat het teken waarmee de tekst wordt omlijst niet inde tekst voorkomt. Hier is dit een ?, maar andere tekens, bv. ! kunnen ook. Een

3Url wvs: http://www.sf.net/projects/cursuslinux

Page 91: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 82

andere probleem is dat de tekst die in \verb zit niet op verschillende lijnen kankomen, en dus voor overfull hbox’s kan zorgen.

Hiernaast bestaat ook de omgeving verbatim. Een ideale omgeving om een bron-code bestand in weer te geven.

\begin{verbatim}

%een stuk LaTeX-code

\usepackage{a4wide}

\begin{document}

In de omgeving verbatim worden alle \LaTeX-commando’s genegeerd.

Speciale tekens {} % \ kunnen zonder meer gebruikt worden.

\end{document}

\end {verbatim}

5.4.8 Figuren

Als je met pdflatex werkt kan je verschillende soorten figuren importeren: pdf,png, jpg, . . . . Met LATEX kan je alleen met eps werken.

Om met figuren te werken moeten we het pakket graphicx importeren.

\usepackage{graphicx}

Figuren invoeren gebeurt door \includegraphics[opties]{bestandsnaam} inte geven. bestandsnaam is de naam van het bestand, zonder de extensie. optiesis optioneel en kan een of meerdere van volgende ”key=value” mogelijkhedenbezitten:

width Lengte van de figuur

height Breedte van de figuur. Indien alleen width of height wordt opgegeven blijftde lengte/breedte verhouding behouden

angle Een hoek waaronder de figuur wordt gedraaid

totalheight Bij draaien neemt de totale hoogte van de figuur toe, deze wordt mettotalheight ingesteld

5.5 Van bron naar ...

LATEX-bestanden zijn ordinaire tekstbestanden. Van deze bestanden moet nogeen mooie, opgemaakte en voor publicatie vatbare versie gemaakt worden. LATEX-bestanden bezitten in het algemeen een naam in de vorm: bestand.tex. Het om-zetten naar een printbaar document is een compileerproces. De uitkomst van ditproces kan verschillende soorten bestanden leveren: dvi, pdf en html.

Page 92: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 83

5.5.1 dvi

Oorspronkelijk werden LATEX-bestanden gecompileerd tot dvi (DeVice Indepen-dent) bestanden. Men bekomt een dvi-bestand via het commando: latex be-standsnaam.tex.

5.5.2 pdf

Het pdf-formaat (Portable Document Format) wordt het meest gebruikt. Voorna-melijk omdat het heel gemakkelijk opent op zo goed als alle architecturen. Menbekomt een pdf-bestand via het commando: pdflatex bestandsnaam.tex.

Werk je echter met LATEX en zie je het niet zitten om je afbeeldingen om te zettennaar jpg’s of png’s dan kan je altijd via een omweg een pdf bekomen. Voorwaardeis dat dvitops en pstopdf geınstalleerd zijn.

gebruiker@naam−pc : ˜ $l a t e x mi jnbestand . texdv ips mi jnbestand . dv ips2pdf mi jnbestand . ps

5.5.3 html

Het kan ook leuk zijn onmiddellijk je werk op het internet te plaatsen. Dit is mo-gelijk door er een htmlversie van te maken. Men bekomt een html-versie via hetcommando: “latex2html bestandsnaam.tex”.Gebruik je veel extra packages dan verloopt de conversie niet vlot. Een manueleaanpassing van de html-code kan dan aan te raden zijn.

5.6 Goede LATEX-editors

5.6.1 Niet Wysiwig, code-editors

Liefhebbers van emacs zullen uiteraard hun favoriet aanprijzen. Vergeet niet hetpakket auctex te installeren. Andere software is meer gespecialiseerd. Absolutetop voor GNU/Linuxis het KDE-programma Kile 4. Bij Kile moet je nog altijd decodes kennen maar het komt met heel wat assistenten, voorgedefinieerde sjablo-nen, auto-completion van een gans scala aan commando’s, integratie met diversehulpprogramma’s en viewers, Nederlandse interface, enz.

4http://kile.sf.net

Page 93: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 84

In opmars: texmaker 5. Het is een gtk-applicatie en verkeerd 11 augustus 2007nog in ontwikkelfase. Het ‘eigenaardige’ aan Kile en Texmaker is dat de program-meur van Texmaker (Pascal Brachet) ook de eerste ontwikkelaar is geweest vanKile. Hij is met Kile gestopt aan versie 1.5 waarna Jeroen Wijnhout het heeftovergenomen. Hopelijk komt er wat inspirerende concurrentie ;-)

Figuur 5.2: Kile 1.9 in actie.

Figuur 5.3: Texmaker 1.5

5http://www.xm1math.net/texmaker/

Page 94: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 85

5.6.2 Wysiwig met lyx en Openoffice.org

Toch liever grafisch? Lyx6 is een buitenbeentje. Het brengt een grafisch aan-doende interface maar functioneert op de TEX-motor. Importeren van Plain-texkan, vele tweaks aan je LATEX gaan verloren. Groot nadeel is dat het geen LATEX-bestanden kan importeren en dat de standaard-output Lyx is.

Figuur 5.4: Lyx in actie

Openoffice.org, abiword, kword : alledrie kunnen ze exporteren naar LATEX. Het isheel handig in gebruik bij het aanmaken van grote tabellen. Importeren lukt niet. . .

5.7 Presentaties met LATEX

Het is ook mogelijk om via LATEX presentaties te maken. Er zijn een aantal packa-ges voorhanden als prosper, slides, enz. De meest krachtige en het meest confi-gureerbaar is beamer.

5.7.1 Basis van beamer

Het gebruik van beamer is relatief simpel.

\documentclass{beamer}\begin{document}\ sec t ion{ I n t r o d u c t i e }

6urlhttp://www.lyx.org

Page 95: Linux Cursus Door Koen Wybo

UNIT 5. PUBLICATIES IN LATEX 86

\begin{ frame}D i t i s mi jn eers te s l i d e

\end{ frame}\begin{ frame}

D i t i s mi jn tweede s l i d e\end{ frame}

\end{document}

Verwerken gebeurt via PDFlatex.

Maar uiteraard wil een mens meer ;-) Zo kun je vlot een andere stijl en themakiezen : Kijk het eens na op : http://mike.polycat.net/gallery/beamer-

themes kun je de resultaten van de diverse thema’s eens bekijken.

Aanvullende info staat vermeld in de userguide: ftp://tug.ctan.org/pub/

tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf

5.8 Verdere informatie

5.8.1 Online informatie

• de LATEX-site van de RUG: http://latex.ugent.be

• de LATEX-site van de KUL: http://ludit.kuleuven.be/software/latex/

• Nederlandse Tex Genootschap: http://www.ntg.nl

• Latex-forum van vtk-gent : heel goed. http://www.vtk.ugent.be/forums/viewforum.php?f=239&sid=aa5352bcf45992165dd921b6cf637973

• Piet van Oostrum, Handleiding LaTeX. Versie 5, 20 maart 1998. http:

//www.ntg.nl/doc/oostrum/latexhnd.pdf

• Gaspars Lequeux, Gaspard (2006). Een introductie tot het zetsysteem La-TeX. Versie 0.5.2, 9 augustus 2006 - algemene inleiding op LaTeX, met denadruk op de zaken die belangrijk zijn voor een thesis, zoals de bibliografie.http://www.zeus.ugent.be/~gaspard/latex/

• Wilfried Van Hirtum. LaTeX voor beginners. In drie delen. In A4-formaat enals A5-boekje. 2006.

– LATEX voor Beginners, deel 1 (pdf) http://users.fulladsl.be/spb10695/latbeg1a4.pdf

– LATEX LaTeX voor Beginners, deel 2 (pdf) http://users.fulladsl.be/spb10695/latbeg2a4.pdf

– LATEX voor Beginners, deel 3 (pdf) http://users.fulladsl.be/spb10695/latbeg3a4.pdf

Page 96: Linux Cursus Door Koen Wybo

6Alle in’s en uit’s

6.1 Enkele handige commando’s om tekstbestan-den te bekijken

Waarom deze commando’s? Als je weet dat de configuratiebestanden van GNU/-Linux voor een groot gedeelte tekstbestanden zijn dan is het heel praktisch omsnel deze bestanden te kunnen inkijken.

In dit gedeelte gaan we enkel de teksten bekijken. Voor bewerken moet je bij hethoofdstuk over de editors zijn.

catKleine tekstbestanden kunnen makkelijk ingekeken worden met het cat comman-do

gebruiker@naam−pc : ˜ $ cat / e tc / passwd

Dit toont je de inhoud van het paswoordenbestand in /etc.

moreTeveel inhoud. Met more kan je meer

gebruiker@naam−pc : ˜ $ more / e tc / passwd

• Spatie brengt je naar het volgende ‘blad’

87

Page 97: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 88

• de toets b brengt je 1 pagina terug. Werkt alleen met bestanden, niet metpipes

• de toets q sluit het programma af

lessNog niet tevreden? Less helpt je. Less gebruikt dezelfde commando’s als moremaar je kan via de pijltjestoetsen ook makkelijker naar beneden en boven scrollen.

tail en headTail is heel praktisch om enkel maar het einde van een bestand te zien. Tail toontje standaard de 10 laatste regels van een bestand.

gebruiker@naam−pc : ˜ $ t a i l −n 50 bestand . t x t

toont je de laatste 50.

En uiteraard kun je ook de eerste 10 regels inkijken af waarom niet de eerste 34regels ;-)

head −n 34 bestand . t x t

Waarvoor dit belangrijk is vraag je je af? Soms kan dit heel bruikbaar zijn om bijv.log-bestanden snel in te kijken (soms enkele tientallen MB groot). Bijv.

gebruiker@naam−pc : ˜ $ t a i l −n 20 / var / log / dpkg . log

Geeft je de laatste uitvoer van je dpkg: de pakketbeheerder

gebruiker@naam−pc : ˜ $ t a i l −n 20 / var / log / sys log

Geeft de laatste 20 systeemmeldingen

wcHet commando ‘wc’ staat uiteraard voor wordcount. De -w optie geeft je het aantalwoorden in een tekstbestand.

6.2 In en uit

Een systeem zonder grafische omgeving (enkel de shell dus) kent een standaard-input en een standaard-output. Standaard-input (stdin) is de invoer van het toet-senbord. Standaardoutput (stdout) is het scherm. Gelukkig dat we kunnen redi-recten via commando’s en de input en output kunnen ‘omleiden’ naar bestanden

Page 98: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 89

of waarom niet om als input te dienen voor andere commando’s.Niet te vergeten : de standaarderror(stderr). Die een foutmelding op het schermweergeeft als er iets verkeerd verloopt.

6.2.1 Redirecting

Voorbeeld. Het commando ls spuwt zodanig veel info op je scherm dat je nietalles te zien krijgt. Het zou bijvoorbeeld handig zijn dat je dit als tekstbestandkan zien. Met een redirecting naar bestand is dit zo gebeurd. “>” is de redirectieoperator en zegt dat de uitvoer niet naar de standaard-uitvoer (dit is meestal hetscherm) gaat, maar naar het vermelde bestand. Het programma zelf merkt daarniets van, het doet gewoon zijn werk, net als anders. Het is de shell die de invoeromleidt en niet het programma!

gebruiker@naam−pc : ˜ $ l s > bestand . t x t

Let op: iedere keer als je dit doet, wordt bestand.txt overschreven. Als je dit nietwenst dan kan je de input op het einde van het bestand laten toevoegen.

gebruiker@naam−pc : ˜ $ l s >> bestand . t x t

Detail: met deze methode kun je geen foutmeldingen in een bestand krijgen. Wilje foutmeldingen opslaan in een bestand? Gebruik hiervoor

gebruiker@naam−pc : ˜ $ l s 2> bestand . t x t .

Op welke manier werkt de shell om een opdracht te verwerken?

1. Eerst wordt in de opdrachtregel gezocht naar speciale tekens; hier ‘>’. Ditbetekent dat er een omleiding van het uitvoerkanaal naar een bestand moetgemaakt worden; als het bestand bestaat, wordt het overschreven.

2. Dan probeert de shell de opdracht uit te voeren die voor het omleidingstekenstaat.

Leuk is ook dat je twee bestanden kan samenvoegen tot 1 bestand.

gebruiker@naam−pc : ˜ $ cat bestand1 bestand2 >> bestand3

Page 99: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 90

6.2.2 Piping: in-out | in-out | in-out . . .

Het wordt nog leuker ;-)Er zijn veel GNU/Linux-opdrachten die gebruikt kunnen worden om een hoeveel-heid tekst op de een of andere manier te bewerken. Deze opdrachten worden ookfilters genoemd. Een filter krijgt tekst aangeboden op het invoerkanaal, doet zijnbewerking en stuurt het resultaat naar het uitvoerkanaal. Beide kanalen kan jeook omleiden maar je kan ze ook aan elkaar schakelen. Zo wordt een opdrachtverwerkt, maakt output aan en kan deze output opgepikt worden door een nieuwcommando die het gebruikt als input voor verwerking.

Een voorbeeld :

Je wenst dat de input van het commando ‘ls -al’ niet zomaar voorbijvliegt maardat je het eens deftig kan bekijken.

gebruiker@naam−pc : ˜ $ l s −a l | more

De uitvoer van het commando ‘ls -al’ dient als invoer voor het programma moredie het dan op zijn beurt toont op het scherm. Zo kun je heel ver gaan in hetschakelen van programma’s

6.3 Nog enkele behulpzame commando’s

Met dank aan Yanu (aka Lieven Debaes).

6.3.1 Sorteren met sort.

De opdracht sort leest regels van het invoerkanaal en sorteert ze. Het programmakan nog veel meer dan dat (zie man sort), zoals:

• sorteren op volgorde van een bepaald veld (kolombereik).

• bestanden samenvoegen.

• de sorteervolgorde controleren zonder deze te veranderen.

Dit hangt allemaal af van de opties die je meegeeft. Maar zonder opties sorteerthet filter gewoon alfabetisch. Zie ‘man sort’.

Page 100: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 91

6.3.2 Zoeken met grep

Om in een tekst te zoeken naar een bepaald tekstfragment hoef je niet speci-aal een teksteditor te gebruiken. Het filter grep haalt uit een tekst de regels dievoldoen aan een door jou aangegeven “regular expression”. De overige regelsworden niet doorgegeven naar het uitvoerkanaal.

gebruiker@naam−pc : ˜ $ grep − i foo f i l e . t x t

Met het eerste commando wordt naar de string foo gezocht in het bestand file.txt.De optie -i zorgt ervoor dat er niet op hoofd- en kleine letters gelet wordt (ignorecase). Met het tweede commando wordt in de output van ps gezocht naar hetwoord mozilla.

In grep kun je de volgende reguliere expressies gebruiken. Er wordt telkens aan-gegeven waar een expressie mee zal matchen.

^ begin van de regel

$ eind van de regel

$\< begin van een woord

\> eind van een woord

. elk enkel karakter

[str] elk karakter in de string str

[^str] elk karakter dat niet in de string str voorkomt

[a-b] elk karakter tussen a en b

verb? ? heft speciale betekenis van het teken erna op

∗ 0 of meer herhalingen van het vorige item

6.3.3 Vinden met find

De opdracht find is een krachtig en nuttig commando waarmee je het filesysteemvan Linux mee kan doorzoeken. Van de gevonden bestanden en koppelingen(links), ook in onderliggende andere mappen, kan je de namen laten weerge-ven. De gevonden resultaten kan je ook als parameters aan een andere opdrachtdoorgeven (pipen). Zo kan je bv. bestanden die overal verspreid liggen in hetfilesysteem, wissen, verplaatsen of er de toegangsrechten van veranderen.find doorzoekt automatisch ook de onderliggende mappen. Daarom is het vaakeen onmisbaar hulpmiddel voor de gebruiker, en vooral voor de systeembeheer-der.

Page 101: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 92

A Of toch liever locate?

Als de mappenstructuur erg groot is, kan het uitvoeren van de opdracht find erglang duren. In zo‘n gevallen kan je beter de opdracht locate gebruiken.

gebruiker@naam−pc : ˜ $ loca te tezoekenbestand

locate doorzoekt niet echt de mappenstructuur, maar gebruikt een database. Hier-door werkt het veel sneller, maar de database kan te oud zijn, zodat het bestander niet in voorkomt. In sommige Linux distributies wordt de locate-database elkenacht bijgewerkt (via een cronjob), maar je kan dit ook handmatig doen met deopdracht “updatedb”. Als overal toegang wilt hebben, moet je wel root zijn om dituit te voeren.

B Algemene werkwijze.

De opdracht doorzoekt een map recursief, d.w.z. dat ook alle onderliggende map-pen onderzocht worden om bestanden te vinden.

Daarvoor moet je drie gegevens meegeven.

1. de bovenste map waarin je wilt zoeken.

2. het selectiecriterium.

3. actie; wat moet er gebeuren met de gevonden bestanden?

De syntaxis is:

f i n d [ op t i es ] [ zoekpad ] [ s e l e c t i e c r i t e r i u m ] [ opdrach top t ie ]

Je kunt ook meerdere mappen opgeven om te doorzoeken.

Als je geen “ zoekpad” meegeeft, zoekt find enkel in de huidige map. Deze ligtvastgelegd in de omgevingsvariabele PWD.

Na het geven van de opdracht ‘find’ worden in de uitvoer, de relatieve padenvan de gevonden bestanden weergegeven. Het ligt eraan op welke manier je debovenste map (de map waarin je zoekt) meegeeft, hoe find het pad weergeeft.

Tijdens het zoeken in mappen moet de opdracht find zich houden aan de gel-dende toegangsrechten. Een map kan alleen worden doorzocht als je lees- enuitvoeringstoegang hebt tot die map. Voor de mappen waar find niet bij kan, krijgje foutmeldingen via het standaard foutmeldingskanaal stderr.

Page 102: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 93

C Soorten selectiecriteria.

Zonder selectiecriterium vindt find alle bestanden en mappen, als de toegangs-rechten dit toelaten. Met een selectiecriterium erbij, kan je kiezen uit verschillendesoorten items waarop je wilt selecteren. Hier zijn de belangrijkste criteria (zie ook‘man find’).

Selectiecriterium Selecteren op basis van

-name naam volgens een shell-zoekpatroon

-iname zie -name, maar hoofd- of kleine letters spelengeen rol.

-type bestandstype

-user gebruikersnaam van de eigenaar van debestanden

-group groepsnaam van de bestanden

-size grootte van de bestanden

-atime moment van laatste toegang (access time)

-ctime moment dat het bestand gemaakt werd (creati-on time)

-mtime moment van laatste wijziging (modificationtime)

-perm toegangsrechten (permissions)

-links het aantal namen (directe koppelingen) dat debestanden hebben

D Selectie op naam -name

Met de selectieoptie ‘-name’ zoek je bestanden met een bepaalde naam. De pa-rameter na de ‘-name’ moet een naam zijn of een zoekpatroon volgens de regelsvan de shell (wildcards). Het zoekpatroon moet tussen enkele (‘) of dubbele (”)aanhalingstekens om te voorkomen dat de shell er iets anders van maakt.

gebruiker@naam−pc : ˜ $ f i n d −name t e k s t . t x t

Gaat find op zoek naar het bestand dat letterlijk noemt tekst.txt. Als er een be-stand bestaat met de naam tekst2.txt dan wordt dit niet weergegeven.

gebruiker@naam−pc : ˜ $ f i n d −name ’∗ t e k s t ∗ ’

Page 103: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 94

Find gaat op zoek naar alle bestanden die het woord tekst in de bestandsnaamdragen. Zonder aanhalingstekens krijg je een foutmelding. Voor een overzicht vande wildcards: zie het hoofdstuk over de shell.

E Selectie op bestandsgrootte -size

Als je op zoek bent naar lege bestanden om ze op te ruimen, of om naar zeergrote bestanden te zoeken, dan gebruik je find met de selectieoptie -size.Na de optie geef je aan naar welke grootte je wilt zoeken, uitgedrukt in blokken.Een blok is daarbij een halve kilobyte oftewel 512 bytes.

Deze opdracht zoekt bijvoorbeeld naar bestanden die exact 4 kilobytes groot zijn.

gebruiker@naam−pc : ˜ $ f i n d . / −s ize 8

Wil je geen blokken aangeven maar het precieze aantal Bytes, zet dan de letter conmiddellijk achter het getal. Zo zoek je bijvoorbeeld naar een bestand met eengrootte van 198 bytes.(c = bytes)

gebruiker@naam−pc : ˜ $ f i n d . / −s ize 198c

Wil je het getal opgeven in kBytes, dan zet je de letter k erachter. 1

gebruiker@naam−pc : ˜ $ f i n d . / −s ize 10k

Het zoeken op grootte is echter pas echt zinvol als je niet een exacte grootteaangeeft maar een onder- of bovengrens.

Bovengrens: dit geef je aan met een minteken (-) . bv. -size -100k . Of je kan ookmet < (kleiner dan)Ondergrens: dit geef je aan met een plusteken (+) . bv. -size +100k of > (groterdan)

F Selectie op tijd -time

Het bestandssysteem houdt voor elk bestand tot op de seconde nauwkeurig bijwanneer:

• het gemaakt werd. (create : ctime)

1m bestaat niet voor mega

Page 104: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 95

• het voor het laatst gewijzigd werd. (modification : mtime)

• het voor het laatst geopend werd (toegang). (acces : atime)

Met find kan je op deze drie criteria bestanden zoeken met respectievelijk deselectieopties -ctime, -atime en -mtime (per dag) of per minuut : -cmin, -amin,-mmin.Met + en - geef je aan dat het jonger (minteken) dan, of ouder (plusteken) dan is

Zoek je naar bestanden die aangemaakt werden in een bepaalde periode (= metonder- en bovengrens) in 24h-perioden of in minuten, dan geef je dit aan met eengetal:

gebruiker@naam−pc : ˜ $ f i n d . / −ct ime 3

Hier worden bestanden gezocht die minimum 3 keer 24h-perioden (3dagen) enmaximaal 4 dagen oud zijn.

1. 0 = vandaag (pas op, vanaf het huidige tijdsstip tot 24h terug controleren)

2. 1 = gisteren

3. 2 = eergisteren

Zoek je bestanden die jonger zijn dan een aantal 24h-perioden of minuten, dangeef je het getal op met een minteken:

gebruiker@naam−pc : ˜ $ f i n d . / −ct ime −3

Deze opdracht selecteert alle bestanden die jonger zijn dan 3 dagen (3x24h).

Zoek je bestanden die ouder zijn dan een aantal 24h-perioden of minuten, dangeef je het aantal op met een plusteken:

gebruiker@naam−pc : ˜ $ f i n d . / −ct ime +1

Deze opdracht selecteert alle bestanden die ouder zijn dan 1 dag (24h).

G Opdrachtoptie

Tot nu toe hebben we in de voorbeelden nog geen opdrachtoptie gebruikt. findlaat dan alleen de paden naar de gevonden bestanden zien. Dit is eigenlijk dedefaultwaarde. Met de opdrachtoptie -print krijg je hetzelfde resultaat.

Page 105: Linux Cursus Door Koen Wybo

UNIT 6. ALLE IN’S EN UIT’S 96

Een andere heel belangrijke opdrachtoptie is -exec (execute), waarmee je elkewillekeurige linux-opdracht kunt uitvoeren. Dit gebeurt voor elk bestand automa-tisch, zonder dialoog met de gebruiker. Als je echter de opdrachtoptie -ok gebruikti.p.v. -exec, dan vraagt find elke keer om bevestiging. De opdracht wordt dan al-leen uitgevoerd als je de letter y of Y typt.

Na de opdrachtoptie typ je de opdracht inclusief opties en parameters op dezelf-de manier als dat je hem aan de shell-prompt zou invoeren. Daarbij kan je hetdoor find gevonden pad gebruiken door middel van een accoladepaar zonder ietsertussen: .De opdracht moet worden afgesloten met een puntkomma. Omdat dit een spe-ciaal teken is voor de shell moet je het afschermen met een escape-teken. Deopdrachtregel eindigt dus met ;.Na de opdracht mogen geen andere find-opties meer komen.

Stel dat je met find het bestand ‘tekst.txt’ met ‘tek*’ wilt zoeken, dan vervangt findde accolades door het pad naar dit bestand. De opdracht voert dus effectief allegevonden items uit. Maar pas op! find vindt ook mappen.

Vaak wordt find gebruikt om bestanden, die verspreid over verschillende mappenzijn opgeslagen, te verwijderen volgens een gemeenschappelijk criterium.Stel, je bent systeembeheerder, en je wilt alle bestanden in de home-mappen vande gebruikers bekijken die twee weken of langer niet meer gebruikt zijn, dit om zeeventueel te wissen.

gebruiker@naam−pc : ˜ $ f i n d / home −type −f −atime +14 −exec l s{} \ ;

En je wilt ze allemaal wissen:

gebruiker@naam−pc : ˜ $ f i n d / home −type −f −atime +14 −exec rm{} \ ;

Page 106: Linux Cursus Door Koen Wybo

7Beheer van gebruikers

Vanaf nu enkele taken die je enkel als systeembeheerder of root kan uitvoeren.We zijn root al diverse keren tegengekomen bij bijvoorbeeld het installeren vansoftware. Root is nodig voor het systeemonderhoud.

7.1 Root en het sudo-systeem

7.1.1 Basisprincipe

Root (of de meester van het universum, beperkt tot de GNU/Linux-machine waar-op je werkt) kiest zijn vriendjes ;-) zelf.De ubuntu-filosofie gaat ervan uit dat het inloggen als root niet aan te raden is.Immers als iemand het paswoord van root kan achterhalen dan heeft die persoonde effectieve controle over het systeem.

In Ubuntu is het paswoord voor root standaard uitgeschakeld en wordt het sudo-systeem gebruikt om een gewone gebruiker commando’s met rootrechten te latenuitvoeren (dankzij setuid en setgid). Het eerste gewone useraccount dat je tijdensde installatie van het systeem hebt aangemaakt is vanzelf sudo-gebruiker. Omsudo te gebruiken typ je dus sudo voor het commando dat je ingeeft, en daarnageef je je eigen gebruikerswachtwoord.

Software installeren, de softwarebronnen updaten, enz. is een taak die enkel rootkan uitvoeren. Via het sudo-systeem kan ook een gewone gebruiker met sudo-rechten dit. Bijvoorbeeld:

gebruiker@naam−pc : ˜ $ sudo apt−get update

97

Page 107: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 98

Als je als root bent ingelogd, vervalt uiteraard het eerste commando, namelijk‘sudo’.

7.1.2 Meerdere sudo’ers

Hoe een gebruiker toevoegen om root-rechten te verkrijgen via het commandosudo (of grafisch: gksudo)? Er zijn verschillende manieren om dit te bereiken.

7.1.3 /etc/sudoers

gebruiker@naam−pc : ˜ $ sudo visudo

Nano opent.

gebruiker@naam−pc : ˜ $ # / e tc / sudoers## This f i l e MUST be ed i ted wi th the ’ visudo ’ command as roo t .## See the man page f o r d e t a i l s on how to w r i t e a sudoers f i l e .# Host a l i a s s p e c i f i c a t i o n

# User a l i a s s p e c i f i c a t i o n

# Cmnd a l i a s s p e c i f i c a t i o n

# Defau l t s

De fau l t s ! l ec tu re , t t y t i c k e t s , ! fqdn

# User p r i v i l e g e s p e c i f i c a t i o nroo t ALL=(ALL ) ALL

Voeg een volgende lijn toe en sla op

gebruiker@naam−pc : ˜ $ # User p r i v i l e g e s p e c i f i c a t i o nroo t ALL=(ALL ) ALLnaamgebruiker ALL=(ALL ) ALL

Hiermee krijgt je gebruiker alle rechten van root via het sudo-commando. Uiter-aard kan de gebruiker beperkt worden in zijn macht en bijvoorbeeld maar voor

Page 108: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 99

enkele commando’s root-rechten krijgen. Zo kan je bijvoorbeeld een gebruikerenkel maar toestaan om het systeem te updaten en te upgraden. Meer weten?man sudoers.

Sudo wordt geconfigureerd vanuit /etc/sudoers. Het heeft enkele mooie confi-guratiemogelijkheden. Zo kan je gebruikers of groepen toestaan specifieke root-commando’s uit te voeren, heb je de mogelijkheid om meerdere personen (al danniet beperkt) rootrechten te geven in plaats van 1 enkele gebruiker, enz. Kijk heteens na op http://www.gratisoft.us/sudo/intro.html wat je allemaal kan finetunenmet dit configuratiebestand.

A usermod

Heb je het liever via 1 commando?

gebruiker@naam−pc : ˜ $ sudo usermod −a −G admin gebruikernaam

B gksu users-admin

Of waarom niet grafisch ;-)

Open via het menu Systeem/beheer/gebruikers en groepen (of sneller via termi-nal ‘gksu users-admin’). Selecteer een gebruiker, klik op Eigenschappen. In hettabblad ‘Gebruikersrechten’ vink je ‘mag het systeem beheren’ aan.

Figuur 7.1: Grafische manier om gebruikers toegangsrechten te verschaffen tot sudo.

Page 109: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 100

7.1.4 Sudo: enkele handigheidjes

Soms als je grafische programma’s met sudo opent, krijg je de eerstvolgendekeer inlogproblemen. Om deze te vermijden gebruik je beter gksu onder gnomeen kdesu onder kde. Een koppeling op je desktop maken met als commandobijvoorbeeld gksudo nautilus of kdesu konqueror is superhandig. Je bent dustegelijk user en root op dat moment. Dan kan je zo naar een bestand browsen enhet als root bewerken. Als je het browservenster sluit, ben je weer gewone user.

Met het commando ‘su naamgebruiker’ kun je makkelijk een andere gebruikerworden. Je heb nog steeds je eigen omgeving, je eigen shell enz. Om die gebrui-ker zijn shellvariabelen te krijgen doe je su -l. Uiteraard moet je het paswoord vandie gebruiker weten. Door de -l optie bevind je je dan ook meteen in de thuismapvan die gebruiker.

Je wordt best altijd root door middel van sudo. Maar soms is het nodig om echtals root in te loggen en dan gebruik je ‘su’ om root te worden. Met su echter hebje nog steeds de omgevingsvariabelen niet van root. Om die te bekomen en pasecht helemaal root te zijn doe je ‘su -’.

Merk op: inloggen via gdm als root lukt niet. Verander dit in de settings van gdm.In het menu Systeem/aanmeldvenster vink je ‘aanmelding lokaal voor systeembe-heer toestaan’ aan in het tabblad ‘Beveiliging’.

‘sux’ is trouwens ook super, sux geeft je niet alleen rootrechten maar ook rech-ten op grafische programma’s. Sux moet je wel eerst installeren (is niet in hetstandaard ubuntu-systeem).

Mocht je het toch nodig vinden om root te activeren dan kun dit je via:

gebruiker@naam−pc : ˜ $ sudo passwd roo t

Waarop je uiteraard een paswoord moet ingeven voor root. Het is niet omdat je nuroot hebt geactiveerd dat het sudo-systeem wordt uitgeschakeld. Zowel sudo alsinloggen als root kan je naast elkaar gebruiken. Vanaf nu kun je inloggen als rootop een terminal (of inloggen als root via ssh). Wat is het voordeel/nadeel van rootof sudo.? Kijk het eens na op http://linuxboxadmin.com/articles/sudo-vs-root.php

7.2 Werken met gebruikers

Waarom gebruikers? Er zijn meerdere redenen: omdat er nu eenmaal meerderemensen op hetzelfde systeem kunnen werken en men niet graag heeft dat menin elkaars mail, documenten kan inkijken. Voor de systeembeheerder betekentdit een regeling naar wie welk bestand mag inkijken, wie welke processen magopstarten, wie bevoegdheid heeft (of niet). Gebruikers identificeren ook mensen,houden logs bij, zorgen voor gepersonaliseerde mail (i.p.v. een systeemwijdeinstelling), enz.

Page 110: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 101

Onthoud nu ook dat sommige gebruikers geen mensen zijn maar noodzakelijk zijnvoor het uitvoeren van ‘daemons’. Zo zal de webserver apache gebruik maken vaneen eigen ‘gebruiker’ om de server veilig te houden.

7.2.1 Aanmaken van gebruikers

A adduser

Kort en bondig aanmaken van een gebruiker

gebruiker@naam−pc : ˜ $ sudo adduser nieuwegebruikerToevoegen van gebru ike r ‘naam−gebru iker ’ . . .Toevoegen nieuwe groep ‘naam−gebru iker ’ (1003) .Toevoegen nieuwe gebru iker ‘naam−gebru iker ’ (1003) i n groep ‘naam−gebru iker ’ . . .Aanmaken home d i r e c t o r y ‘ / home / naam−gebru iker ’ . . .Kopieren bestanden van ‘ / e tc / skel ’ . . .

Vervolgens moet je tweemaal het paswoord intypen

gebruiker@naam−pc : ˜ $ Enter new UNIX password :Retype new UNIX password :passwd : wachtwoord i s mes succes aangepastDe g e b r u i k e r s i n f o r m a t i e van naam−gebru iker wordt veranderd

Inclusief typo ;-)

Aanvullend kun je nog extra info verschaffen

gebruiker@naam−pc : ˜ $ U d ien t de nieuwe waarde i n te voeren ,druk ’ enter ’ voor de standaardwaarde

Vo l l ed i g naam [ ] : naam−gebru ikerKamernummer [ ] :Telefoon werk [ ] :Telefoon t h u i s [ ] :Var ia [ ] :

I s deze i n f o r m a t i e c o r r e c t ? [ y /N]

Zoals je zal merken is er in /home een nieuwe map bijgekomen. Deze geeftstandaard profielen meegekregen: .bash logout, .bash profile, .bashrc en .profile.Maar er is nog meer aangepast.

Wil je dit automatisch proces tweaken? Kijk eens in /etc/adduser.conf. Daar kunje heel wat instellingen wijzigen.

Page 111: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 102

B Gebruikers en groepen in beheer

Je wil het grafisch? Via menu Systeem/Beheer/Gebruikers en groepen kun jeeen nieuwe gebruiker aanmaken. Heel wat extra instellingen zijn mogelijk. Naastpaswoord, thuismap en de extra info kun je ook de gebruiksrechten makkelijkercontroleren.

Figuur 7.2: Snel een nieuwe gebruiker aanmaken via gnome-gebruikersbeheer.

7.2.2 Achter de coulissen van adduser

Uiteraard kan enkel root gebruikers aanmaken. Het is helemaal niet zo moeilijk.Als je weet hoe het systeem werkt, kun je je systeem nog meer onder controlekrijgen.

A /etc/passwd

Elke gebruiker krijgt een regeltje toebedeeld in /etc/passwd.

gebruiker@naam−pc : ˜ $ naam−gebru iker : x :1000:1000:naam−gebru iker, , , , : / home / naam−gebru iker : / b in / bash

Hoe moet je de regel begrijpen?

• gebruikersnaam: dit is een unieke naam op het systeem. Dit is ook deinlognaam

• paswoord: hier voorgesteld door een ’x’. Het programma passwd neemt hetinstellen van het paswoord voor zijn rekening. Opmerking: de account van

Page 112: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 103

koen is geactiveerd maar maakt gebruik van het meer veilige systeem vanschaduwpaswoorden. Dit kan je merken aan de ‘x’. Als het eerste woordvan de paswoordreeks een (asteriks, sterretje) zou zijn, dan betekent ditdat de account tijdelijk onbruikbaar is.

• uid: of de ‘user ID’. Intern maakt het systeem geen gebruik van de gebrui-kersnaam maar van de gebruikersID. In dit geval 1000.

• gid: of ‘Groups ID’. . . . uiteraard voor het werken met groepen.

• gecos: diverse informatie over de gebruiker.

• home-map: map van de gebruiker. Standaard wordt de thuismap aange-maakt naar analogie met de gebruikersnaam.

• shell: de volledige padnaam naar de gebruikte shell van de individuele ge-bruiker.

Niet alle velden moeten ingevuld worden. Enkel username, uid, gid en home-mapzijn vereist.

Enkele ’speciallekes’:

• Root kent standaard als uid het nummer 0 en ook de gid staat op 0.

• Je kan jezelf een andere shell geven. Maak dat je zeker bent dat de shellgeınstalleerd is op je systeem.

• En inderdaad: je kan jezelf een andere thuismap geven. /home is een ge-woonte, hetzelfde met de naamgeving van de namen in /home. Als je jethuismap verandert: maak zeker dat je gebruiker rechten heeft op die map.

• Wens je meerdere zaken naar de thuismap te laten kopieren bij het aan-maken van een gebruiker? Maak als root deze bestanden aan in /etc/skel .Het leuke is dat de bestanden bij het aanmaken van de gebruiker automa-tisch de rechten van de gebruiker krijgen (lezen en schrijven, niet uitvoeren).Dit biedt heel wat mogelijkheden om een standaardgebruikersprofiel aan temaken.

B schaduwpaswoorden

/etc/passwd is handig maar uiteraard kan iemand die dit bestand kan benaderengebruik maken van de paswoorden van alle gebruikers, inclusief root. Daarom datmen schaduwpaswoorden heeft geıntroduceerd. Dat maakt het moeilijker om depaswaarden te achterhalen omdat deze versleuteld worden opgeslagen in /etc/s-hadow. Als je dus geen volledige paswoorden te zien hebt in /etc/passwd maarenkel een ‘*’ of een ‘x’, dan maakt je systeem gebruik van schaduwpaswoorden(wat anno 2007 de standaard is, je hebt speciale conversietools om over te stap-pen van gewoon naar shadow).

Waarom shadow?

Page 113: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 104

• Om te beginnen is /etc/shadow enkel maar leesbaar door root. Gewonegebruikers kunnen er niet aan. Als root het bestand inleest dan staat daar:

gebruiker@naam−pc : ˜ $ gebruikersnaam : $1$ . SrfQX5F\$6z9UP.9VfpkieA15bU5 . / / : 1 3 3 4 8 : 0 : 9 9 9 9 9 : 7 : : :

De gebruikersnaam is zichtbaar, maar de paswoorden niet. Deze zijn ver-sleuteld opgeslagen en worden via encryptie weer uitgelezen.

• Je kan een tijdslimiet instellen per account. Zo kun je toegang geven tot eenbepaalde account vooraleer die buiten werking wordt gesteld als er geennieuw paswoord wordt ingegeven. Consulteer hiervoor de man-pagina’svan shadow of neem eens een kijkje in /etc/login.defs .

C Kerberos en PAM

Niet genoeg beveiliging? Kijk eens naar Kerberos en/of PAM. Dit zijn nog diep-gaander, uitgebreider systemen van toegangsbemiddeling.

7.2.3 Gebruikers verwijderen: tijdelijk, definitief, in eenbackup

Gebruikers ‘verwijderen’ van het systeem is nog gemakkelijker dan ze aan te ma-ken ;-) .

gebruiker@naam−pc : ˜ $ de luser gebruikersnaam

Dit zorgt ervoor dat de gebruiker niet meer kan inloggen in zijn shell. Dit komt om-dat zijn lijntje in /etc/passwd volledig wordt verwijdert. De thuismap, instellingen,mail, printqueus enz. blijven bestaan.

Je wenst een gebruiker tijdelijk toegang tot het systeem te ontzeggen: verwijderhem uit /etc/passwd of plaats een * (asteriks) na zijn naam in /etc/passwd :

gebruiker@naam−pc : ˜ $ naam−gebru iker :∗ :1000:1000:naam−gebru iker, , , , : / home / naam−gebru iker : / b in / bash

Zo blijven de thuismap en al de rest bestaan. De gebruiker kan niet meer inloggenop zijn account. Bij gebruik van schaduwpaswoorden moet je hetzelfde doen in/etc/shadow.

Page 114: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 105

gebruiker@naam−pc : ˜ $ de luser − −remove−home gebruikersnaam

Verwijdert de gebruiker van het systeem inclusief zijn thuismap.

Is –remove-home standaard ingeschakeld in /etc/deluser.conf en wil je voor alleveiligheid toch een backuptje in een tar.bz2?

gebruiker@naam−pc : ˜ $ de luser − −backup gebruikersnaam

Wil je alles verwijderen?

gebruiker@naam−pc : ˜ $ de luser − −remove−a l l−f i l e sgebruikersnaam

Wil je absoluut zeker zijn dat de verwijderde gebruiker geen sporen heeft nagela-ten? Doe een zoekopdracht in / op basis van de gebruikersnaam.

gebruiker@naam−pc : ˜ $ f i n d / −user gebruikersnaam − l s

Nieuw paswoord aanmaken? Als gebruiker kan je gewoon het passwd-commandouitvoeren.

gebruiker@naam−pc : ˜ $ passwd naam−gebru iker

7.3 Groepen

Groepen zorgen ervoor dat verschillende gebruikers op een logische manier bijelkaar kunnen gebracht worden. Zo kunnen zij binnen hun groep gemakkelijkbestanden uitwisselen. Met ls -l kun je zowel de eigenaar als de groep van eenmap/bestand bekijken.

Hoe een groep aanmaken?

gebruiker@naam−pc : ˜ $ sudo addgroup naamgroep

De diverse groepen kun je terug vinden in /etc/group. Daarin staat de naam vande groep, paswoord, gid, en de leden van de groep (gescheiden door een komma,zonder spatie ertussen) Net zoals de schaduwpaswoorden bij de gebruikers kent

Page 115: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 106

ook het paswoord van groepen een versleutelde versie. Je vindt de versleuteldepaswoorden terug in /etc/gshadow .

Hoe een groep verwijderen?

gebruiker@naam−pc : ˜ $ sudo delgroup naamgroep

7.3.1 Ubuntu-groepen

Naast de groepen die per gebruiker worden aangemaakt zijn er ook groepen diegebonden zijn aan het systeem. Zo moet een gebruiker lid zijn van bijv. de groepcdrom om het cdrom/dvd-station te kunnen gebruiken of moet je lid zijn van degroep audio om muziek te kunnen beluisteren.

7.4 Enkele handige extra’s

7.4.1 Wie ben ik?

Een levensgrote vraag. Gelukkig lost GNU/Linux ze op met het commando ‘who-ami’.

Wil je weten tot welke groep je behoort: ‘id’ is je vriend. Wat minder info zie je met‘groups naamgebruiker’.

7.4.2 Wie is er op het systeem?

Wil je weten wie er nu ingelogd is en waar?

‘who’ vertelt het je

gebruiker@naam−pc : ˜ $koen :0 2007−03−16 21:22koen pts /1 2007−03−16 21:29 ( : 0 . 0 )koen t t y 3 2007−03−16 21:38

De gebruiker koen is driemaal ingelogd. De eerste keer op display O en de tweekeer in een terminal. De derde keer in een virtuele (niet-grafische) terminal. Ditcommando vertelt je niet wie is aangelogd via internet, ftp, . . . of enig ander net-werkprotocol.

Wat doen al deze gebruikers? Een simpele ‘w’ vertelt het je. Dit commando toont

Page 116: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 107

naast systeeminfo ook informatie over welke gebruiker (USER) is ingelogd op wel-ke terminal (TTY) van welke plaats (FROM). Ook info over wanneer de gebruikeris ingelogd (LOGIN@) en welke programma’s hij op dit moment draait (WHAT).Twee kolommen over hoeveel tijd de CPU heeft gespendeerd sedert login aan hetuitvoeren van de programma’s (JCPU) en voorgrondprocessen (PCPU).

gebruiker@naam−pc : ˜ $ w17:47:57 up 3:39 , 6 users , load average : 0 ,08 , 0 ,12 , 0 ,12USER TTY FROM LOGIN@ IDLE JCPUPCPU WHATkoen :0 − 14:23 ?xdm? 8:28m 0.29s / usr / b in / gnome−koen pts /1 : 0 . 0 14:46 1:48 0.32 s 0.32s bashkoen pts /3 : 0 . 0 15:54 1.00 s 0.21 s 0.00s wkoen pts /2 : 0 . 0 15:59 58:51m 0.14 s 0.14s bashkoen pts /4 : 0 . 0 16:21 1:25 3.95 s 3.81s ged i tkoen pts /6 : 0 . 0 16:22 1:17 0.15 s 0.15s bash

En wie is er het laatst aangelogd? ‘last’ toont je alle huidige gebruikers.

gebruiker@naam−pc : ˜ $ l a s t gebruikersnaam

Toont je een volledige lijst van je gebruiker wanneer en waar hij is ingelogd voorwelke tijd.

7.5 Grafische omgevingen voor meerdere gebrui-kers

7.5.1 Pessulus

Pessulus is een ‘lockdown-editor’ die systeembeheerders in staat stelt om ge-makkelijk bepaalde functies in de Gnome-desktop uit te schakelen, hetgeen vaakgewenst is in bedrijfsomgevingen en internetcafes. Hoewel ‘lockdown’ al enkelejaren in GNOME mogelijk was, maakt Pessulus het voor de systeembeheerder nuveel eenvoudiger om deze taak uit te voeren.

Page 117: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 108

Figuur 7.3: Met Pessulus is het heel gemakkelijk om snel functies in de Desktop uit te schakelen

Een aantal van de functies die ontzegd kunnen worden zijn:

• Toegang tot de opdrachtregel

• De mogelijkheid om de computer uit te zetten of te herstarten

• Toegang tot specifieke protocollen in de epiphany-webbrowser

• De mogelijkheid om GNOME-panelen te bewerken

7.5.2 Sabayon

Wens je eenzelfde instelling van de gnome-gebruikersomgeving voor meerdere,reeds bestaande gebruikers dan snelt Sabayon je te hulp. Het programma kanverschillende gebruikersprofielen opstellen binnen een interactieve live GNOME-sessie. Wanneer een profiel aangemaakt of bewerkt wordt, wordt een nieuweGNOME-sessie opgestart, ingebed in een venster. Deze sessie kan dan door desysteembeheerder worden gebruikt om alle gewenste wijzigingen te maken envast te leggen.

Figuur 7.4: Sabayon in een ingebed xnest-venster.

Binnen het ingebedde venster kan een systeembeheerder specifieke profielenaanmaken. Deze profielen kunnen dan worden opgeslagen en eenvoudig wordengebruikt op andere PC’s. Dit bespaart systeembeheerders veel tijd. Sabayon

Page 118: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 109

maakt gebruik van de Gconf-sleutels en Firefox-instellingen om een profiel aan temaken.

Meer info: http://www.gnome.org/%7Eseth/blog/sabayonhttp://www.gnome.org/%7Eseth/blog/sabayon

Page 119: Linux Cursus Door Koen Wybo

UNIT 7. BEHEER VAN GEBRUIKERS 110

Page 120: Linux Cursus Door Koen Wybo

8Processen en booten

8.1 Processen?

8.1.1 Multi-user and multi-tasking

Multi-tasking en multi-user is geen loos begrip onder linux. Iedere gebruiker kanmeerdere programma’s ‘tegelijk’ opstarten. ‘Tegelijk’ staat tussen aanhalingste-kens, omdat een enkele processor fysisch gezien slechts de bevelen van eenenkel programma kan uitvoeren; maar het besturingssysteem wisselt ettelijke ma-len per seconde van programma (dit heet scheduling), zodat het lijkt alsof dieprogramma’s echt allemaal tegelijk aan het draaien zijn.

Niet elk commando start een enkel proces op. Sommige commando’s initiereneen ganse rits aan processen.

Processen kunnen door gebruikers niet zomaar worden opgestart. Je moet mini-maal ingelogd zijn in een virtuele terminal. Vanuit de terminal kun je processenopstarten door de respectievelijke commando’s in te typen.

8.1.2 Wat is een proces?

Een proces is een programma in actie (gebruikmakend van CPU en geheugen).Het is een geheel van : uitgevoerde code, verwerkte data, shell-instellingen, ...Het programma zelf is niet meer dan een bestand dat uitvoerbare code bevat. Alshet programma uitgevoerd wordt, dan laadt het besturingssysteem die uitvoerba-re code in het geheugen. Maar het besturingssysteem voorziet voor elk procesniet alleen plaats voor de uitvoerbare code die uit het bestand komt, maar ook

111

Page 121: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 112

voor de gegevens die tijdens de uitvoering aangemaakt worden. Of nog andersuitgedrukt: het meesterprogramma is de kernel, al de rest is een proces (en dusondergeschikt aan de kernel)

Het leven van een proces bestaat uit drie stadia:

1. geboorte

2. uitvoering

3. dood

De uitvoering van een proces kan verder opgedeeld worden in de drie stadiaklaar (“READY”), wachtend (“SLEEPING”), en actieve uitvoering (“RUNNING”).Een proces heeft eveneens een unieke identiteit aangegeven door zijn PID (pro-cess identifier). Een proces kan zelf kind-processen creeren, of zichzelf vervan-gen door een ander proces, met behulp van een “fork” instructie (zie man fork) ofeen “clone” (man clone). Kind-processen hebben andere PIDs, indien het proceszichzelf vervangt, behoudt het zijn PID.

In multi-tasking systemen zoals GNU/Linux zijn er verschillende processen gelijk-tijdig in uitvoering. Een proces in uitvoering heeft CPU-tijd nodig om zijn instructiesuit te voeren, een deel geheugen om de nodige data in te bewaren en het uitvoer-bare gedeelte te laden, en afhankelijk van het doel van het proces ook andereresources zoals I/O.

8.2 Processen beheren

8.2.1 ps

“ps” is een applicatie die de status weergeeft van alle processen die momenteelin uitvoering zijn. Je ziet al die processen met het bevel “ps -A”. Wil je enkel jeeigen processen zien dan voer je gewoon “ps” of “ps -U jouwloginnaam” uit. Eenvoorbeeld van de output van “ps -U gebruiker”.

gebruiker@naam−pc : ˜ $ ps −U gebru ikerPID TTY TIME CMD

10477 ? 00:00:00 gnome−session10550 ? 00:00:00 ssh−agent10551 ? 00:00:00 ssh−agent10554 ? 00:00:00 dbus−launch10555 ? 00:00:00 dbus−daemon10557 ? 00:00:01 gconfd−210560 ? 00:00:00 gnome−keyr ing−d10562 ? 00:00:00 gnome−se t t i ngs−10569 ? 00:00:00 sh10570 ? 00:00:00 esd

Page 122: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 113

10574 ? 00:00:00 compiz10579 ? 00:00:02 gnome−panel10582 ? 00:00:01 gtk−window−deco10585 ? 00:00:02 compiz . r e a l10586 ? 00:00:00 n a u t i l u s10589 ? 00:00:00 bonobo−a c t i v a t i10590 ? 00:00:00 gnome−volume−ma10593 ? 00:00:00 b luetooth−apple10595 ? 00:00:00 gnome−vfs−daemo10600 ? 00:00:00 nm−app le t10601 ? 00:00:00 gnome−power−man10602 ? 00:00:00 gnome−cups−i con10649 ? 00:00:00 mapping−daemon10651 ? 00:00:00 t rashapp le t10678 ? 00:00:00 cpufreq−app le t10684 ? 00:00:00 / usr / b in / Webild10694 ? 00:00:02 deskbar−app le t10710 ? 00:00:01 gnome−screensav10715 ? 00:00:00 evo lu t ion−data−10720 ? 00:00:00 evo lu t ion−excha10734 ? 00:00:00 gnome−ne ts ta tus10737 ? 00:00:00 mixer app le t210759 ? 00:00:17 k i l e10762 ? 00:00:00 k d e i n i t10767 ? 00:00:00 dcopserver10770 ? 00:00:00 klauncher10772 ? 00:00:00 kded10781 ? 00:00:00 k i o f i l e10782 pts /0 00:00:00 bash10854 ? 00:00:00 xfce4−t e rm ina l10855 ? 00:00:00 gnome−pty−helpe10856 pts /1 00:00:00 bash11089 ? 00:00:00 k i o u i s e r v e r11383 pts /1 00:00:00 ps

Je ziet van links naar recht:

• het PID-nummer van elk proces

• op welke terminal het gestart is

• hoeveel tijd de werking van het proces al in beslag heeft genomen.

• naam van het programma

Een volledige overzicht van alle processen krijg je met ps -aux.

Door middel van de optie “-f” kan ps ook de hierarchie van processen tonen. Eenfragment voor gebruiker ‘koen’.

Page 123: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 114

r oo t 7307 0.0 0.2 12304 1408 ? Ss 10:290:00 / usr / sb in /gdmroo t 7310 0.0 0.5 12816 2544 ? S 10:290:00 \ / usr / sb in /gdmroo t 7313 2.9 14.1 94796 71928 t t y 7 Rs+ 10:291:05 \ / usr / X11R6 / b in /X :0 −br −aud i t 0 −auth / var / l i b /gdm / : 0 . Xauth −n o l i s t e n tcp v t7koen 10477 0.0 2.4 31756 12504 ? Ssl 10:320:00 \ / usr / b in / gnome−sessionkoen 10550 0.0 0.1 4252 532 ? Ss 10:320:00 \ / usr / b in / ssh−agent / usr / b in / ssh−agent / usr /b in / dbus−launch − −e x i t−with−session / usr / b in / gnome−sessionkoen 10551 0.0 0.1 4256 532 ? Ss 10:320:00 \ / usr / b in / ssh−agent / usr / b in / dbus−launch − −e x i t−with−session / usr / b in / gnome−sessionkoen 10574 0.0 0.0 1716 492 ? S 10:330:00 \ / b in / sh / usr / b in / compiz − −sm−c l i e n t−i dde fau l t 0 gconfkoen 10582 0.1 2.0 18344 10328 ? S 10:330:02 | \ gtk−window−decora torkoen 10585 0.1 2.2 17972 11612 ? S 10:330:03 | \ / usr / b in / compiz . r e a l − −no−fbo − −ignore−desktop−h i n t s − −sm−c l i e n t−i d de fau l t 0 gconf gconfkoen 10579 0.1 5.4 99328 27808 ? S 10:330:02 \ gnome−panel − −sm−c l i e n t−i d de fau l t 1koen 10586 0.0 4.2 126020 21404 ? R 10:330:00 \ n a u t i l u s − −no−de fau l t−window − −sm−c l i e n t−i d

de fau l t 2

Hier is bijvoorbeeld heel duidelijk de verschillende kind-processen van GDM (Gno-me Display Manager) te zien. Standaard is GDM het welkomstscherm in ubuntuwaar je je als gebruiker kan inloggen om zo de gnome-omgeving op te starten.Een meer overzichtelijke structuur krijg je met het commando ‘pstree’.

Door de output van ps te pijpen met grep kun je zoeken op gebruiker en program-ma.

gebruiker@naam−pc : ˜ $ ps aux | grep bash

Toont je de ps voor enkel bash

8.2.2 Achter- en voorgrond

Als je in een terminal een opdracht intypt (bv. ps), zal de shell ervoor zorgen, datdie opdracht uitgevoerd wordt. Wat dan gebeurt, is het volgende:

• Je typt een opdracht achter de shell-prompt.

Page 124: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 115

• De shell zorgt ervoor dat de opdracht uitgevoerd wordt.

• Als de opdracht klaar is zorgt de shell ervoor, dat de prompt weer verschijnt,zodat je de volgende opdracht kunt geven.

Gedurende de tijd, dat de ingetypte opdracht uitgevoerd wordt, gaat de shell in”slaap-toestand”. Dit kun je zien als je een ps uitvoert: op de regel met bash zie jeals status een S. De opdracht ps heeft gedurende de uitvoering van zijn taak evende regie in handen gekregen. De shell krijgt die regie weer terug als ps klaar is.

Het kan ook anders gezegd worden: de shell (bash) wordt even op de achtergrondgezet, terwijl ps op de voorgrond zijn werk mag doen. Er kan, per terminal, nor-maal gesproken maar een proces tegelijk op de voorgrond aktief zijn. Alle andereprocessen doen op de achtergrond hun werk.

Het zou natuurlijk GNU/Linux niet zijn als je dit gedrag niet kan aanpassen. Dat jedus in een terminal een commando uitvoert en dat dit naar de achtergrond wordtverplaatst terwijl je terminal weer alle ‘aandacht’ krijgt. Met een & (ampersand) ishet zo uitgevoerd:

gebruiker@naam−pc : ˜ $ ged i t &

De tekstverwerker gedit wordt opgestart als achtergrondproces van de terminal.Na het uitvoeren, krijg je opnieuw de regelinvoer. Een nieuw commando kanworden ingetypt.

Processen die opgestart zijn vanuit de terminal worden ‘jobs’ genoemd. Zo kanin een terminal verschillende ‘jobs’ worden opgeroepen en uitgevoerd. Met deopdracht ‘jobs’ krijg je een overzicht van de uit deze terminal gestarte processen.De jobs worden geındentificeerd door een jobnummer, niet via een PID.

gebruiker@naam−pc : ˜ $ jobs[1]− Done evince &[ 2 ] + Running ged i t &

Twee jobs werden opgestart vanuit deze terminal. De job ‘evince’ werd beeindigd.Enkel ‘gedit’ is nog actief.

Jobs op de achtergrond kun je niet met Ctrl-C killen of met Ctrl-Z tijdelijk buitenactie zetten. Met ‘fg jobnummer’ kun je achtergrondprocessen op de voorgrondbrengen en ze met de toetsencombinaties stoppen, buiten werking stellen. Eensimpele opdracht als :

gebruiker@naam−pc : ˜ $ %2

doet hetzelfde. Job nummer 2 wordt op de voorgrond geplaatst.

Page 125: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 116

Merk op: jobs zijn een product van de shell en niet van de kernel.

8.2.3 top

Het bevel ‘top’ geeft een overzicht van de actieve processen weer . Dit overzichtwordt elke seconde geactualiseerd, in plaats van de momentopname die ps levert.Meer informatie vind je in de man pagina’s van top: man top. Op vele systemen isook een grafische versie beschikbaar van top, zoals bijvoorbeeld gnome-system-monitor in de GNOME desktop.

Figuur 8.1: Het tabblad ‘Processen’ in gnome-systeem-monitor

Met gnome-systeem-monitor kun je veel gegevens over lopende processen op-vragen. Een proces kun je ook beeindigen. Via de rechtermuisknop kun je mak-kelijk prioriteit instellen en extra gegevens over geheugenbeheer en geopendebestanden opvragen.

8.2.4 Aardige processen

Processen nemen processortijd in. In principe geeft de kernel aan elk procesdezelfde prioriteit. Sommige processen slokken heel wat naar binnen en kunnende vlotte werking van het systeem ondermijnen. Sommige processen moeten hetdus wat kalmer aanpakken. Het programma ‘nice’ is hierbij je vriend. Hiermeekun je aangeven hoe ‘aardig’ een proces moet zijn voor de andere processen. Dewaarde die je aan nice kunt geven ligt tussen de -20 en 19. Normaal wordt eenproces met een ‘aardigheidsfactor’ van 0 opgestart. Hoe hoger de waarde vannice, hoe lager de prioriteit.

Een ‘gewone’ gebruiker kan de nice-waarde van een proces alleen maar verhogen(het proces dus een lagere prioriteit geven). Root is de enige die een proces eenhogere prioriteit kan geven.

gebruiker@naam−pc : ˜ $ n ice t ree /

Page 126: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 117

Start het programma tree / met de standaard nice-waarde van 10. Je kan natuur-lijk ook de rangorde wijzigen met renice. Hiervoor heb je de PID van het procesnodig.

gebruiker@naam−pc : ˜ $ ren ice 12 3456

Plaatst het programma met PID 3456 op nice waarde 12.

8.2.5 Kill

Met ‘kill’ kun je een signaal sturen naar processen. Belangrijk hierbij om te wetenis het PID nummer van de processen waar je een signaal wil naar sturen. Stan-daard wordt ‘kill’ gebruikt om een TERM-signaal te sturen. Hierbij wordt aan hetproces gevraagd om zichzelf te beeindigen. Wil je de botte bijl gebruiken om hetproces te vernietigen, dan maak je gebruik van een

gebruiker@naam−pc : ˜ $ k i l l −9 PID−nummer

Dit is uiteraard als elke andere methode om te stoppen gefaald heeft. Er zijnmeerdere signalen te communiceren naar processen toe. ‘man kill’ helpt je hierbij.

Jobs vermoord je door een extra % voor het jobnummer te plaatsen.

gebruiker@naam−pc : ˜ $ k i l l %2

Zo vermoord je jobnummer 2.

8.3 GNU/Linux booten

Als je je PC inschakelt, gebeuren er heel wat processen vooraleer je aan inlog-scherm komt.

Bij het opstarten checked het BIOS naar de aanwezige hardware en na een gan-se reeks controles laadt het de eerste sector van je harde schijf: de MBR. In deMBR is je bootloader geınstalleerd. Bij ubuntu is dit standaard grub maar dit kanje aanpassen. Vervolgens laadt uw bootloader de kernel image die u hebt aan-gegeven in het geheugen. Daarna vertelt het de processor om de kernel uit tevoeren. Wanneer de kernel is geladen en uitgevoerd, worden alle kernel specifie-ke onderdelen en taken geınitialiseerd en wordt het init-proces gestart. Dit proceszorgt ervoor dat alle bestandssystemen (als gedefinieerd in /etc/fstab) aangekop-peld en klaar gemaakt worden. Daarna voert het verschillende scripts uit die terug

Page 127: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 118

te vinden zijn in /etc/init.d. Deze scripts starten de hulpmiddelen die nodig zijn omuw systeem volledig te starten.

Als alle scripts zijn uitgevoerd, activeert init de terminals (in de meeste gevallenalleen de consoles die achter Alt-F1, Alt-F2, etc zijn verborgen) met agetty dat alstoepassing wordt mee gestart, zodat u kunt inloggen via login op een niet virtueleterminal.

8.3.1 GRUB

GNU GRUB is een BootLoader voor meerdere platformen. Het is een pogingom een bootLoader te maken voor PC-compatible machines die behalve de mo-gelijkheid heeft om gebruiksvriendelijk te zijn voor de niet technisch ingesteldegebruiker ook uitermate flexibel is om experts in diverse omgevingen van dienstte zijn.

Het belangrijkste deel van GRUB begrijpen, is begrijpen hoe GRUB harde schij-ven en partities noemt. Uw Linux partitie /dev/hda1 (voor IDE schijven) of /dev/s-da1 (voor SATA/SCSI schijven) heet waarschijnlijk (hd0,0) onder GRUB. Vergeetniet de haakjes rond hd0,0 - ze zijn vereist.

Harde schijven tellen liever vanaf nul dan vanaf “a” en partities beginnen bij nulin plaats van een. Merk ook op dat met hd apparaten alleen harde schijven wor-den geteld en geen atapi-ide apparaten zoals cdrom spelers en branders. Ookwordt hetzelfde gebruikt bij SCSI schijven. (Normaal gesproken krijgen ze hogerenummers dan ide schijven tenzij de bios is ingesteld om vanaf SCSI schijven opte starten.) Als u de BIOS instelt om van een andere harde schijf op te starten,wordt die harde schijf gezien als hd0.

Via /boot/grub/menu.list kun je GRUB instellen. Dankzij de documentatie in hetdocument kom je al snel op de hoogte van de diverse opties.Veel gevraagde features zijn het veranderen van de boot-volgorde (die is in testellen door de waarde van ‘default’ aan te passen en het aantal titels te tellen tebeginnen bij nul) en het invoegen van een splashscreen 1.

Na het instellen voer je een simpele :

gebruiker@naam−pc : ˜ $ sudo update−grub

uit om deze te activeren.1http://www.ubuntu-forums.nl/kb.php?mode=article&k=5

Page 128: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 119

8.3.2 Kernel

Grub slingert je kernel in het geheugen zodat deze geladen en uitgevoerd wordt.De kernel pakt zichzelf uit en kopieert dit naar een RAM-disk. Hier voert hetde eerste bewerkingen door om nadien over te schakelen naar het aanwezigesysteem op harde schijf. Via het commando ‘dmesg’ kun je achterhalen wat jekernel bij het booten heeft uitgespookt.

Je zal opmerken dat de kernel heel wat device-drivers initialiseert. Dit zijn speci-ale ‘devices’ die contact tussen de kernel en de gebruiker mogelijk maken (doorde tty’s) maar ook input-output regelen naar de harde schijven, scherm, netwerk-kaart, USB-stick, enz.

8.3.3 init

Nadat de kernel zich heeft geınitialiseerd, wordt init opgestart. Nadat de kernelinit heeft opgestart, start het nooit een ander programma meer. De kernel wordteen manager en een provider, geen actief programma.

Dus om te zien wat de computer aan het doen is nadat de kernel is opgestart,zullen we init moeten bestuderen. init doorloopt een gecompliceerde opstartreeksdie niet voor alle computers gelijk is.

Procedure :

1. De kernel zoekt op diverse plaatsen naar init en draait de eerste die gevon-den wordt.

2. init draait /etc/rcS.d

3. init doet een aantal noodzakelijke dingen en voert vervolgens alle scripts uitvan het standaard-runlevel

Het programma init wordt geconfigureerd door /etc/inittab .

A Runlevels

In /etc/inittab wordt onder andere de verschillende run-levels gedefinieerd voorhet systeem.

# Runlevel 0 i s h a l t .# Runlevel 1 i s s ing le−user .# Runlevels 2−5 are mu l t i−user .# Runlevel 6 i s reboot .

Page 129: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 120

Runlevels zijn diverse service-niveaus waarin je computer kan werken. Zo kun jedus heel snel veranderen van bijvoorbeeld een desktop-pc naar een server-pc viarunlevels (hoewel dit niet standaard is gedefinieerd in ubuntu). Op die verschillen-de runlevels draaien verschillende diensten. Zo zou een desktop-pc uiteraard eengrafische server moeten draaien terwijl dit voor een server-pc niet nodig is. De-ze laatste heeft dan weer nood aan bijvoorbeeld een webserver, ftp-server, enz.Allemaal services die moeten worden opgestart of afgesloten. Door je runlevelzodanig te organiseren, kun je dan met een simpel commando als ‘init nummer-runlevel’ overschakelen. Een standaard ubuntu desktop-pc maakt gebruik vanrunlevel 2. Dit definieert een multi-user systeem met grafische omgeving.

De aandachtige lezer heeft opgemerkt dat er twee runlevels voorbehouden zijnaan het afsluiten en rebooten van het systeem.

gebruiker@naam−pc : ˜ $ sudo i n i t 6

Heeft als gevolg dat de reboot-procedure wordt uitgevoerd.

B /etc/rc2.d

Init voert het script /etc/init.d/rc uit. Dit handelt vervolgens de verschillende scriptsaf die de verschillende runlevels definieren. Meer bepaald leest het achtereenvol-gens de scripts (of beter de symbolische links naar de scripts die staan in /etc/i-nit.d/) uit die in /etc/rcN.d staan (waar N het nummer is van een runlevel).

In zo’n runlevel map staan dus verwijzingen naar scripts in /etc/init.d. Staat erin hun naam een ‘S’ dan wordt de service opgestart. Staat er een ‘K’ dan wordtdeze gestopt. Het nummer dat ook is opgenomen, bepaalt de volgorde waarinhet wordt opgestart. Uiteraard neemt een runlevel de services niet over van eenander runlevel.

De scripts in /etc/init.d zijn heel eenvoudig qua structuur. Hun argumenten be-staan meestal uit ‘start’, ‘stop’ of ‘reload’ van de services. Bijvoorbeeld :

gebruiker@naam−pc : ˜ $ sudo / e tc / i n i t . d /gdm r e s t a r t

Heeft als gevolg dat de grafisch loginmanager opnieuw wordt opgestart. Omdatdit proces meerdere kind-processen met zich meedraagt (waaronder de volledigegnome-omgeving) staat dit gelijk aan het bruusk stoppen van je grafische omge-ving om opnieuw in te loggen.

Een lijst van enkele veelgebruikte systeem-diensten:

inetd, xinetd netwerk-diensten.

Page 130: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 121

atd, cron, anacron diensten die op bepaalde tijdstippen moetenlopen.

udev automatisch mounten devices (harde schijven,cd’s, enz)

sshd, telnetd ondersteuning van verschillendecommunicatieftpd,

lpd, cups printer-diensten.

syslogd, klogd loggen van debug-boodschappen van pro-gramma’s en kernel-taken.

C Configuratie

Configuratie is heel eenvoudig. Je kan manueel de levels gaan ordenen door ‘S’en ‘K’ te verwisselen, het volgnummer aan te passen of de naam te wijzigen. Weetechter heel goed wat je aan het doen bent.

Grafisch is het mogelijk om services aan- uit te vinken via menu Systeem/Be-heer/Services.

Figuur 8.2: Grafisch service-beheer

Een handige tool is ook ‘sysvconfig’ om runlevels te editen.

Page 131: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 122

8.3.4 Upstart

Het systeem om GNU/Linux te booten werd door ubuntu.com onlangs gewijzigd2.Bedoeling is om het ganse proces nog meer instellingsmogelijkheden te geven 3.

Voorlopig kan upstart overweg met sysV maar het is de bedoeling dat op middel-lange termijn deze vervangen wordt. Gelukkig is voor ons upstart compatibel methet ‘oude’ systeem van SysV.

2Zie de website: /http://upstart.ubuntu.com/ en de specificaties :http://upstart.ubuntu.com/misc/upstart.pdf

3voor een uitgebreide bespreking zie : http://www.netsplit.com/blog/articles/2006/08/26/upstart-in-universe

Page 132: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 123

Oefening:

toon een hierarchisch overzicht van alle lopende processen met het commando‘ps -e - -forest’.

Wat is het eerste programma met PID 1?Welk programma is er actief op TTY2?Log in op virtuele console 2 (via Ctrl Alt F2)Keer terug naar gnome (CTRL Alt F7)opnieuw ps -e - -forestWelk programma is er nu actief op TTY2?

Welk programma is er gekoppeld aan GDM?Kill het programma GDM. Wat gebeurt er?

Page 133: Linux Cursus Door Koen Wybo

UNIT 8. PROCESSEN EN BOOTEN 124

Page 134: Linux Cursus Door Koen Wybo

9Op het net

Als men netwerk zegt dan denken de meesten onder ons aan TCP/IP. Het meestbekende en gebruikte protocol om je te connecteren met internet en andere com-puters. Er zijn echter nog heel wat meer protocollen: FTP, telnet, draadloos, tor-rent, P2P enzovoort.

In een eerste beweging focussen we ons op TCP/IP voor een kabelverbinding,kijken hoe je de hardware aan de praat krijgt en welke configuraties hier hundienst bewijzen.

9.1 Plug jezelf in

Je hebt meerdere zaken nodig vooraleer je op je gemak kan surfen op het WWW.Je beschikt over een PC met ethernetkaart die vervolgens gekoppeld wordt aanhet modem van je kabelleverancier. Verwacht wordt dat de leverancier zijn gedeel-te van het werk goed vervult. Om een connectie te maken, verstuurt je ethernet-kaart een DHCP-aanvraag die het vervolgens krijgt van je provider. Deze heeft jenaast een IP-nummer ook de IP-adressen van de DNS-servers. Heb je een kleinnetwerkje dan is er ook nood aan een gateway.

Voor alle duidelijkheid: beschik je over kabel en heb je deze ingeplugd bij deinstallatie van ubuntu: geen probleem. Alle configuratie is reeds gebeurd en jekan zonder problemen op het netwerk. Maar dat kan ons niet storen om hetnetwerk eens uit te pluizen.

125

Page 135: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 126

9.1.1 Wat heb je nodig om te kunnen netwerken?

Voor de theoretische uitleg verwijzen wij graag door naar andere media.

• Je IP-adres: een statisch adres of verkregen via DHCP. Heb je geen net-werkmogelijkheid dan is het aangeraden om je eigen systeem als loopback.1 in te stellen (sommige programma’s vereisen TCP/IP). Je loopback-IP is127.0.0.1

• IP van de DNS-server : een statisch adres of verkregen via DHCP.

In een klein netwerk, achter een router/gateway:

• Je subnet-mask: voor de diverse soorten subnetklassen

• je subnet-adres: aangepaste adres naar je subnetklasse. Is je IP-adres134.12.34.45 dan is je subnet-adres (in geval van broadcast 255.255.255.0)hoogstwaarschijnlijk 134.12.34.O. Loopback heeft geen subnet-adres.

• broadcast-adres: op welk adres verzend je broadcast pakketjes binnen jesubnet. Dit is gelijk aan je subnet-adres met 255 voor het host-gedeelte.

• IP van je gateway: Is het adres voor de router/server die je verbindt met debuitenwereld.

9.1.2 Je netwerk grafisch configureren

A Network-admin

Liefhebbers van grafische configuratietools zullen hun hartje ophalen met network-admin. Te openen via Systeem/Beheer/Netwerk. Daar is het heel gemakkelijk ommanuel DNS, hostname, gateway enz. in te voeren. Bovendien kan je werken metdiverse profielen zodat het makkelijk over te stappen is als je van netwerkinstel-lingen moet veranderen.

1Loopback? Zijn voor computers die niet verbonden zijn aan een netwerk/internet. Tochvereisen sommige programma’s de aanwezigheid van TCP/IP.

Page 136: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 127

Figuur 9.1: Grafische interface om snel je netwerkinstellingen aan te passen.

9.1.3 Een zorgeloze toekomst?

De linux-netwerkmogelijkheden zijn zich -zeker voor thuisgebruikers- op een in-teressante manier aan het ontwikkelen. Er komen protocollen en services uitdie een pijnloze en quasi-automatische configuratie van klein thuisnetwerk in hetvooruitzicht stellen. Twee sleutelprojecten die zich langzaam als standaard aanhet vestigen zijn in linuxland: avahi en network-manager.

avahi: plug in en het werkt . . . Je kan direct chatten, mailen, van een netwerkprin-ter gebruikmaken enz. De opzet achter avahi is om automatisch netwerkgegevensvia open protocollen te verkrijgen. Avahi is een vrije zeroconf-implementatie en isreeds geıntegreerd in Gnome.

network-manager is gericht op laptopgebruikers. Zo mag en gebruiker niet mer-ken dat als je op een laptop een netwerkkabel inplugt, dat het draadloze net-werk wordt stopgezet ten voordele van de snellere verbinding. En omgekeerdals je de kabel ontkoppelt, dat de laptop overschakelt naar het draadloze net-werk. Network-manager doet een beroep op DBUS en HAL om informatie metbetrekking tot je netwerkhardware te achterhalen en zo snel mogelijk werkende tekrijgen.

9.1.4 Netwerken: back to basics

Uiteraard zijn we daar niet tevreden mee: wat gebeurt er op de achtergrond?Welke bestanden worden ingelezen/ aangepast?

A Verkenning

Twee zaken zijn belangrijk om te netwerken onder linux: interfaces en routes.

Welke interfaces zijn er werkzaam. Met het commando ‘ifconfig’ kunnen we ditachterhalen:

gebruiker@naam−pc : ˜ $ i f c o n f i geth0 Link encap : Ethernet HWaddr 00:C0:9F :FB:8F:8C

i n e t addr :192 .168 .1 .3 Bcast :192.168.1 .255 Mask:255.255.255.0i ne t6 addr : fe80 : : 2 c0 :9 f f f : f e f b :8 f8c /64 Scope : L inkUP BROADCAST RUNNING MULTICAST MTU:1500 Met r i c :1RX packets :1804 e r r o r s :0 dropped :0 overruns :0 frame:0TX packets :1428 e r r o r s :0 dropped :0 overruns :0c a r r i e r :0

Page 137: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 128

c o l l i s i o n s :0 txqueuelen :1000RX bytes :2184635 (2 .0 MiB ) TX bytes :171016 (167.0KiB )I n t e r r u p t :20

eth1 Link encap : Ethernet HWaddr 00:13:CE:8A: 7 4 :DEi n e t addr :192 .168 .2 .5 Bcast :192.168.2 .255 Mask:255.255.255.0i ne t6 addr : fe80 : : 2 1 3 : c e f f : fe8a :74de /64 Scope : L inkUP BROADCAST RUNNING MULTICAST MTU:1500 Met r i c :1RX packets :10 e r r o r s :0 dropped :0 overruns :0 frame :0TX packets :7 e r r o r s :0 dropped :0 overruns :0 c a r r i e r :0c o l l i s i o n s :0 txqueuelen :1000RX bytes :1812 (1 .7 KiB ) TX bytes :2914 (2 .8 KiB )I n t e r r u p t :17 Base address :0 xe000 Memory : b0002000−b0002 f f f

l o L ink encap : Local Loopbacki n e t addr : 1 2 7 . 0 . 0 . 1 Mask : 2 5 5 . 0 . 0 . 0i ne t6 addr : : : 1 / 1 2 8 Scope : HostUP LOOPBACK RUNNING MTU:16436 Met r i c :1RX packets :19 e r r o r s :0 dropped :0 overruns :0 frame :0TX packets :19 e r r o r s :0 dropped :0 overruns :0 c a r r i e r:0c o l l i s i o n s :0 txqueuelen :0RX bytes :1067 (1 .0 KiB ) TX bytes :1067 (1 .0 KiB )

Wat kun je eruit halen:

• Welke hardware-interface actief is. Er zijn diverse interfaces:

– Loopback: lo

– Ethernet: eth0, eth1, . . .

– Wi-Fi: wlan0, wlan1, wifi0, . . .

– Token Ring: tr0, tr1, . . .

– PPP: ppp0, ppp1, . . .

Het toont aanvullend je uniek HW-adres.

• Welke data-laag er gebruikt wordt: Link encap.

• Wat je netwerk-laag is: inet staat voor IPV4, er is ook een IPv6 aanwezig.

• het toont je ook de instelling van je transportlaag: je netwerkinstellingen. eningestelde opties.

• aanvullende is er info over het aantal verzonden(TX) en ontvangen(RX)data-pakketjes.

Iwconfig toont je de draadloze apparaten.

Page 138: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 129

koen@thinkpad : ˜ $ iwcon f i gl o no w i re less extens ions .

eth0 no w i re less extens ions .

eth1 rad io o f f ESSID : ” be lk in54g ”Mode : Managed Frequency :2 .462 GHz Access Po in t :00:23:67:4A:CD:C1B i t Rate :0 kb / s Tx−Power= o f f S e n s i t i v i t y =8/0Retry l i m i t :7 RTS t h r : o f f Fragment t h r : o f fPower Management : o f fL ink Qua l i t y :0 S igna l l e v e l :0 Noise l e v e l :0Rx i n v a l i d nwid :0 Rx i n v a l i d c r yp t :0 Rx i n v a l i df r ag :0Tx excessive r e t r i e s :0 I n v a l i d misc :0 Missedbeacon :0

i rda0 no w i re less extens ions .

Nummer twee in de rij: welke route volgt mijn PC in een thuisnetwerk:

gebruiker@naam−pc : ˜ $ rou te −nKernel IP r o u t i n g tab leDes t i na t i on Gateway Genmask Flags Met r i cRef Use I f ace192.168.2.0 0 . 0 . 0 . 0 255.255.255.0 U 0 0

0 eth1192.168.1.0 0 . 0 . 0 . 0 255.255.255.0 U 0 0

0 eth00 . 0 . 0 . 0 192.168.1.1 0 . 0 . 0 . 0 UG 0 0

0 eth0

B Instellen van interfaces en routes

Het commando route en ifconfig zorgen ervoor dat een interface en route toegan-kelijk wordt voor de kernel netwerklaag.

i f c o n f i g i n t e r f a c e IP−adres op t i es

Het is aan te raden om met de opties ook het netmask en broadcast mee te geven.

Zo kun je met

gebruiker@naam−pc : ˜ $

Page 139: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 130

i f c o n f i g eth0 :1 192.168.1.10 netmask 255.255.255.0 broadcast192.168.1.255

Je netwerkkaart een statisch adres opgeven

Je stelt de route in naar de default gateway met

gebruiker@naam−pc : ˜ $ rou te add d e f a u l t gw 192.168.1.1

Maak je gebruik van dhcp, dan laat je de dhclient automatisch de nodige zakeninvullen. (vergeet niet om eerst de dhclient te installeren ;-) )

gebruiker@naam−pc : ˜ $d h c l i e n t eth0

Merk op: dhclient is heel gevoelig voor het manueel opstarten. Het is immersde gewoonte dat het maar 1 keer bij het opstarten gebeurt. Meerdere processenvan dhclient kunnen worden opgestart en kunnen met elkaar in conflict komen.Daarom is het beter om dhclient eerst uit te schakelen vooraleer je deze manueelopstart. Een “sudo killall dhclient” klaart de klus.

C Netwerkinstellingen

Het systeem bewaart de instellingen die je hebt aangebracht deze kun je terug-vinden in /etc/network/interfaces . Deze worden bij het booten opgestart als ‘autoethX’ zijn ingevuld.

De aandachtige lezer heeft opgemerkt dat de gateway wel wordt opgegeven maarniet de DNS. Als je werkt met dhcp is dit uiteraard geen probleem: het wordtautomatisch ingevoerd. Werk je manueel dan moet je /etc/resolv.conf handmatigaanpassen.

gebruiker@naam−pc : ˜ $ cat / e tc / reso l v . confnameserver 195.130.130.5nameserver 195.130.130.133search t e l e n e t . be

D Enkele leuke opties

/etc/hostsGebruik je om IP-namen om te zetten naar hostnamen. Dit kan heel handig zijn in

Page 140: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 131

kleine netwerken. (het speelt een lokale variant van wat DNS doet) maar kan eensleur worden als de namen of IP-adressen worden veranderd. Het is zeker nietaan te raden als je je netwerk via DHCP instelt.

hostnameMet het hostname-commando kun je de naam van je eigen PC instellen.

9.1.5 Troubles?

A netstat

Met netstat -rn kun je de routes-tabel opvragen.

gebruiker@naam−pc : ˜ $ n e t s t a t −rnKernel IP r o u t i n g tab leDes t i na t i on Gateway Genmask Flags MSSWindow i r t t I f a ce192.168.1.0 0 . 0 . 0 . 0 255.255.255.0 U 0 0

0 eth00 . 0 . 0 . 0 192.168.1.1 0 . 0 . 0 . 0 UG 0 0

0 eth0

B Ping

Met ping verstuur je enkele pakketjes richting een IP-adres en ziet hoe de responserop is. Zo kom je te weten of er pakketjes uitvallen, een slechte verbinding is ofniet. Merk op: sommige servers antwoorden niet op ping . . .

C traceroute

Met traceroute kun je route opvragen die de pakketjes afleggen op weg naar dehost. Zo kun je problemen detecteren die op het WWW zich voordoen.

gebruiker@naam−pc : ˜ $ t race rou te www. google . bet race rou te : ” be ” bad value f o r packet leng thkoen@thinkpad : ˜ $ t race rou te www. google . bet race rou te : Warning : www. google . be has m u l t i p l e addresses ;using 216.239.59.104t race rou te to www. l . google . com (216.239.59.104) , 30 hops max,40 byte packets

1 groot (192 .168 .1 .1 ) 0.127 ms 0.098 ms 0.094 ms2 dD5E07601 . access . t e l e n e t . be (213.224.118.1) 24.831 ms27.832 ms 19.335 ms

Page 141: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 132

3 dD5E0FC41 . access . t e l e n e t . be (213.224.252.65) 5.438 ms8.689 ms ∗4 dD5E0FD49 . access . t e l e n e t . be (213.224.253.73) 37.890 ms11.122 ms 6.189 ms5 dD5E0FD15 . access . t e l e n e t . be (213.224.253.21) 7.781 ms12.272 ms ∗6 dD5E0FD6E . access . t e l e n e t . be (213.224.253.110) 13.259 ms4.642 ms 6.165 ms7 Level3−Telenet−Dusseldor f (62 .67 .38 .149) 50.488 ms13.727 ms 14.681 ms8 ∗ ae−32−54.ebr2 . Dusseldorf1 . Level3 . net (4 .68 .119 .126)54.022 ms ae−31−55.ebr1 . Dusseldorf1 . Level3 . net (4 .68 .119 .158)

23.555 ms9 ae−2.ebr1 . Amsterdam1 . Level3 . net (4 .69 .133 .89 ) 38.536 ms26.202 ms 58.069 ms

10 ae−1−100.ebr2 . Amsterdam1 . Level3 . net (4 .69 .133 .86 ) 39.637ms ae−2.ebr1 . Amsterdam1 . Level3 . net (4 .69 .133 .89 ) 16.749 ms ae−1−100.ebr2 . Amsterdam1 . Level3 . net (4 .69 .133 .86 ) 22.998 ms11 ae−1−100.ebr2 . Amsterdam1 . Level3 . net (4 .69 .133 .86 ) 23.847ms ∗ ae−2.ebr2 . London1 . Level3 . net (4 .69 .132 .133) 25.111 ms12 ae−2.ebr2 . London1 . Level3 . net (4 .69 .132 .133) 28.034 ms ae−21−54.car1 . London1 . Level3 . net (4 .68 .116 .111) 18.547 ms ae−21−56.car1 . London1 . Level3 . net (4 .68 .116 .175) 16.888 ms13 195.50.118.210 (195.50.118.210) 42.065 ms ae−21−54.car1 .London1 . Level3 . net (4 .68 .116 .111) 21.012 ms 195.50.118.210(195.50.118.210) 35.328 ms14 72.14.238.249 (72 .14 .238.249) 28.048 ms 29.407 ms32.848 ms15 ∗ 66.249.95.107 (66 .249.95 .107) 48.038 ms 38.931 ms16 64.233.174.185 (64.233.174.185) 50.878 ms 48.861 ms41.066 ms17 64.233.174.185 (64.233.174.185) 41.621 ms 216.239.49.114(216.239.49.114) 44.184 ms 78.474 ms18 216.239.49.114 (216.239.49.114) 107.758 ms gv−in−f104 .google . com (216.239.59.104) 38.810 ms 46.679 ms

9.1.6 Grafische netwerktools

De WIM bestaat als gnome-nettool die nog leuke extra’s biedt als finger, whois,enz.

Page 142: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 133

Figuur 9.2: Grafische variant voor diverse handige netwerktools

9.2 SSH

SSH garandeert de vertrouwelijke en correcte data-overdracht tussen de tweecomputers via encryptie en message authentication codes (MACs). Een bekendetoepassing van SSH is een login op een remote machine en vervolgens op-drachten uit te voeren, maar er worden ook tunneling, doorgeven van TCP poortsen X11 verbindingen ondersteund. Verder kunnen bestanden uitgewisseld wor-den via SFTP of SCP protocollen.

Wat heb je nodig? openssh-client om in te kunnen loggen op een pc waar deopenssh-server is geınstalleerd. Uiteraard moet de server als service zijn opge-start om anderen te laten inloggen op je pc.

9.2.1 Inloggen op een andere pc

gebruiker@naam−pc : ˜ $ ssh gebruiker@192 .168 .1 .1

Je bent nu ingelogd op de remote pc. Nu kun je niet-grafisch commando’s uit-voeren. De andere gebruikers merken je aanwezigheid op door een simpel ‘w’-commando.

9.2.2 Grafische programma’s opstarten

Beschikt de remote machine over een X-server? Dan kan je grafische program-ma’s opstarten door in te loggen met de optie -X.

Page 143: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 134

gebruiker@naam−pc : ˜ $ ssh −X gebruiker@192 .168 .1 .1

Het invoeren van bijv. het commando ‘firefox’ start de webbrowser op de remotemachine op en brengt dit beeld naar je lokale pc. Uiteraard zal als je een bestandwil opslaan, dit niet op je lokale pc gebeuren maar op de PC waar firefox is opge-start.Merk ook op dat alle kind-processen die worden opgestart ook grafisch zullenworden overgebracht. Een pdf openen in firefox open je pdf-viewer op afstand.Het beeld wordt ook overgedragen.

9.2.3 Grafisch bestandsbeheer op afstand

Wist je dat je op een heel makkelijke manier bestanden kan kopieren tussen tweePC’s?Ga naar de invoermodus van nautilus (gnome-omgeving) en voer het volgendcommando in : “ssh://[email protected]”. Er wordt gevraagd om eenpasswoord (gebruik gnome-keyring als je makkelijk je paswoorden wil laten ont-houden) en je krijgt de map-inhoud van de remote pc te zien. Met simpeleselecteer- en sleepmuisklikken, kan je bestanden van je local naar de remotepc kopieren en omgekeerd.

Figuur 9.3: Vanuit Nautilus snel naar een remote harde schijf.

Een andere methode is om via het menu locaties/verbinden met server als dienst-type ssh te selecteren en de nodige gegevens te verschaffen. Dit heeft als extravoordeel dat een desktop-icoon wordt aangemaakt zodat je voortaan snel verbin-ding kunt maken.

Figuur 9.4:

En ja, je kan zelfs via ssh remote harde schijven koppelen aan je bestandssys-teem. Zoek het eens op. Kernwoord: Fuse.

Page 144: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 135

Wil je liever op een niet grafisch manier bestanden kopieren? Via scp kun je veiligbestanden en mappen overbrengen. Zie hiervoor ‘man scp.’

9.3 Enkele weetjes

• VNC onder ubuntu is heel simpel. Installeer vino en via menu Systeem/Voorkeuren/ Bureaublad op afstand kun je makkelijk je scherm vrijgeven.Op de remote pc voer je gewoon het command vncviewer xxx.xxx.xxx.xxx:nr-scherm uit.

• Browsers: Probeer naast firefox misschien ook eens opera of waarom nietkonqueror (KDE). Met ‘links’ kun je ook vanuit je virtuele terminal browsen.Het is dan ook heel makkelijk om met een terminal-muis te kunnen klikken.Met het pakket ‘gpm’ krijg je ook in de terminal een (blokjes)cursor.

• ftp-clients: gftp is de standaard client. Met nautilus kun je ook makke-lijk selecteren en slepen. Vul hiervoor ftp://[email protected] in.Een andere methode is om via het menu locaties/verbinden met server alsdiensttype ftp te selecteren.

• usenet: antwoorden nodig voor je problemen: gebruik ‘pan’ om be.comp.os.linuxte bereiken.

• Pidgin is zowat de standaard om te ‘MSN’en.

• Een alternatieve manier om de laatste iso’s van ubuntu te downloaden: bit-torrent. Transmission, freeloader, bittornado-gui, ktorrent enz. zijn maarenkele grafische schillen voor torrent.

• Een ‘simpele’ firewall voor thuisgebruik: firestarter. Let wel op: firestartervraagt om een nauwkeurige configuratie anders kan je zelfs de meest een-voudige dingen als bijv. surfen op het internet niet meer.

Page 145: Linux Cursus Door Koen Wybo

UNIT 9. OP HET NET 136

Page 146: Linux Cursus Door Koen Wybo

10Beheer van apparaten

10.1 Devices: concept

De Linux kernel zorgt ervoor dat we hardware -apparaten, zoals harde schijven,aan kunnen spreken als waren het bestanden, de zgn. device-bestanden. Je vindtze in de /dev-directory. Als je daar een ls -l geeft krijg je een wat afwijkende lijst vanbestanden te zien. Zo heb je character-devices, block-devices als voornaamstespelers (maar er zijn bijvoorbeeld ook network-devices). Character-devices gevenhun input per karakter weer (zoals toetsenbord, muis, . . . ). Block-devices gevenhun data af per ‘blokje’.

De kernel interageert met de hardware-apparaten door middel van deze devices.Vooraleer de juiste codes door de kernel worden uitgevoerd moet de kernel wetenhoe hij de ontvangen data moet verwerken. De kernel heeft nood aan drivers diede digitale eentjes en nulletjes omzetten naar de juiste signalen.

Deze drivers zijn ofwel: beschikbaar ‘native’ in de kernel of kunnen als moduleaan de kernel gekoppeld worden. Let op: de modules zijn afhankelijk van hetversie-nummer van de kernel. Als je een module zelf compileert, dan moet jedit opnieuw doen als je van kernel verandert. Bovendien moet je deze modulesaankoppelen (via insmod). Om dit te automatiseren kun je ze laten opstartentijdens het booten. Stop ze gewoon in /etc/modules. De service /etc/init.d/modutilslaadt ze dan tijdens het booten. Je kan ook modules afkoppelen via rmmod. Eenoverzicht krijg je via ‘lsmod’.

De installatie van bijv. drivers via programma’s die je onder MS-windows gewoonwas/bent, bestaat onder GNU/Linux niet. Alle interactie met de hardware begintmet de kernel. Welke ‘drivers’ zitten in de kernel? Kijk eens na op http://www.

kernel.org. Welke modules kun je bouwen? Zoek het eens op of de fabrikantvan je hardware.

137

Page 147: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 138

10.2 Daemons en servers

Heel wat programma’s die ‘diensten’ aanbieden naar specifieke hardware zijnheuse servers die via een gigantische database honderden apparaten kunnenaanspreken. Het zijn servers: ze kunnen dus niet enkel voor een lokale machineingezet worden maar bieden hun diensten via netwerk aan anderen aan.Uiteraard ken je servers die de inhoud van (gedeeltes van) je harde schijf delen.In GNU/Linux heb je ook servers voor printers, beeldscherm en geluid.

Er zijn ook op de PC heel wat daemons die uitkijken naar hardware-activiteit. Zoheb je daemons die USB in de gaten houden. Van zodra er een apparaat in dehardware geplugd wordt, stuurt deze de signalen door naar de kernel. Anderedaemons merken de connectie op en zorgen voor de transfer van gegevens naarprogramma’s.Plug je je digitale fototoestel in je USB-slot, dan zorgt udev voor de aanmaak vaneen entry in /dev zodat de kernel kan communiceren met het apparaat. Udevis de device-managerdaemon voor GNU/Linux(kernel 2.6). Zijn primaire taak isom devices aan te maken en/of te verwijderen in /dev. Vroeger waren de device-nodes namelijk statisch en had men dus honderden devices in /dev. Udev zorgtervoor dat er enkel devices worden aangemaakt die ook echt op het systeemaanwezig zijn. HAL zorgt voor het inlezen van de hardware-specificaties en biedtdeze gegevens aan de software-programma’s aan. Om verder te gaan op hetverhaal van de digitale camera: HAL zorgt ervoor dat het modelnummer en heelwat andere specifiaties worden opgezocht en vervolgens aangeboden aan eenapplicatia als gphoto. Gphoto hoef je dan niet meer zelf te configureren maar kan’automatisch’ op basis van de gegevens van HAL de nodige instellingen ladenzodat je foto’s direct geımporteerd kunnen worden.

Wil je weten wat hal aan apparaten gevonden heeft?

gebruiker@naam−pc : ˜ $ l s h a l

Meer specifiek op zoek naar

• PCI-apparaten zoek met ‘lspci -v’

• usb : ‘lsusb’

• hardware : ‘sudo lshw | more’

Wens je het volledige plaatje: wens je dat bijv. je USB-stick automatisch aange-koppeld wordt als je deze inplugd: dan heb je nood aan gnome-volume-manager.Deze koppelt het vast aan je systeem en start nautilus op die de inhoud toont.

Page 148: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 139

10.3 Printers en cups

Cups is een printserver (in Ubuntu beschikbaar als ‘cupsys’) en kan heel wat aan:parallel, usb, serieel, netwerk, enz. Het is de standaard geworden voor printer-beheer in de meest uiteenlopende GNU/Linux-distro’s. Een groot stuk van zijnsucces heeft het zeker te danken aan de duizenden printerprofielen die het heeftgeıntegreerd uit andere projecten en de vlotte integratie van de ‘voorgangers’.

Een nieuwe lokale printer toevoegen is heel makkelijk. Vanuit het menu Systeem/ Beheer / Printers is het zo simpel als klikken op ‘nieuwe printer’ waarna de data-base met profielen en een makkelijke configuratie-programma wordt ingeladen.

Verder configuratie van printer en cups-server doe je via Systeem/Beheer/Afdruk-ken.

Figuur 10.1: Vanaf Gnome 2.18 wordt de configuratie van printers en cups-server uitgebreider

Een andere methode voor toevoegen en configuratie is via de cups-daemon. De-ze beschikt over een webgebaseerde interface.Open een browser en ga naar het adres : http://localhost:631 of http://127.0.0.1:631 (zorg ervoor dat een firewall dit adres niet blokkeert)

Page 149: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 140

Figuur 10.2: De cup-daemon onderhoudt ook een webinterface voor het toevoegen en beherenvan printers.

Uiteraard kun je ook printers toevoegen om een niet-grafische manier. /etc/-cups/printer.conf is de plaats om printers toe te voegen (als je weet wat je doet).

Hoe gaat alles in zijn werk? Maak je een printer aan dan wordt deze toegevoegdaan /etc/cups/printer.conf en wordt een gelijknamige ppd (PostScript Printer Defi-nition) aangemaakt in /etc/cups/ppd. Vanaf nu kan cups deze ppd gebruiken alshoogkwalitatieve printerfilter.Als je print dan komt je printopdracht in /var/spool/cups terecht. Via ‘lpstat’ kun jeprintopdrachten ‘in de wachtrij’ bekijken en aanpassen. Zo kun je ze verwijderenmet het commando: cancel naam-van-de-printopdracht.

Wil je dieper op systeemniveau werken en een kijkje werpen in de configuratie-mogelijkheden van dpkg: ‘sudo dpkg-reconfigure cupsys’. Dit is aan te raden alsje in een gedeelde windows-omgeving werkt.

10.4 Beelscherm(en) en Xorg

Xorg-server, kortweg X of ook X11 genoemd, is een platform om onder verschil-lende besturingssystemen, zoals Unix en VMS, een grafische bediening te kun-nen gebruiken. Het platform bestaat uit een server, de X Window-server, diehet scherm beheert en zogenaamde clients die een verbinding maken met de X-server en daaraan doorgeven wat er op het scherm moet komen. Op de meestedesktop-Unix-systemen draait een servercomponent lokaal, samen met een win-dowmanager, zodat een bureaublad, de taakbalk, menu’s en vensters afgebeeldkunnen worden.

Elke PC heeft een console. Deze console bestaat uit een scherm, muis en toet-senbord (sommige hebben meerdere schermen, muizen en toetsenborden). Delinux-kernel laadt bij het opstarten een tekst-gebaseerde video-driver samen met

Page 150: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 141

een toetsenborddriver. Uiteindelijk laat het een tekst-gebaseerde terminal zienwaaruit je dan commando’s kan doorgeven via een shell (bijv. Bash) en je kantekst-gebaseerde programma’s starten.

Figuur 10.3: Beknopte, schematische voorstelling van de werking van de X-server

Wens je grafische elementen tevoorschijn toveren dan moet je een programmaopstarten die weet hoe je bijv. een vierkant op je scherm kan tekenen. Het alge-mene programma hiervoor is X11, ook genoemd: de X-server. De X-server laadteen grafische videodriver, een toetsenborddriver en een muisdriver. Dan laat deX-server toe dat andere programma’s (de X-clients) een venster tekenen. Dit ven-ster is een rechthoekig gebied waarin het programma wordt uitgevoerd en op hetscherm verschijnt. X11 laat programma’s toe om de console te delen zodat ermeerdere vensters op het scherm getoond kunnen worden.

Als je de X-server opstart dan verandert het scherm in grijs en maakt een (gro-te) X-muiscursor. Dan wacht de server op X-clients die zich met de server willenverbinden. In tegenstelling tot Mac en Windows accepteert de X-server ook net-werkconnecties. Zo kun je inloggen vanop een andere PC en vanuit de server-PCgrafische programma’s opstarten die dan op de client-PC worden getoond.

Wanneer een X-client connectie maakt met de X-server dan spreekt het versie 11van het X-protocol (vandaar de naam X11). Zo vertelt de client wat de server moettekenen en de server vertelt aan de client wat welke input er van het toetsenborden muis komt.

Voor praktisch alle gangbare besturingssystemen, zoals Mac OS en Microsoft

Page 151: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 142

Windows (waar het gebruikt wordt als Cyqwin/X), bestaan er X Window-servers.

Standaard wordt de X-server geınstalleerd tijdens de installatieprocedure vanUbuntu-desktop-editie. Via gdm wordt X en de bijhorende window- of desktopma-nager opgestart. Wordt je kaart ondersteund? Zoek het eens op http://xorg.freedesktop.org/releases/X11R7.1/doc/RELNOTES3.html#5

10.4.1 /etc/X11/xorg.conf

Er zijn niet veel goede configuratietools voor Xorg. Met het commando ‘sudodpkg-reconfigure -phigh xserver-xorg’ krijg je de standaard configuratiebestandterug zoals die tijdens de installatie is aangemaakt.

Je kan /etc/X11/xorg.conf ook manueel aanpassen. Een kleine basis helpt je snelop weg.

Basisingredienten: /etc/X11/xorg.conf kent standaard enkel secties die ingelezenworden door de Xorg-server.

Section “Files” plaats van de lettertype-bestanden

Section “Module” extra modules die je kan inladen. Heb je3D-functionaliteit nodig dan moet je afhanke-lijk van je videokaart de optie glx en/of optie driinvoegen.

Section “InputDevice” zijn er meerdere. Dit is de input die wordt gege-nereerd door muis, toetsenbord, tablet, touchs-creen, enz. Komt met een unieke ‘Identifier’ en‘Driver’. Meerder opties kunnen meegegevenworden

Section “Device” de grafische kaart. Opnieuw een unieke Identi-fier’ en ‘Driver’ maar ook een plaats op je bus-systeem (voor het geval je met meerdere grafi-sche kaarten werkt) Opnieuw : heel veel optiesom in te stellen

Section “Monitor” Het scherm. Handige opties zijn HorizSync enVertRefresh

Section “Screen” De weergave van het beeld op je scherm. Geefop : een ‘Identifier’, het device, de monitor enstel hem dan in met de SubSection ”Display”

Section “ServerLayout” hier wordt de server ‘samengesteld’: alle input-devices en screens worden opgesomd.

Andere handige secties zijn : “Extensions” en “DRI”, modes.

Wat de diverse opties zijn: man xorg.conf. Nieuw in Xorg7.2 is autoconfiguratie.Vanaf deze versie is een xorg.conf niet meer strikt noodzakelijk. Uiteraard heb je

Page 152: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 143

dit voor geavanceerd beheer wel nodig.

wil je weten welke fonts op je systeem zijn geınstalleerd: typ fonts://in het invoerveld van nautilus-bestandsbeheer. Je krijgt een volle-dig overzicht van de aanwezige lettertypes.

Figuur 10.4: Overzicht van lettertypes in nautilus.

10.5 Audio en Alsa

De Advanced Linux Sound Architecture, ofwel ALSA, levert audio- en MIDI-functionaliteitvoor het Linuxbesturingssysteem. Sinds versie 2.6 van de Linuxkernel onder-steunt deze ALSA. Voorgaande kernels moeten worden voorzien van patches.

• Efficiente ondersteuning van alle typen audio-interfaces, van geluidskaartenvoor consumenten tot professionele multichannel audio-interfaces.

• Stuurprogramma’s (drivers) voor geluidskaarten die volledig modulair zijn.

• SMP en thread-safe design.

• Een gebruikersruimte bibliotheek (alsa-lib) die het programmeren van pro-gramma’s vereenvoudigt en die functionaliteit naar de kernel biedt.

• Ondersteuning voor de OSS API, waarmee binaire compatibiliteit geleverdwordt voor de meeste OSS-programma’s.

10.6 Scanner en SANE

bron : http://www.freebsd-nl.org/doc/nl/scanners.html

Page 153: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 144

Om prentjes te kunnen inscannen, heb je SANE nodig. Het SANE systeem isopgesplitst in twee delen: de backends (graphics/sane-backends) en de frontends(graphics/sane-frontends). Het deel met de backends zorgt voor de toegang tot descanner zelf. Op http://www.sane-project.org/sane-supported-devices.html vindje de lijst met door SANE ondersteunde apparaten. Het is echt nodig het juistebackend vast te stellen, omdat het anders bijzonder lastig wordt een scanner aande praat te krijgen. Het deel met frontends levert een grafische scaninterface(xscanimage).

Een USB-scanner installeren is met HAL echt kinderspel geworden: gewoon in-pluggen en het werkt.

Lukt het niet?

gebruiker@naam−pc : ˜ $ sane−f i nd−scanner −qfound SCSI scanner ”AGFA SNAPSCAN 600 1.10” a t / dev / pass3

In de uitvoer is te lezen welk type interface en welke apparaatnode worden ge-bruikt om de scanner met een systeem te verbinden. Het merk en het modelworden wellicht niet getoond, maar dat is ook niet echt van belang.

Hierna kan gecontroleerd worden of de scanner ook te zien is door een scanner-frontend. Er zit bij de SANE backends een standaard hulpprogramma scanima-ge(1). Met dit commando kunnen de apparaten zichtbaar gemaakt worden en kanvanaf de commandoregel gescand worden. Met de optie -L kunnen de scanner-apparaten getoond worden:

Hoewel scanimage in staat is om vanaf de commandoregel te scannen, is het aante raden beelden te scannen vanuit de grafische gebruikersinterface. SANE heefteen eenvoudige, maar efficiente grafische interface: xscanimage (graphics/sane-frontends).

Xsane (graphics/xsane) is een ander populair grafisch scanfrontend, dat geavan-ceerde mogelijkheden biedt, zoals meerdere scanmodi (fotokopie, fax, enzovoort),kleurcorrectie, batchscannen, enzovoort. Beide applicaties zijn als plug-in voorGIMP te gebruiken. Voor de KDE-liefhebbers: probeer kooka eens uit.

10.7 Harde schijven lokaal en over het net

Om een extern systeem zoals een harde schijf, een cdrom, een floppy, een tape,. . . te kunnen gebruiken, moet je dit toestel aan de bestandsstructuur van Linuxhangen. Men spreekt van mounten (mount). Het toestel er terug afnemen, noemtmen umounten (umount).

Sven Vermeulen (aka SwifT, lid van Lugwv) legt het als volgt uit:

Zie een medium (cd, dvd - in de rest van deze uiteenzetting zalik enkel cd gebruiken) als een andermans vest. Je kan enkel in een

Page 154: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 145

andermans vest kijken als die ergens hangt. Wel, je kan enkel een cdbekijken als die gemount wordt.Je kan een vest overal hangen: over de tafel, op een stoel, ergensop de vloer of aan de waslijn, maar meestal wordt een vest aan eenkapstok gehangen. Zo ook wordt een cd meestal onder /media/cdromgemount. Het kan ook op andere plaatsen, maar het is de gewoontedat de cd daar gemount wordt.Je kan niet weglopen met een vest terwijl die nog ergens aan hangt(bv. de kaptok), je moet eerst die vest van de kapstok halen. Zo ookmoet je eerst een cd u(n)mounten alvorens je die uit je systeem kanhalen.

Door dit mount/umount gebruik, is de bestandsstructuur ook zeerlogisch. Alles begint met ”/”. Dat is de allerhoogste positie die je kanverkrijgen.

Zie het als de hoofdgang van een huis. Alle kamers of gangenkomen uit in de hoofdgang. Zo ook komen alle andere directoriesuiteindelijk uit op “/”. Verder heeft elke kamer in je huis een eigendoel. Alhoewel je het kan, ga je toch ook niet slapen in de keuken?Wel, zo heeft elke map in de bestandsstructuur een eigen doel. Zo isbijvoorbeeld ”/home” de map waar alle gebruikers hun bestanden inzetten. Ze kunnen nergens anders aan. Dit is zeer gemakkelijk ombv. backups te nemen. Verder kan onder elke map een andere partitieschuilen zonder dat je daarmee als gebruiker geconfronteerd wordt.Alles is dus transparant. Deze partitie wordt dan met “mount” aan hetbestandsstructuur gehangen.

10.7.1 Een filesysteem mounten

Dankzij HAL is het niet nodig om cd-roms, dvd’s, externe harde schijven, USB-sticks, . . . te mounten. Maar wat als het ‘verkeerd gaat’?

De syntaxis om bestandssystemen (cdrom, harde schijf, partitie, . . . ) te mountenis:

gebruiker@naam−pc : ˜ $ mount [ op t i es ] device mountpoint

De parameter “device” staat voor hetgeen, welke bestandssysteem, je wilt moun-ten (floppy, cdrom, harde schijf, partitie, . . . ). De parameter “mountpoint” is denaam van de map waarop je het bestandssysteem gaat mounten. Meestal is dateen zelf aangemaakte map onder de map “/media”.

Wanneer je een mountpoint wilt maken, dan maak je gewoon een map aan (mkdir)in de map “/media”. In GNU/Linux heb je zeker al geen last van stationslettersdie veranderen. Om veiligheidsredenen kan het mounten enkel gebeuren doorroot. Er zijn echter wel softwarepakketten waarin ook andere gebruikers bepaaldebestandssystemen (zoals een cdrom) kunnen mounten.

Page 155: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 146

Mounten van een data-cdrom (bv. /dev/hdc):

gebruiker@naam−pc : ˜ $ mount −t iso9660 / dev / hdc / mnt / cdrom

Een iso-bestand mounten om te zien welke bestanden erachter zitten, of er enkelevan te gebruiken:

gebruiker@naam−pc : ˜ $ mount −o loop i s o f i l e . i so / mnt / loop

Met de mount-opdracht kan je ook opties meegeven zoals, read-only (-o ro),read-write (-o rw), met bepaalde UID/GID (-o uid=xxx gid=xxx) mounten, . . . Dedefaults-options zijn: rw, suid, dev, exec, auto, nouser en async (zie verder).Daarenboven zijn er nog voor elk filesysteem bijkomende opties die standaardtoegepast worden, of die naar goeddunken kunnen aangepast worden. Zie ”manmount”.

De opdracht mount geven zonder opties en parameters, toont je al de gemountefilesystemen:

10.7.2 Een filesysteem u(n)mounten.

Wanneer je GNU/Linux afsluit, worden alle gemounte filesystemen automatischafgekoppeld. Het kan soms nodig zijn om een filesysteem af te koppelen om eenandere te kunnen mounten.

Hier kan je beide parameters gebruiken om een filesysteem af te koppelen.

gebruiker@naam−pc : ˜ $ umount / media / cdrom

of

gebruiker@naam−pc : ˜ $ umount / dev / hda3

Het kan nu zijn dat je een foutmelding krijgt in de aard van:

umount / media / cdromumount : / mnt / f l oppy : device i s busy

D.w.z. dat ergens in je systeem er nog gebruik gemaakt wordt van de map “/me-dia/cdrom” door jezelf of een andere gebruiker.

Page 156: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 147

10.7.3 Filesystemen mounten bij het opstarten.

Het opstarten van Linux gebeurt door de kernel (meestal vmlinuz) op te starten.Op dat ogenblik is er nog niets gemount en aldus niets van de bestandsstructuurbereikbaar. De kernel moet dus zelf de root (/) mounten, voordat verdere bestan-den kunnen bereikt worden. Eenmaal de root is gemount, kunnen de binaries ofde scripts (programma’s) aan alle bestanden op de root. Een van die bestandenis “/etc/fstab” (file system table).Hierin bevinden zich alle filesystemen die tijdens het opstarten kunnen gemountworden. Dit veronderstelt natuurlijk dat de mountpoints bestaan. De syntaxis vanhet bestand ”/etc/fstab”:

gebruiker@naam−pc : ˜ $ cat / e tc / f s t ab# / e tc / f s t ab : s t a t i c f i l e system in fo rma t i on .## < f i l e system> <mount po in t> <type> <opt ions> <dump>

<pass>proc / proc proc d e f a u l t s 0

0# / dev / sda1 −− converted dur ing upgrade to edgyUUID=420f1441−8b10−41aa−821c−b288ac516a28 / ext3 de fau l t s ,e r r o r s =remount−ro 0 1# / dev / sda4 −− converted dur ing upgrade to edgyUUID=8b816573−0f00−42e7−93fc−65682d763fb3 / home ext3 d e f a u l t s0 2# / dev / sda2 −− converted dur ing upgrade to edgyUUID=1B33−0A00 / media / sda2 v f a t de fau l t s , u t f8 , umask=007 , g id =46

0 1# / dev / sda3 −− converted dur ing upgrade to edgyUUID=69ddcf30−5fb f −416b−a253−8aa8366bb84f none swap sw 0 0/ dev / scd0 / media / cdrom0 udf , iso9660 user , noauto 0

0

De syntaxis van een regel is de volgende:

file system Geeft het device (/dev/xxx) of het remote-filesysteem (bv. //pb/c) aan dat moet gemountworden.

mountpoint Definieert het mountpoint voor het filesysteem.Gebruik de term none voor speciale filesyste-men, zoals de swapfile. Hiermee wordt hetdesbetreffende filesysteem wel geactiveerd,maar niet zichtbaar onder de directory-tree.

type Definieert het type van het filesysteem.

mount Een door komma’s gescheiden opsommingmet mount-opties voor het filesysteem.

Page 157: Linux Cursus Door Koen Wybo

UNIT 10. BEHEER VAN APPARATEN 148

options Zie de man-pagina van de opdracht mount voorde beschikbare opties.

dump Geeft aan hoe vaak een backup van het filesys-teem moet worden gemaakt met de opdrachtdump. Als dit veld niet gedefinieerd of nul is,wordt aangenomen dat geen backups van hetfilesysteem nodig zijn.

pass Geeft aan in welke volgorde het filesysteemdoor de opdracht fsch moet worden gecontro-leerd bij het opstarten. Het root-filesysteemmoet een waarde van 1 hebben ; alle andere fi-lesystemen moeten een waarde van 2 hebben.Als er geen waarde of een nul is opgegeven,wordt het filesysteem bij het opstarten niet opconsistentie gecontroleerd.

De aanduiding defaults in het veld options geeft aan dat het filesysteem moetworden gemount met de standaardset opties. Deze zijn:

• rw : het filesysteem wordt read/write gemount.

• suid : de UID en de GID worden herkend op het filesysteem.

• dev: het filesysteem moet beschouwd worden als een special block device.

• exec: de uitvoering van binaries is toegestaan.

• auto: wanneer de opdracht ”mount -a” wordt gegeven, dan zal het filesys-teem automatisch gemount.

• nouser: wanneer een gewone gebruiker dit filesysteem wenst te mounten,dan zal dit niet lukken.

• async : alle input/output naar of van het filesysteem moeten asynchroongebeuren.

10.7.4 Filesystemen mounten als gewone user.

Zoals al vermeld werd, kan enkel root filesystemen mounten of umounten. Voorveel zaken is dat maar goed ook. Om toch veel gebruikte filesystemen zoalscdroms, dvd’s,. . . voor de gewone gebruikers toegankelijk te maken, kan je in‘/etc/fstab’ als optie ‘user’ bijplaatsen. Dit kan je ook bij ’defaults’ gebruiken; danzal ‘user’ de ‘nouser’-optie van de ‘defaults’ overrulen.

Page 158: Linux Cursus Door Koen Wybo

ACreative Commons Licentie

Naamsvermelding – NietCommercieel - GelijkDelen 2.0

CREATIVE COMMONS CORPORATION IS GEEN ADVOCATENKANTOOR ENVERLEENT GEEN JURIDISCHE DIENSTEN. DE VERSPREIDING VAN DEZELICENTIE VEROORZAAKT GEEN JURIDISCHE OF CONTRACTUELE RELATIETUSSEN DE PARTIJEN BIJ DEZE LICENTIE EN CREATIVE COMMONS. CRE-ATIVE COMMONS VERSTREKT DEZE INFORMATIE ZOALS ZE IS, ZONDERGARANTIE. CREATIVE COMMONS STAAT NIET IN VOOR DE VERSTREKTEINFORMATIE EN SLUIT ALLE AANSPRAKELIJKHEID UIT VOOR WELKE SCHA-DE DAN OOK DIE ZOU VOORTVLOEIEN UIT HET GEBRUIK VAN DEZE INFOR-MATIE. Licentie

HET WERK (ZOALS HIERONDER OMSCHREVEN) WORDT TER BESCHIK-KING GESTELD OVEREENKOMSTIG DE BEPALINGEN VAN DEZE CREATIVECOMMONS PUBLIC LICENSE (HIERNA “CCPL” OF “LICENTIE”). HET WERKWORDT BESCHERMD DOOR HET AUTEURSRECHT, EN/OF, INDIEN RELE-VANT, DOOR DE NABURIGE RECHTEN, OF HET SUI GENERIS DATABANKEN-RECHT EN/OF ELK KRACHTENS DE GELDENDE WETGEVING VAN TOEPAS-SING ZIJNDE RECHT. ELK GEBRUIK VAN HET WERK DAT NIET UITDRUK-KELIJK DOOR DEZE LICENTIE TOEGESTAAN WORDT, IS VERBODEN. ELKGEBRUIK VAN HET WERK, OP EEN MANIER DIE ONDER EEN IN DEZE LI-CENTIE BEHANDELD RECHT VALT, BRENGT DE AANVAARDING VAN DEZELICENTIE MET ZICH MEE. DOOR DEZE LICENTIE KENT DE LICENTIEGEVERU DE HIERNA OMSCHREVEN RECHTEN TOE INDIEN U DE VOLGENDE BE-PALINGEN EN VOORWAARDEN AANVAARDT

1. Definities

a) Met “Collectief Werk” wordt een werk bedoeld waarin het Werk, in zijn geheelen in ongewijzigde vorm, samen met een aantal andere bijdragen, die elk een

1

Page 159: Linux Cursus Door Koen Wybo

BIJLAGE A. CREATIVE COMMONS LICENTIE 2

afzonderlijk en zelfstandig Werk vormen, tot een collectief geheel is samen-gevoegd. Collectieve Werken zijn onder andere geregeld een uitgave van eentijdschrift, bloemlezingen of encyclopedieen. Een Werk dat een Collectief Werkis, zal, krachtens deze Licentie, niet beschouwd worden als een Afgeleid Werk(zoals hieronder omschreven).

b) Met ”Afgeleid Werk” wordt een werk bedoeld dat gebaseerd is op het Werk ofop het Werk en andere reeds bestaande werken, zoals een vertaling, een mu-ziekarrangement, een toneel-, literaire of cinematografische bewerking, eengeluidsopname, een kunstreproductie, een ingekorte versie, een samenvat-ting of elke andere vorm waarin het Werk gewijzigd, omgezet of bewerkt kanworden, met uitzondering van de Collectieve Werken, die niet als AfgeleideWerken zullen beschouwd worden in de zin van deze Licentie. Om onduide-lijkheid te vermijden zal, indien het Werk een muziekwerk of een fonogram is,de synchronisatie van het Werk met een bewegend beeld (“synching”) als eenAfgeleid Werk in de zin van deze Licentie beschouwd worden.

c) Met ”Licentiegever” wordt de natuurlijke persoon of rechtspersoon bedoeld diede rechten op het Werk toekent volgens de bepalingen van deze Licentie.

d) Met ”Oorspronkelijke Auteur” wordt de natuurlijke persoon bedoeld die hetWerk gemaakt heeft of, indien het gaat om een voorwerp dat door een naburigrecht beschermd wordt, de oorspronkelijke titularis van het naburig recht.

e) Met ”Werk” wordt het Werk van letterkunde of kunst bedoeld dat beschermdwordt door het auteursrecht en dat het voorwerp is van deze licentie. Voor detoepassing van deze Licentie omvat het “Werk” ook voorwerpen die beschermdworden door een naburig recht, zoals een uitvoering, een fonogram, een eerstevastlegging van film of radio-uitzending, alsook de databanken die beschermdworden door een sui generis-recht, voor zover deze het voorwerp vormen vandeze licentie. Indien nodig, zullen de bepalingen van deze Licentie op zo eenmanier geınterpreteerd worden dat ze op dergelijke beschermde voorwerpentoegepast kunnen worden.

f) Met ”U” wordt de natuurlijke persoon of rechtspersoon bedoeld die het Werkgebruikt op een wijze die geregeld wordt door de rechten waarop deze Licentiebetrekking heeft en die de bepalingen van deze Licentie met betrekking tothet Werk niet eerder geschonden heeft of die de uitdrukkelijke toestemmingvan de Licentiegever gekregen heeft om rechten krachtens deze Licentie uit teoefenen ondanks een eerdere schending van deze.

g) Met ”Licentiekenmerken” worden de volgende generieke kenmerken van delicentie bedoeld, zoals gekozen door de Licentiegever en aangeduid in de titelvan deze Licentie: Naamsvermelding, NietCommercieel, GelijkDelen.

2. Uitzonderingen en beperkingen op de exclusieve rechten

Niets in deze Licentie heeft de bedoeling de toepassing van de uitzonderingenop de exclusieve rechten van de rechthebbenden, de uitputting van deze rechtenof andere beperkingen op deze rechten krachtens het auteursrecht, de naburigerechten, het sui generis databankenrecht of elk ander van toepasselijk recht teverminderen, te begrenzen of te beperken.

3. Omvang van de toegekende Licentie

In overeenstemming met de bepalingen en voorwaarden van deze Licentie, ver-leent de Licentiegever U een licentie die wereldwijd, gratis, niet-exclusief en on-

Page 160: Linux Cursus Door Koen Wybo

BIJLAGE A. CREATIVE COMMONS LICENTIE 3

beperkt in tijd (voor de volledige duur van de bescherming van het Werk door hetauteursrecht, de naburige rechten, het sui generis recht op de databanken) is omde volgende rechten met betrekking tot het Werk uit te oefenen:

a) het reproduceren, op welke wijze en in welke vorm dan ook, van het Werk, hetopnemen van het Werk in een of meer Collectieve Werken en het reproducerenvan het Werk zoals het opgenomen is in de genoemde Collectieve Werken;

b) het maken en reproduceren van Afgeleide Werken;c) het uitlenen en verspreiden van exemplaren van het Werk, het meedelen aan

het publiek en het ter beschikking stellen van het publiek. Hetzelfde geldt voorhet Werk wanneer het opgenomen is in een Collectief Werk;

d) het uitlenen en verspreiden van exemplaren van Afgeleide Werken, ze meede-len aan het publiek en ze ter beschikking stellen van het publiek;

e) indien het Werk een databank is, het opvragen en hergebruiken van substan-tiele delen van de databank.

De hierboven vermelde rechten mogen uitgeoefend worden op alle bekende enonbekende dragers, media en formaten, met uitzondering van onbekende exploi-tatievormen. U heeft eveneens het recht om die wijzigingen aan het Werk aan tebrengen die technisch noodzakelijk zijn voor de uitoefening van de hoger genoem-de rechten op andere dragers, media en formaten. Oorspronkelijke Auteur ziet afvan de uitoefening van zijn/haar morele rechten met betrekking tot de wijzigingendie technisch noodzakelijk zijn. De Licentiegever behoudt zich alle rechten voordie niet uitdrukkelijk overgedragen zijn in deze Licentie, waaronder inbegrepen,doch niet beperkt tot, de rechten die onder sectie 4(e) opgenomen zijn.

4. Beperkingen De in artikel 3 toegekende licentie wordt uitdrukkelijk op de vol-gende manier beperkt:

a) U mag het Werk enkel in overeenstemming met de bepalingen van deze Licen-tie, uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelenaan het publiek op voorwaarde dat U een kopie van deze Licentie of de Uni-form Resource Identifier van deze Licentie toevoegt aan elke kopie van hetWerk dat U uitleent, verspreidt, ter beschikking stelt van het publiek of mee-deelt aan het publiek. U mag geen voorwaarden op het gebruik van het Werkaanbieden of opleggen die de bepalingen van deze Licentie of de uitoefeningvan de toegekende rechten wijzigen of beperken. U mag het werk niet in on-derlicentie geven. U moet alle aanduidingen die verwijzen naar deze Licentieen naar de garantieclausule en de uitsluiting van aansprakelijkheid intact hou-den. U mag het Werk niet uitlenen, verspreiden, ter beschikking stellen vanhet publiek of meedelen aan het publiek indien daarbij een technische maatre-gel gebruikt wordt die de toegang tot of het gebruik van het Werk op een metde bepalingen van deze Licentie strijdige wijze controleert. Het voorgaandegeldt voor het Werk dat opgenomen is in een Collectief Werk maar dat houdtniet in dat het Collectief Werk zelf, afgezien van het Werk, onderworpen wordtaan de bepalingen van deze Licentie. Indien U een Collectief Werk maakt,dan moet U, op aanvraag van om het even welke Licentiegever en in de matevan het mogelijke, elke verwijzing naar de Licentiegever of de OorspronkelijkeAuteur uit het Collectief Werk verwijderen. Indien U een Afgeleid Werk maakt,dan moet U, op aanvraag van om het even welke Licentiegever en in de matevan het mogelijke, elke verwijzing naar de Licentiegever of de Oorspronkelijke

Page 161: Linux Cursus Door Koen Wybo

BIJLAGE A. CREATIVE COMMONS LICENTIE 4

Auteur uit het Afgeleide Werk verwijderen.b) U mag een Afgeleid Werk enkel uitlenen, verspreiden, ter beschikking stellen

van het publiek of meedelen aan het publiek krachtens de bepalingen van dezeLicentie, van een latere versie van deze Licentie met dezelfde Licentiekenmer-ken als deze Licentie of van een Creative Commons iCommons-licentie diedezelfde Licentiekenmerken bevat als deze Licentie (bv. Naamsvermelding –Niet-Commercieel – Gelijk Delen 2.0 Japan). U moet een kopie van deze Li-centie, of elk andere licentie die in de voorafgaande zin gespecificeerd werd,of de Uniform Resource Identifier van deze Licentie toevoegen aan elke ko-pie van het Afgeleid Werk dat U uitleent, verspreidt, ter beschikking stelt vanhet publiek of meedeelt aan het publiek. U mag geen voorwaarden op hetgebruik van het Afgeleid Werk aanbieden of opleggen die de bepalingen vandeze Licentie of de uitoefening van de toegekende rechten wijzigen of beper-ken. U moet alle aanduidingen die verwijzen naar deze Licentie en naar degarantieclausule en de uitsluiting van aansprakelijkheid intact houden. U maghet Afgeleid Werk niet uitlenen, verspreiden, ter beschikking stellen aan hetpubliek of meedelen aan het publiek indien daarbij een technische maatregelgebruikt wordt die de toegang tot of het gebruik van het Werk op een metde bepalingen van deze Licentie strijdige wijze controleert. Het voorgaandegeldt voor het Afgeleid Werk dat opgenomen is in een Collectief Werk maardat houdt niet in dat het Collectief Werk zelf, afgezien van het Afgeleid Werk,onderworpen wordt aan de bepalingen van deze Licentie.

c) U mag geen enkel van de door artikel 3 aan U toegekende rechten uitoefenenop een manier die voornamelijk bedoeld is voor of gericht is op het bekomenvan een commercieel voordeel of een persoonlijke financiele compensatie. Deuitwisseling van het Werk tegen andere Werken, die beschermd worden doorhet auteursrecht, de naburige rechten of het sui generis databankenrecht, doorhet elektronisch delen van bestanden of op een andere wijze, wordt niet be-schouwd als zijnde bedoeld voor of gericht op het bekomen van een commer-cieel voordeel of een persoonlijke financiele compensatie, op voorwaarde datde uitwisseling van de beschermde Werken geen betaling of financiele com-pensatie met zich meebrengt.

d) Indien U het Werk, Afgeleide Werken of Collectieve Werken uitleent, verspreidt,ter beschikking stelt aan het publiek of meedeelt aan het publiek, dan moetU alle informatie betreffende het beheer van rechten met betrekking tot hetWerk intact houden en, op een wijze die redelijk is in verhouding tot het ge-bruikte medium of middel, verwijzen naar de Oorspronkelijke Auteur, door hetverstrekken van de naam van de Oorspronkelijke Auteur (of het pseudoniemindien van toepassing) indien deze wordt vermeld; de titel van het Werk indiendeze wordt vermeld; in de mate dit redelijkerwijze mogelijk is en indien dezebeschikbaar is, de Uniform Resource Identifier, dat de Licentiegever aanduidtals verbonden met het Werk, tenzij die URI niet verwijst naar de informatiebetreffende het beheer van rechten met betrekking tot het Werk of naar devan toepassing zijnde licenties op het Werk; en in het geval van een AfgeleidWerk, door het aanduiden van het gebruik van het Werk in het Afgeleid Werken door het identificeren van de elementen (bijvoorbeeld, door de aanduiding“Franse vertaling van het Oorspronkelijk Werk door de Auteur” “Franse verta-ling van het Werk door de Oorspronkelijke Auteur” of “scenario gebaseerd ophet Oorspronkelijk Werk door de Oorspronkelijke Auteur”). De verwijzing naarde Oorspronkelijke Auteur moet gebeuren op een redelijke manier. In het ge-

Page 162: Linux Cursus Door Koen Wybo

BIJLAGE A. CREATIVE COMMONS LICENTIE 5

val van een Afgeleid Werk of een Collectief Werk, moeten deze verwijzingenechter minstens weergegeven worden op dezelfde plaats en op dezelfde wijzeals andere vergelijkbare auteursvermeldingen.

e) Deze Licentie wijzigt geenszinsnde regeling van de billijke vergoedingen, dieeventueel van kracht is in Belgie of in andere landen, ter compensatie vande wettelijke erkenning van gedwongen licenties en heeft geen invloed op deinning van deze vergoedingen.

5. Garantieclausule en uitsluiting van aansprakelijkheid

TENZIJ ER TUSSEN DE PARTIJEN SCHRIFTELIJK ANDERS OVEREENGE-KOMEN IS, BIEDT DE LICENTIEGEVER HET WERK AAN ZOALS HET IS ENDOET DE LICENTIEGEVER GEEN VERKLARINGEN OVER HET WERK OFVERPLICHT HIJ ZICH TOT GEEN ENKELE GARANTIE, ONGEACHT OF DEZEUITDRUKKELIJK OF STILZWIJGEND, KRACHTENS DE WET OF OP EEN AN-DERE GRONDSLAG RUST, HIERIN BEGREPEN, MAAR NIET BEPERKT TOTDE GARANTIE TEGEN UITWINNING, DE COMMERCIALISEERBAARHEID VANHET WERK, DE FUNCTIONELE CONFORMITEIT, DE AFWEZIGHEID VAN IN-BREUK OP RECHTEN VAN DERDEN, DE AFWEZIGHEID VAN VERBORGENOF ANDERE GEBREKEN, DE NAUWKEURIGHEID VAN HET WERK OF DE AF-WEZIGHEID VAN FOUTEN EN GEBREKEN MET BETREKKING TOT DE IN-FORMATIE, ONGEACHT OF DEZE AL DAN NIET OPSPOORBAAR ZIJN. IN-DIEN DE OP DEZE LICENTIE VAN TOEPASSELIJKE WETGEVING EEN DER-GELIJKE UITSLUITING VAN VERANTWOORDELIJKHEID VERBIEDT OF RE-GLEMENTEERT, DAN IS DEZE UITSLUITING VAN AANSPRAKELIJKHEID ENGARANTIE SLECHTS IN DE MATE TOEGELATEN DOOR DE WET VAN TOE-PASSING.

6. Beperking van aansprakelijkheid

VOOR ZOVER DE VAN TOEPASSELIJKE WETGEVING DIT TOELAAT, ZAL DELICENTIEGEVER IN GEEN ENKEL GEVAL AANSPRAKELIJK GEACHT WOR-DEN VOOR WELKE RECHTSTREEKSE OF ONRECHTSTREEKSE, MATERIELEOF MORELE SCHADE DAN OOK, DIE VOORTVLOEIT UIT DEZE LICENTIE OFUIT HET GEBRUIK VAN HET WERK, ONGEACHT OF DE LICENTIEGEVER IN-GELICHT WERD OVER DE MOGELIJKHEID VAN DERGELIJKE SCHADE.

7. Beeindiging

a) Elke inbreuk op de bepalingen van deze Licentie waarvoor U verantwoordelijkbent, leidt tot de ontbinding van rechtswege van deze Licentie en het eindevan de rechten die er uit voortvloeien. Niettemin behouden de licenties opAfgeleide Werken of Collectieve Werken, die door U krachtens deze Licentieverleend werden aan natuurlijke personen of rechtspersonen, hun werking tenopzichte van deze natuurlijke personen of rechtspersonen, voor zover dezepersonen de bepalingen van deze licenties niet schenden. De artikels 1, 2, 5,6, 7 en 8, blijven van kracht ongeacht de beeindiging van deze Licentie.

b) Indien de hierboven vermelde bepalingen en voorwaarden in acht genomenworden, is deze licentie onbeperkt in tijd (voor de duur van de beschermingvan het Werk door het auteursrecht, de naburige rechten en het sui generisdatabankenrecht). Desalniettemin behoudt de Licentiegever zich op elk ogen-

Page 163: Linux Cursus Door Koen Wybo

BIJLAGE A. CREATIVE COMMONS LICENTIE 6

blik het recht voor om het Werk onder een andere licentie of onder anderevoorwaarden te exploiteren of om elke verspreiding van het Werk stop te zet-ten, zonder dat het gebruik maken van deze mogelijkheid deze Licentie (ofelke andere licentie die, krachtens de bepalingen van deze Licentie, verleendwerd of verleend moest worden) ongedaan kan maken, en deze Licentie zalonverminderd van kracht blijven tenzij de beeindiging intreedt wegens de hogeraangegeven redenen.

8. Diversen

a) Telkens U het Werk of een Collectief Werk uitleent, verspreidt, meedeelt of terbeschikking stelt van het publiek, verleent de Licentiegever aan de ontvangereen licentie die van toepassing is op het Werk en die dezelfde bepalingen envoorwaarden bevat als deze Licentie.

b) Telkens U het Afgeleid Werk uitleent, verspreidt, meedeelt of ter beschikkingstelt van het publiek, verleent de Licentiegever aan de ontvanger een licentiedie van toepassing is op het oorspronkelijke Werk en die dezelfde bepalingenen voorwaarden bevat als deze Licentie

c) Indien een bepaling uit deze Licentie, krachtens het van toepassing zijnderecht, nietig of niet afdwingbaar is, dan zal dit geen invloed hebben op degeldigheid en de afdwingbaarheid van de andere bepalingen. In dit geval zal,zonder dat enige tussenkomst van de partijen hiervoor nodig is, een dergelijkebepaling op een zodanige wijze geınterpreteerd worden dat haar geldigheid enafdwingbaarheid gevrijwaard blijven.

d) Geen enkele afstand ten opzichte van de bepalingen en voorwaarden van dezeLicentie wordt vermoed zonder een schriftelijke overeenkomst die ondertekendis door de partij die afstand doet. Geen enkele inbreuk op deze Licentie wordtdoor de andere partij aanvaard zonder schriftelijke overeenkomst, ondertekenddoor deze partij.

e) Deze Licentie is het enige contract tussen de partijen met betrekking tot hetWerk, dat het voorwerp is van deze Licentie.

Er bestaat geen enkele overeenkomst of document van welke aard dan ook, diebetrekking heeft op het Werk, bovenop wat hier bepaald is. De Licentiegever isgebonden door geen enkele bijkomende verplichting die voortvloeit uit enige com-municatie afkomstig van U, ongeacht de vorm. Deze Licentie kan niet gewijzigdworden zonder de schriftelijke overeenkomst van beide partijen.