Bestandsbeheer met de opdrachtregel

6 Bestandsbeheer met de opdrachtregel

In Linux kun je alles met de muis doen. Dat werkt prima en het ziet er nog goed uit ook. Mensen die al langer met Linux werken, geven er echter de voorkeur aan om veel op de opdrachtregel (commandline) te doen. En dat is niet voor niets.

Wanneer je een opdracht aan je Linux-systeem wilt geven, je wilt bijvoorbeeld een bestand naar een andere map verplaatsen, dan kan dat via het intoetsen van een opdracht (commando), of door het bestand met je muis in een grafische bestandsbeheerder te verslepen. De laatste manier met de muis, lijkt eenvoudiger. Maar zoals altijd ligt ook hier de Wet van Behoud van Ellende op de loer: geen voordeel zonder nadeel. Het voordeel van het gebruiken van een muisgestuurd systeem is vooral dat je er weinig kennis voor nodig schijnt te hebben. Je hoeft geen moeilijke opdrachten uit je hoofd te kennen of handleiding te raadplegen. Toch geven ervaren Linux-gebruikers de voorkeur aan het intypen van opdrachten.

Waarom de opdrachtregel?

De kracht van Linux bestaat uit het achter elkaar kunnen knopen van een aantal kleine programma's. Er wordt gezegd dat in Linux de filosofie wordt aangehangen dat een programma maar één ding moet doen en dat het dat zo goed mogelijk moet doen. Kleine programma's zijn minder complex, waardoor ze minder bugs zullen bevatten. Het aan elkaar kunnen knopen van verschillende programma's blijkt in de praktijk tot een zeer krachtig en flexibel systeem te leiden. Je kunt dit echter alleen via het intypen van opdrachten bewerkstelligen, of door scripts te maken. In een click-omgeving lukt dit niet.

Een groot voordeel van werken met de opdrachtregel is dat je deze opdrachten ook door een script kunt laten uitvoeren. Wanneer je een nieuwe gebruiker op je systeem moet aanmaken dan lijkt het intypen van opdrachten ingewikkelder dan een paar muisklikken in een point-&-click-omgeving, zodra je echter vijfhonderd nieuwe gebruikers aan moet maken, begrijp je al snel het grote voordeel van het kunnen werken met een script.

Een ander groot voordeel van werken via de opdrachtregel is dat je dit ook gemakkelijk van een afstand kunt doen. Het maakt niet uit of je rechtstreeks op de terminal van je systeem zit te werken, of dat je via het internet ingelogd bent op een machine die misschien wel op een ander continent staat.

Kort en krachtig

De oorspronkelijke bedenkers van het Linux besturingssysteem waren programmeurs die dit systeem ook zelf moesten gaan gebruiken. Zij kozen er daarom vaak voor, opdrachtnamen zo kort mogelijk te houden. Het gevolg daarvan is dat we in Linux veel opdrachten van minder dan vier letters tegen komen. Voor een buitenstaander lijkt het daardoor al snel abacadabra, maar wie er zich een tijdje mee bezig houdt, komt er al snel achter dat het minder erg is dan het lijkt. Vaak bestaat er wel degelijk een verband tussen de betekenis en de naam van de opdracht.

Linux bestandspermissies

Windows 7, 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 Linux is een uitbreiding op de Linux bestandspermissies. Zelfs indien er ACL voorhanden is, kan het nog altijd nuttig zijn om kennis te hebben van de structuur van Linux toegangsrechten.

Voor een bestand zijn er drie soorten gebruikers: owner (eigenaar), group (groep), other (rest).

Aan ieder van deze drie soorten gebruikers kun je volgende rechten toekennen: read (lees), write (schrijf) en execute (uitvoeren).

Voorbeeld: Na het uitvoeren van de opdracht `ls -l` staat de volgende regel op het scherm:

-rw-r--r-- 1 sntcursist users 2042 jul 14 14:24 Fiets.gif

De eerste kolom bevat de toegangsrechten en heeft de volgende structuur:

De eerste letter bepaald of we te maken hebben met een bestand (-), een directory (d) of een koppeling (l).

