Linux – Archieven, compressie & streams
In dit labo oefen je met archieven en compressie, en leer je hoe je commando's kunt combineren via pipes en uitvoer kunt omleiden naar bestanden.
Elke oefening speelt zich af in een terminal op deze pagina, die werkt als een echte Linux-terminal: pijltjestoetsen voor je vorige commando's, tab om namen aan te vullen, clear om het scherm leeg te maken.
Je werkt stap voor stap. Boven de terminal staat telkens één opgave. Zodra die klopt, verschijnt de volgende.
Fout typen mag. Een commando dat niet bij de stap hoort wordt niet uitgevoerd, maar je krijgt wel uitleg over wat er misgaat: waarom uniq zonder sort de dubbels mist, waarom > een foutmelding niet opvangt, of waarom sort 100 vóór 40 zet.
Rondkijken mag altijd. Commando's die niets veranderen, zoals ls, cat en man, werken in elke stap.
Een vergissing rechtzetten kan altijd. Heb je een naam vertypt of iets op de verkeerde plaats gezet, dan mag je dat met rm, rmdir of mv opruimen of hernoemen, ook als dat commando niet bij de huidige stap hoort. Alleen wat de oefening zelf klaarzette blijft staan, zodat je jezelf niet kunt vastzetten. Typ je een naam verkeerd, dan wordt het bestand trouwens niet eens aangemaakt: je krijgt eerst te horen welke naam de opgave vraagt.
Loop je vast, vraag dan een hint of spring via de knop naar de theorie. Met Opnieuw beginnen zet je een oefening terug naar de starttoestand. Je voortgang blijft bewaard in je browser, dus je mag de pagina sluiten en later verdergaan.
Oefening 1 – Archiveren en comprimeren
Archiveren en comprimeren zijn in Linux twee verschillende dingen. tar bundelt bestanden en mappen tot één archief, gzip maakt dat archief kleiner. Je doet ze hier eerst apart, en daarna in één commando.
Je leert het verschil tussen archiveren en comprimeren. tar plakt bestanden samen tot één bundel, gzip maakt die bundel kleiner. Het zijn twee losse stappen die je ook in één commando kunt combineren.
Maak in je home directory een map archief_oefening en ga erin.
ls, pwd of cat mag altijd.Oefening 2 – Redirection
Elk commando heeft drie stromen: invoer, gewone uitvoer en foutmeldingen. Ze zijn los van elkaar, en dat merk je pas echt wanneer je een foutmelding probeert op te vangen met een gewone pijl.
Elk commando heeft drie stromen: invoer (stdin), gewone uitvoer (stdout) en foutmeldingen (stderr). Met omleidingen stuur je die stromen naar een bestand in plaats van naar je scherm.
Voer ls /etc uit en sla de uitvoer op in een bestand etc_inhoud.txt.
ls, pwd of cat mag altijd.Oefening 3 – Pipes en filters
Met een pipe stuur je de uitvoer van het ene commando rechtstreeks naar het volgende. Zo bouw je uit kleine commando's een ketting die precies doet wat je nodig hebt. Let goed op de volgorde in de ketting: die is bijna altijd belangrijk.
Met een pipe | stuur je de uitvoer van het ene commando rechtstreeks als invoer naar het volgende. Zo bouw je uit kleine commando’s een ketting die precies doet wat je wil.
Het bestand landen.txt staat klaar in je home directory. Bekijk eerst wat erin staat.
ls, pwd of cat mag altijd.Oefening 4 – Tales of Middle Earth
Je helpt de bibliothecarissen van Rivendell hun geschriften analyseren. Je knipt kolommen uit een bestand, filtert op rol en sorteert plaatsen op gevaarsscore. De bestanden staan al klaar in je home directory.
Je helpt de bibliothecarissen van Rivendell hun geschriften analyseren. De bestanden personages.txt en plaatsen.txt staan klaar in je home directory. In allebei scheidt een puntkomma de kolommen.
Toon enkel de namen uit personages.txt, dus alleen de eerste kolom. De puntkomma is het scheidingsteken.
ls, pwd of cat mag altijd.Uitdaging – Logbestand analyseren
Een logbestand van een server doorzoeken is dagelijks werk voor een ontwikkelaar. Beantwoord elke vraag met één commando. Hier krijg je nauwelijks nog hints, want je hebt alle bouwstenen al gezien.
Het bestand server.log staat klaar in je home directory. Beantwoord elke vraag met één commando, waarin je zo nodig meerdere filters aan elkaar rijgt. Er zijn hier bijna geen hints meer.
Hoeveel ERROR-meldingen staan er in server.log? Beantwoord dit met één commando.
ls, pwd of cat mag altijd.