 |
 |
 |
 |
Cursus Linux |
|
go to : Index - Vorige - Volgende |
|
|
|
|
Les 2 |
Structuur |
|
|
|
|
|
Unix filosofie |
|
|
|
Unix moet je je voorstellen als een bijzonder rijk gesorteerde gereedschapskist waar alle werktuigen gespecialiseerd zijn in een bepaalde taak of handeling. Door een aantal van deze kleine tools te laten samenwerken, kunnen grote en ingewikkelde bewerkingen worden uitgevoerd. De gebruiker moet zelf voor elke taak een coherent geheel samenvoegen. |
|
Partities |
Linux kan op verschillende manieren worden geïnstalleerd. De meest gangbare manier is het gebruik van lege partities. Deze partities formatteer je dan met de "installer". Een andere manier is het gebruik van een "loopback systeem". Hiermee kan je het volledige bestandssysteem wegschrijven naar een bestand (dat zich bevindt op bijvoorbeeld een windowspartitie). Het gebruik van een "loopback" systeem heeft nadelige gevolgen voor de systeemperformantie. |
>
|
Swap |
De swap wordt gebruikt indien het geheugen volloopt. De computer gaat dan data die niet frequent wordt gebruikt wegschrijven naar de vaste schijf. Dit systeem vertraagt de computer, maar kan voorkomen dat het RAM geheugen volloopt.
Linux vereist minstens één swap partitie. Om performantieredenen mag je een aantal swap partities spreiden over meerdere harde schrijven. Het is mogelijk om linux te gebruiken met een swapbestand (zoals in Windows), maar geen enkele linuxdistributie ondersteunt standaard deze "setup". |
 |
Een swap partitie heeft ten opzichte van een swapbestand enkele voor- en nadelen. Een aparte swap partitie is een stuk sneller omdat deze gestructureerd is om als swap te dienen. Daarentegen is een swapbestand flexibel omdat de grootte en plaats kan worden aangepast zonder wijzigingen te maken aan de partities. Nota: Linux ondersteunt het "at runtime" wijzigen van de partities. |
|
Bestandsstructuur |
Net zoals Windows heeft Unix een hiërarchische bestandsstructuur. Het startpunt noemt men de root (wortel, voorgesteld door "/"). Hieronder bevinden zich de mappen (of "directories"). In mappen kunnen bestanden of andere mappen worden geplaatst. |
In Linux bestaan er geen "Drives" (vb. "c:"), maar er worden andere schijven bevestigd (mounting) binnen het bestandssysteem.
Praktisch voorgesteld zou een subdirectory eventueel een andere schijf kunnen zijn.
Nog een verschil met DOS/Windows is dat Windows gebruik maakt van de "\" (backslash) terwijl het bij Linux/Unix een "/" (slash) voorstelt.
Er is een indeling die op zowat ieder Unix systeem terug te vinden is: |
 |