Dan volgen drie groepen van drie letters met de toegangsrechten voor respectievelijk de Eigenaar (Owner), de Groep (Group) en de Rest (Other).

De drie letters stellen respectievelijk de volgende rechten voor:

Recht

Recht aanwezig

Geen recht

Read

r

-

Write

w

-

Execute

x

-

Bestandsnamen en speciale tekens

Linux laat toe om bestandsnamen te gebruiken met zowat alle karakters, maar algemeen aangenomen vermijd je spaties, tabs en karakters met een speciale betekenis zoals:

& ; ( ) | ? \ ' " ' [ ] { } < > $ - ! /

Wil je toch speciale tekens in een bestandsnaam gebruiken dan moet je speciale trucs toepassen. Om een spatie in een bestandsnaam te plaatsen, kun je gebruik maken van aanhalingstekens ("bestandsnaam met meerdere woorden") of nog beter de spatie door een backslash laten voorafgaan (bestandsnaam\ met\ meerdere\ woorden). Een backslash betekent, interpreteer het volgende teken letterlijk.

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 bestand en BESTAND wordt aanzien als een verschillend bestand.

Bestanden die beginnen met een "." worden als verborgen beschouwd.

Bij het opvragen van bestanden kunnen enkele "wildcards" gebruikt worden:

Bijkomende lijst met speciale tekens en hun betekenis:

Redirection & Pipes