- /dev Speciale bestanden voor de benadering van hardware
- /bin Deze directory bevat de meest essentiële hulpprogramma's
- /sbin De meest essentiële hulpprogramma's voor de administrator
- /etc Hier worden de configuratiegegevens bijgehouden
- /tmp Programma's kunnen hier hun tijdelijke bestanden schrijven
- /lib Bibliotheken voor programma's
- /boot Plaats waar de kernel wordt opgestart
- /var Various, meestal worden hier logbestanden ingeplaatst
- /home Directory waar gebruikersdata in terecht komt
- /usr Plaats waar meestal programma's in terecht komen
- /proc Verwerking van systeeminformatie. Enkel beschikbaar op Linux
- /mnt Gangbare plaats waar bestandssystemen worden aangekoppeld
|
|
Speciale mappen |
Binnen Linux bestaan er twee speciale mappen: /dev en /proc. De /dev map dient om rechtstreeks randapparatuur aan te spreken.
De /proc map kan worden gebruikt om configuratiegegevens uit te halen (hoeveelheid vrij geheugen, hardwareinfo, status van het systeem,...), maar ook om "at runtime" systeemparameters te wijzigen (routing aan/uitzetten, gebruik van de hardware aanpassen,...). Alain |
|
Virtuele consoles |
De gebruiker heeft meerdere consoles ter beschikking. De toetsencombinatie CTRLALT- Fx (1 <= x <= 6). Je kan op deze manier meerdere keren inloggen en dus ook meerdere programma's tegelijk draaien.
In grafische mode heb je ook een gelijkaardige werking, maar daar moet je meerdere grafische omgevingen opstarten om er gebruik van te maken. Voor de grafische omgevingen is CTRL-ALT-Fx (7 <= x <= 12) gereserveerd. Men kan met deze toetsencombinaties ook schakelen tussen tekst en grafische mode. |
|
Gebruikers |
Voordat je Linux kan gebruiken moet je eerst inloggen als een user (gebruiker) met een paswoord. Aan de hand van de gebruikersnaam kan de computer weten welke dingen de gebruiker van het systeem mag doen.
Naast de gebruikersnaam heb je ook groups (groepen). Je kan bepaalde rechten toekennen aan een groep, die groep kan je dan aan iedereen toekennen die de rechten op het systeem nodig heeft. |
|
Er is één gebruiker die rechten heeft op alles, deze wordt "root" genoemd.
Iedere gebruiker heeft zijn eigen home-directory. In deze map komen alle persoonlijke gegevens terecht alsook het gebruikersprofiel van alle applicaties. |
|
Unix bestandspermissies |
Windows NT, Moderne Unices en Linux ondersteunen ACL (Access Control Lists). ACL is een nieuwere vorm voor het toekennen van gebruikersrechten op bestanden. Het heeft als voordeel dat je permissies van meerdere gebruikers en groepen kan koppelen aan een bestand (het is flexibel). ACL onder Unix/Linux is een uitbreiding op de Unix bestandspermissies. Jammer genoeg worden de meeste linuxdistributies geleverd zonder ACL ondersteuning. Zelfs indien er ACL voorhanden is, kan het nog altijd nuttig zijn om kennis te hebben van de structuur van Unix toegangsrechten. Aan een bestand zijn er drie soorten gebruikers: owner, group, other. |
- Owner: Staat voor de gebruiker zelf. De gebruiker kan instellen welke rechten hij/zij op de bestanden heeft.
- Group: Je kan hiermee instellen welke rechten de gebruikers hebben die in dezelfde groep zitten als jij.
- Other: Hier kan men de toegangsrechten instellen van iedere andere gebruiker.
|
Aan ieder van deze drie soorten gebruikers kan je volgende rechten toekennen: read (lees), write (schrijf) en execute (uitvoeren). |
|
Daemons |
Een daemon is een programma dat op de achtergrond bewerkingen uitvoert. Het zijn processen die worden gestart bij het booten en ze maken handelingen die belangrijk zijn voor de functionaliteit van het systeem. Normaal gezien hebben deze geen interactie met de gebruiker. Enkele voorbeelden van daemons: inetd (netwerkserver), crond (het regelmatig uitvoeren van taken), syslogd (systeemlogging), gpm (muis in de console), httpd (webserver),... |
|
Systeeminitialisatie |
Iedere keer een linuxsysteem start worden er een aantal initialisatiescripts gestart. Men kan deze scripts vinden in "/etc/init.d". De scripts worden gebruikt om daemons op te starten. Er is ook een soort "batch-bestand" waar je zelf een aantal dingen kan in plaatsen die moeten gestart worden (in RedHat en aanverwante distributies is dit "/etc/rc.d/rc.local". Opstartscripts kunnen enkel gewijzigd worden door "root". Naast de systeemscripts bestaan er ook bestanden die aangeven wat moet gedraaid worden indien een gebruiker aanlogt. In /etc/bashrc kan men bewerkingen zetten die voor ieder gebruiker geldig zijn, $HOME/.bashrc ($HOME = de homedirectory) dient om bewerkingen uit te voeren voor die bepaalde gebruiker die eigenaar is van die homedirectory. Iedere gebruiker kan voor zichzelf dit bestand aanpassen. |
|
Bestandsnamen en speciale tekens |
Unix laat toe om bestandsnamen te gebruiken met zowat alle karakters, maar algemeen aangenomen vermijd je spaties, tabs en karakters met een speciale betekenis zoals: & ; ( ) | ? \ ' " ' [ ] { } < > $ - ! / De lengte van een bestandsnaam hangt af van het gebruikte bestandssysteem. Zowat ieder systeem ondersteunt een bestandsnaam van 256 karakters of meer. Het is ook van belang te weten dat bestandsnamen hoofdlettergevoelig zijn, bijvoorbeeld file en FILE wordt aanzien als een verschillend bestand. Bestanden die beginnen met een "." worden als verborgen beschouwd |
|
Bij het opvragen van bestanden zijn er nog enkele "wildcards" die kunnen gebruikt w orden. |
- * Komt overeen met een willekeurig aantal opeenvolgende tekens
- ? Eén willekeurig teken
- [..] Specifieert een teken uit de door vierkante haken omsloten verzameling. Bijvoorbeeld [a-z] wil een teken uit de verzameling letter van a tot z zeggen.
|
|
Bijkomende lijst met speciale tekens en hun betekenis: |
- \ Het teken dat na de "\" komt wordt letterlijk geïnterpreteerd
- ' Aanhalen van een string
- " Aanhalen van een string en commando substitutie
- ' (backquote) Commandosubstitutie
- $ Referentie naar een (shell)variabele
- {} Commandogroepering in een functie (bij scripts)
- # Commentaar
- & Voert een commando uit in de achtergrond
- () Groepeert commando's of identificeert een functie
- | Pipe
- > Redirection
- >> Redirection als toevoeging
- < Redirect vanuit de standaard input
|
|
Redirection & Pipes |
Unix laat toe om de uitvoer van het ene commando als input te gebruiken voor het andere. Dit noemt men een "pipe".
Bijvoorbeeld: ls | more (opvragen inhoud map, met gebruik van pagina's). Pipes laten toe om meerdere programma's aan mekaar te koppelen (denk aan de gereedschapskist waarmee je complexere commando's kan opbouwen) Met redirections kunnen we de uitvoer van een programma naar een bestand schrijven.
Bijvoorbeeld: ls > lijst (we schrijven de lijst van de dir in het bestand "lijst"). Er bestaat ook een ">>" teken dat bijna dezelfde functie heeft als ">". Bij ">" wordt eerst het bestand leeggemaakt, met ">>" wordt er achteraan het bestand verdergeschreven. |
|
Environment variabele |
Je kan in de shell een aantal variabelen definiëren waar de shell of externe programma's rekening kunnen mee houden. Bijvoorbeeld: export PATH=/bin Je kan deze variabele gebruiken in zelf geschreven programma's of scripts. Je kan ze oproepen via $naam. Bijvoorbeeld: echo $PATH |
|
Achtergrondprocessen |
Als je een commando start met een "&" teken achteraan, dan wordt dit uitgevoerd op de achtergrond. De console is dan vrij om andere commando's in te geven terwijl dat programma draait. Als men uitlogt, blijft het programma nog verder draaien. |
|
|
|
|
|
Index - Vorige - Volgende |
|
|