Linux laat toe om de uitvoer van de ene opdracht als invoer te gebruiken voor een andere opdracht. Dit noemt men een "pipe". Bijvoorbeeld: ls | more (opvragen inhoud map, met gebruik van pagina's).

Pipes laten toe om meerdere opdrachten aan mekaar te koppelen (denk aan een gereedschapskist waarmee je complexere opdrachten kan opbouwen).

Met redirections kunnen we de uitvoer van een opdracht naar een bestand schrijven.

Voorbeeld: ls > lijst (we schrijven de lijst van de map naar 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 verder geschreven.

Linux opdrachten

sntcursist@l092pc03:~> ls -l

totaal 24

drwxrwxrwx 1 sntcursist users 43 16 jul 16:44 Afbeeldingen

drwxr-xr-x 2 sntcursist users 4096 11 mrt 20:30 bin

drwxr-xr-x 2 sntcursist users 4096 11 mrt 20:31 Bureaublad

drwxrwxrwx 1 sntcursist users 30 16 jul 16:44 Documenten

drwxr-xr-x 2 sntcursist users 4096 11 mrt 20:30 Downloads

drwxrwxrwx 1 sntcursist users 37 16 jul 16:44 Muziek

drwxr-xr-x 2 sntcursist users 4096 11 mrt 20:30 Openbaar

drwxr-xr-x 2 sntcursist users 4096 11 mrt 20:30 public_html

drwxr-xr-x 2 sntcursist users 4096 11 mrt 20:30 Sjablonen

drwxrwxrwx 1 sntcursist users 38 16 jul 16:44 Video's

1 2 3 4 5 6 7

1 = toegangsmodi/permissies

2 = aantal koppelingen (hard links)

3 = eigenaar

4 = groep

5 = grootte (in bytes)

6 = datum en tijdstip van de laatste wijziging

7 = naam van het bestand

Controletoetsen voor de terminal

Aan de slag

Om onze Persoonlijke map niet al te veel te vervuilen met onze probeersels, maken we eerst een submap aan. Start een terminalprogramma (of start Dolphin en activeer het paneel Terminal) en voer de volgende opdrachten uit:

mkdir probeersels

cd probeersels

De opdracht `mkdir` (make directory) maakt een map aan. Met de opdracht `cd` (change directory) gaan we de map openen. Dit kunnen we controleren met de opdracht `pwd` (print working directory). Het systeem reageert hierop met het tonen van de 'working directory'. Dit is de map waar je je op dit moment bevindt.

We beginnen met het maken van een bestand.

echo "Dit is een bestand." > mijnbestand

De opdracht `echo` doet wat zijn naam reeds zegt. Probeer maar eens:

echo Hallo

Met het symbool > (groter-dan-teken) stoppen we de uitkomst van de voorafgaande opdracht in het hiernavolgende bestand; als dit bestand al bestaat, overschrijf het dan.

Nu hebben we een bestand gemaakt en er iets ingestopt, maar dat willen we ook kunnen zien. Hiervoor gebruiken we de opdracht `cat` (concatenate).

cat mijnbestand

cat kunnen we gebruiken om de inhoud van een bestand te laten zien of om bestanden aan elkaar te knopen. Dat gaan we meteen proberen en we maken daarom snel een tweede bestand aan:

echo "Dit is het tweede bestand." > tweedebestand

Ter controle vragen we met `ls` (list) op, welke bestanden in de huidige map aanwezig zijn:

ls

We zien nu onze twee bestanden. Nu gaan we onze bestanden aan elkaar knopen:

cat mijnbestand tweedebestand > derdebestand

en vragen de inhoud van het derde bestand op:

cat derdebestand

We zien nu dat we beide bestanden aan elkaar geknoopt (gecat) hebben. Van een aantal van de hier gebruikte opdrachten kunnen we de werking beïnvloeden door middel van zogenaamde argumenten. Dat zijn toevoegingen aan een opdracht die er een nauwkeuriger richting aan geven. Zo kent cat het argument -n:

cat -n derdebestand

We zien dat cat nu bij het tonen van de inhoud van het bestand de regels voorafgegaan worden door een volgnummer.

Wie wil weten welke argumenten cat allemaal kent en wat hun werking is, vraagt dat eenvoudig aan cat:

cat --help

Bestanden zijn ook eenvoudig te kopiëren.

cp derdebestand vierdebestand

Met `cp` (copy) maken we een kopie van het derdebestand en noemen dat vierdebestand. Bij de meeste opdrachten waarbij een bronbestand en een doelbestand gebruikt worden, komt het bronbestand als eerste argument in het rijtje en het doelbestand als tweede. Of onze kopieeractie geslaagd is, kunnen we vaststellen met behulp van

ls

waarmee we de inhoud opvragen van de map waarin we ons bevinden en natuurlijk met

cat vierdebestand

waarmee we vaststellen dat 'vierdebestand' dezelfde inhoud heeft als 'derdebestand'. We kunnen bestanden ook een andere naam geven of verplaatsen. Dit doen we met de opdracht `mv` (move):

mv vierdebestand vijfdebestand

ls

Voor het verplaatsen maken we nog even een nieuwe map in de Persoonlijke map aan. Daarvoor moet je eerst uit probeersels teruggaan naar die map. Dat doe je met `cd` en de tekens '..' (bovenliggende map):

cd ..

Daarna maak je met

mkdir nieuwemap

een nieuwe directory aan en vervolgens verplaats je 'probeersels' naar die map door middel van

mv probeersels nieuwemap

We gaan weer naar 'probeersels' met

cd nieuwemap/probeersels

We hebben daar nu de volgende bestanden in staan: derdebestand, mijnbestand, tweedebestand en vijfdebestand. Nu wil je niet steeds die lange bestandsnamen intikken. Filename completion helpt je daarbij. Dit doe je door een stukje van de bestandsnaam in te typen en dan op de Tab-toets te drukken. Probeer maar eens:

ls vijf[Tab]

Onze shell neemt ons op deze weg veel werk uit handen. Probeer het eens met minder letters, bijv. ls v[Tab].

Omdat het nogal saai is om twee bestanden met dezelfde inhoud te hebben, gaan we er één verwijderen:

rm vijfdebestand

Ook bij `rm` (remove) hoeven we maar één of enkele letters van de bestandsnaam vijfdebestand in te typen, via filename completion doet het terminalprogramma voor ons de rest. Houd er wel rekening mee dat Linux opdrachten geen 'prullenbak' kennen of een andere vorm van voorwaardelijk verwijderen. Wat je met `rm` verwijdert hebt, is echt verdwenen!

Voor onze volgende probeersels hebben we wat grotere bestanden nodig. We gaan een bestand maken met op de eerste regel een aaa, op de tweede regel bbb, op de derde regel ccc enz. tot en met de 26-ste regel waar we zzz inzetten. Dit bestand maken we met cat:

cat > nieuwbestand

De shell toont ons een lege regel en wacht op onze invoer. We kunnen nu een aantal regels tekst typen en sluiten dit af met een einde-invoer-teken, Ctrl+D.

Dus na `cat > nieuwbestand` toets je aaa in, gevolgd door een Return, dan bbb gevolgd door een Return, enz. Na de zzz en Return sluiten we af met Ctrl+D.

We hebben nu een bestand met 26 regels. Die kunnen we tellen met behulp van

cat -n nieuwbestand

Dat toont ons de inhoud van het bestand. Maar wie alleen geïnteresseerd is in het aantal regels neemt hiervoor de opdracht `wc` (word count):

wc nieuwbestand

Dit geeft als uitvoer:

26 26 104 nieuwbestand

wat betekent dat we 26 regels, 26 woorden en 104 karakters in het bestand nieuwbestand hebben staan. Wie alleen het aantal regels wil weten, kiest voor `wc -l nieuwbestand`.

We gebruiken dit bestand nu om een bestand van 78 regels te maken:

cp nieuwbestand langbestand

cat nieuwbestand >> langbestand

cat nieuwbestand >> langbestand

Met behulp van het teken >> (twee maal groter-dan-teken) voegen we de uitvoer van de voorafgaande opdracht aan het einde van het navolgende bestand toe.

Wanneer we nu de inhoud van het bestand langbestand opvragen, dan past dat niet meer in ons venster. Dit kunnen we oplossen door de uitvoer van cat te pipen naar de invoer van het programma more:

cat langbestand | more

Met pipen bedoelen we de uitvoer van het ene programma gebruiken als invoer voor het andere. Met de opdracht more en de spatiebalk kunnen we nu scherm voor scherm de inhoud van dit bestand bekijken. Willen we alleen het begin of juist alleen het einde van dit bestand zien, dan gebruiken we de opdrachten head en tail:

head langbestand

tail langbestand

Zijn we alleen in de eerste 3 regels geïnteresseerd, dan doen we dat met behulp van:

head -3 langbestand

Slimmeriken hebben in de gaten dat je op de volgende wijze de 12e regel kunt opvragen:

head -12 langbestand | tail -1

We kunnen ook alle identieke regels bij elkaar zetten, of sorteren, met:

sort langbestand | more

We zien direct dat een aantal regels meerdere malen voorkomen en vragen ons af hoeveel verschillende unieke regels er zijn. Die unieke regels krijgen we te zien met:

sort langbestand | uniq

Maar we willen natuurlijk niet tellen. Als we de uitkomst als invoer voor `wc -l` gebruiken, dan krijgen we dus het antwoord op onze vraag kant en klaar voorgeschoteld:

sort langbestand | uniq | wc -l

Wanneer we willen weten of de lettercombinatie ccc in ons bestand voorkomt, dan gebruiken we hiervoor grep:

grep ccc langbestand

Weten we niet precies in welk bestand we willen zoeken, dan kiezen we voor een jokerteken:

grep ccc *

Willen we alleen maar weten in welke bestand(-en) deze combinatie voorkomt, dan doen we dat door:

grep -l ccc *

We keren terug naar de Persoonlijke map met (twee mappen omhoog):

cd ../..

en onze Persoonlijke map ruimen we op door de map nieuwemap te wissen met:

rm -r nieuwemap

Opdrachten
  1. Open een shell (Terminalprogramma).

    1. Met welke opdracht kom je te weten in welke map je werkt?

    2. Welke opdracht toont een lijst van de bestanden en mappen in die map?

    3. Welk bestand staat op de laatste plaats na het uitvoeren van de opdracht `ls -a` (alle bestanden in een map tonen)?

    4. Wat stelt de laatste kolom voor als je de opdracht `ls -al` uitvoert?

    5. Toon de inhoud van het bestand '.bashrc' en schrijf de laatste regel over:

    6. Maak de map 'opdrachtmap'.

    7. Open de map opdrachtmap/.

    8. Ga terug naar jouw Persoonlijke map.

    9. Verwijder de map opdrachtmap/.

    10. Kopieer het bestand '.bashrc' naar het bestand met als naam 'bashconfiguratie'.

    11. Tel het aantal lijnen, woorden en tekens in het bestand 'bashconfiguratie':

    12. Tel enkel het aantal lijnen in het bestand 'bashconfiguratie' met de opdracht

    13. Verwijder het bestand 'bashconfiguratie'.

    14. Kopieer het bestand '.bashrc' naar het bestand met de naam 'bashinstellingen'.

    15. Toon de inhoud van het bestand 'bashinstellingen'. Schrijf de eerste regel over:

    16. Met de opdracht `ls -l bashinstellingen` kun je de details van het bestand opvragen.

      1. Hoe groot is het?

    17. Verwijder het bestand 'bashinstellingen'.

    18. Vraag nogmaals de details van het bestand op. Welke foutmelding krijg je?

  2. Je kunt gemakkelijk naar de Persoonlijke map gaan met de opdracht `cd` zonder argumenten.

    Zorg ervoor dat je in je Persoonlijke map (home-directory) werkt.

    1. Maak een leeg bestand met als naam 'leeg' aan.

    2. Toon met de opdracht .............................................. alle bestanden met een naam met vier karakters.

    3. Maak het bestand 'eerste' met de tekst “alpha” (inhoud) aan.

    4. Maak het bestand 'tweede' met de tekst “beta” aan.

    5. Maak het bestand 'derde' met de tekst “gamma” aan.

    6. Voeg de drie bestanden samen tot het bestand met de naam 'grieks'.

    7. Toon de inhoud van het bestand 'grieks'.

  3. Zorg ervoor dat je in de Persoonlijke map werkt.

    1. Hoeveel bestanden bevat de map? ................. (probeer ook eens de `dir` opdracht).

    2. Gebruik nu ls met het -a argument. Hoeveel bestanden zie je nu? ............ (merk op dat de bijgekomen bestandsnamen allemaal beginnen met een .........., het zijn dus verborgen bestanden.

    3. Recentere linuxdistributies gebruiken kleuren om het onderscheid tussen mappen en bestanden te tonen. Indien je niet beschikt over een kleurenterminal kan het -F argument nuttig zijn. Welk verschil merk je op tussen de weergave van de opdrachten `ls` en `ls -F`?

    4. Met welke toetscombinatie kun je een lopende opdracht afbreken

    5. Recursieve lijsten kunnen zeer nuttig zijn. Probeer volgende opdrachten. Breek ze indien nodig af.

      ls -R /usr/

      ls -R1 /usr/

      Wat merk je in de uitvoer?

  4. Gebruik de more opdracht om het bestand services te lezen: more /etc/services

    1. Merk bij het lezen de “--Meer--(0%)” prompt op onderaan de bladzijde.

    2. Druk op de Return of Enter toets. Wat gebeurt er?

    3. c. Druk éénmaal op de Spatiebalk. Wat gebeurt er?

    4. Typ een letter b. Wat gebeurt er?

    5. Gebruik de voorwaarts zoeken mogelijkheid om het woord “http” te vinden met de opdracht: /http (m.a.w. typ /http[Return])

    6. Ga na welke mogelijkheden er nog zijn door hulp te vragen met het ?-teken.

    7. Welke toetscombinatie doet hetzelfde als drukken op de toets 'b'?

    8. More gaat verder tot het einde van het bestand of tot je q typt om het programma te verlaten.

      Typ een q om het programma te verlaten.

  5. Toon het begin van het bestand '/etc/services' met de opdracht `head`.

    1. Hoeveel regels tel je?

    2. Welk argument moet je tussenvoegen om de eerste 5 regels te zien?

    3. Toon nu hetzelfde bestand met de `tail` opdracht.

    4. In hoeverre is hetgeen getoond wordt verschillend?

    5. Gebruik de opdracht `tail -f .bash_history` om de aanpassingen op het einde van het bestand te volgen. Indien je een foutmelding krijgt, sluit je het Terminalprogramma en start je het Terminalprogramma opnieuw op en probeer je nogmaals.

    6. Start een tweede Terminalprogramma.

    7. Typ de volgende opdrachten en bevestig telkens met Return:

      pwd

      ls -l

      dir

      exit

      De laatste opdracht heeft het tweede Terminalprogramma

    8. Wat merk je in het venster van het eerste Terminalprogramma?

    9. Breek de lopende tail opdracht af.

  6. Gebruik de opdracht `cat /etc/services` om de inhoud van het bestand te tonen.

    1. Wat gebeurt er?

    2. Probeer nu de opdracht `cat -n /etc/services`.

      Hoeveel regels bevat het bestand?

    3. De cat opdracht wordt vaker voor andere doeleinden gebruikt dan het zuiver tonen van een bestand.

      We gebruiken deze opdracht om twee bestanden te concateneren (samen te voegen) in een derde bestand:

      1. Maak het bestand 'een' met de tekst “One” als inhoud aan.

      2. Maak het bestand 'twee' met de tekst “Two” als inhoud aan.

      3. Toon de inhoud van het bestand 'een'.

      4. Toon de inhoud van het bestand 'twee'.

      5. Voeg de inhoud van de bestanden 'een' en 'twee' samen tot het nieuwe bestand 'engels'.

      6. Toon de inhoud van het nieuwe bestand.

  7. Kopieer het bestand '/etc/services' (in de configuratie folder) naar het bestand 'netwerkdiensten' in jouw Persoonlijke map en lijst de inhoud om na te gaan of de opdracht gelukt is.

    1. Gebruik de kopieer opdracht `cp -i /etc/services netwerkdiensten` (met het "interactive" argument).

      Wat gebeurt er?

    2. Gebruik de recursieve optie (`cp -r /usr/bin kopie`) om een volledige submap te kopiëren naar een nieuwe submap.

      Lijst de inhoud van beide mappen om na te gaan of het heeft gewerkt. (Bij het kopiëren kunnen er toegangsfouten optreden. Dit is normaal).

    3. De copy opdracht aanvaardt jokers.

      Probeer de opdracht `cp /etc/*conf kopie`.

      Wat gebeurt er? (tip: doe een `ls *conf` in kopie)

    4. Zorg ervoor dat je in de Persoonlijke map werkt.

    5. Indien je een bestand kopieert van een andere locatie naar de huidige map en je wil de bestandsnaam behouden, kun je "." gebruiken om de huidige folder aan te duiden.

      Probeer `cp /etc/issue .`.

  8. De mv opdracht kan gebruikt worden om bestanden te hernoemen. Gebruik de opdracht `mv issue begroeting` om de naam van het bestand 'issue' te veranderen naar 'begroeting' en lijst dan de bestanden om te tonen dat de opdracht heeft gewerkt.

    1. De mv opdracht wordt ook gebruikt om folders te hernoemen. Gebruik deze opdracht om de naam van de directory 'kopie' te veranderen naar 'mijnkopie' en controleer of deze gelukt zijn.

    2. Gebruik nu de mv opdracht om het bestand 'netwerkdiensten' te verplaatsen naar de map 'mijnkopie'.

  9. Gebruik de rm opdracht om het bestand 'engels' te verwijderen.

    1. Lijst de folder uit om na te gaan of de opdracht geslaagd is.

    2. Verwijder de map "mijnkopie" met de opdracht `rm -rf mijnkopie`.

      1. Waarvoor zorgt het argument -f?

    3. Verwijder nu de volgende bestanden in jouw thuismap: begroeting, eerste, tweede, derde, een, twee, grieks en leeg.

  10. Gebruik de opdracht `file /bin/su` om het type van het bestand 'su' te bepalen:

    Gebruik de file opdracht om het type van volgend bestanden te bepalen:

    1. /etc/shadow

    2. /usr/share/man/nl/man1/*

  11. Gebruik de opdracht find om het bestand shadow te vinden. Doe dit in de /etc/ map.

    1. Zoek nu met `find . -name "*deny"` naar bestanden waarvan de naam eindigt op 'deny'. Hoeveel bestanden worden gevonden?

    2. Zoek enkel mappen (argument '-type d') die beginnen met de letters "rc".

      Hoeveel mappen worden gevonden?

  12. Keer terug naar de Persoonlijke map. Creëer een koppeling naar het bestand '/etc/issue' en noem deze 'begroeting'. Typ daarna de `ls -l` opdracht om te controleren of de opdracht gelukt is.

    1. Welke kleur heeft de naam van een koppeling?

    2. Gebruik de rm opdracht om de koppeling te verwijderen. Merk op dat de originele bestanden hierdoor niet werden beïnvloed.

  13. Kopiëer het bestand '/etc/passwd' naar het bestand 'gebruikers'.

    1. Gebruik de cat opdracht om te kijken naar de inhoud van 'gebruikers'.

      Merk op dat de namenlijst niet alfabetisch geordend is.

    2. Gebruik nu de sort opdracht om een elementaire sortering van het bestand uit te voeren.

    3. Voer dezelfde sortering uit, maar stuur de uitvoer naar het bestand 'gesorteerde gebruikers' (let op de spatie in de bestandsnaam).

    4. Gebruik daarna de cat opdracht om het bestand te bekijken.

  14. Wees er zeker van dat je in je Persoonlijke map werkt.

    1. Creëer dan de nieuwe map 'Boeken' met de mkdir opdracht.

    2. Creëer de volgende submappen in Boeken: Handleidingen, Tijdschriften en Literatuur.

    3. Probeer een map te creëren in een map waar je geen rechten hebt (vb: /etc).

      Welke melding krijg je?

  15. Verzeker je ervan dat je in je Persoonlijke map bent.

    1. Kopieer de inhoud (argument -r) met de opdracht `cp -r /etc ~/instellingen` van de map /etc/ naar de map instellingen/ in uw Persoonlijke map (toegangsfouten mag je negeren).

    2. Open de map ~/instellingen/.

    3. Toon de inhoud van alle bestanden in de lange vorm (veel details) in deze map.

    4. Welke letterpositie in de eerste kolom bepaalt of je te maken hebt met een directory (letter 'd')?

    5. Welke letter bepaalt in de eerste kolom of een bestand uitvoerbaar is?

    6. Welke letterposities in de eerste kolom bepalen de rechten van de eigenaar?

    7. Welke letterpositie in de eerste kolom bepaalt de leesrechten van de groep waartoe je behoort?

    8. Wie is eigenaar van de meeste bestanden?

    9. Tot welke groep behoort de eigenaar van de meeste bestanden?

    10. Welke letterposities bepalen de rechten die de onbekende gebruikers hebben?

    11. Gebruik de opdracht `ls -l exports` om de toegangsrechten van 'exports' te bekijken.

    12. Gebruik de opdracht `chmod o-r exports` om de rechten te wijzigen.

    13. Gebruik nogmaals de opdracht `ls -l exports` om de toegangsrechten van 'exports' te bekijken en te bepalen welk toegangsrecht aangepast werd.

      Achterhaal daarmee de werking van het argument 'o-r' in de vorige opdracht

    14. Ga op de dezelfde manier te werk om de volgende rechten aan te passen en probeer telkens te achterhalen welke rechten door de argumenten werden aangepast:

      1. Gebruik het argument 'ugo+wx' met het programma chmod op het bestand 'exports'.

        ugo+wx: aangepaste rechten:

      2. Gebruik het argument 'g-x' met het programma chmod op het bestand 'exports'.

        g-x: aangepaste rechten:

    15. De opdracht chown dient om de eigenaar van een bestand te wijzigen.
      Probeer volgende opdracht `chown root exports`.

      Waarom [lukt dit]/[lukt dit niet]?

    16. Wis de bestanden gebruikers en gesorteerde gebruikers en de mappen instellingen en Boeken in jouw Persoonlijke map (homedirectory).

  16. Opdracht voor supermensen: Stel een opdracht samen waarmee je te weten komt hoeveel bestanden en koppelingen uw persoonlijke map bevat. Deze opdracht moet de verborgen bestanden en koppelingen meetellen. Deze opdracht moet het aantal tellen. Deze opdracht mag de bestanden en koppelingen in submappen niet meetellen.