Skip to main content

2.1 CLI and text file handling

Command Line Interface

CLI is de command line interface van LInux.
Linux bestaat eigenlijk uit de CLI en optioneel zit daarbij een grafische gebruikers interface (GUI). Linux Servers die in datacenters staan zijn vaak headless. Dat betekent dat er geen monitor en toetsenbord is aangesloten op de server. Vaak bestaat één fysieke server ook meerdere virtuele servers. ALs je zelf zo'n server wilt dan moet je zoeken naar VPS, dat staat voor Virtual Personal Server. Een VPS met Linux is erg goedkoop omdat het OS gratis is. Ook is de performance vaak zeer redelijk tot goed. Deze website draait ook op een VPS van een paar euro per maand en samen met deze website draaien er nog een paar websites op dezelfde Virtual Server. Er draaien meerdere virtuele (web) hosts op één virtuele server. Wat een virtual web host is leren we over een paar lessen.

Headless

In data centers staan dus veel headless Linux servers. Op zich kan er wel een GUI worden toegevoegd, maar dit wordt vaak als omslachtig en traag gezien. Bovendien hebben echte 'hackers' een voorkeur voor een CLI. Je zult leren dat de CLI van Linux erg rijk is en dat je hele gave dingen met een paar commando's kan uitvoeren. Binnen Linux kun je ook vrij eenvoudig zaken automatiseren. Een goede Linux systeembeheerder automatiseert dus als zijn taken en hoeft daarna alleen nog maar updates uit te voeren en te monitoren dat alles goed gaat.

Linux en tekst bestanden (text files)

Linux heeft veel configuratie in plain text files staan. Daarom zijn er veel commando's die iets met files doen.

In de Linux lessen gaan we af en toe een paar handige Linux CLI commando's behandelen.

Om te beginnen gaan we samen in de les naar de volgende commando's kijken. In deze les een paar handige commando's die te maken hebben met files.

Belangrijke commando's voor file handling
commando wat doet het? voorbeeld
man laat een help pagina van een commando zien man cat
cat laat de inhoud van één of meerdere files zien cat /var/og/syslog
grep zoekt in een file naar een woord grep error /var/log/syslog
head laat de eerste regels van een file zien

head /var/log/syslog

tail laat de laatste regels van een file zien

tail /var/log/syslog

touch maak een legel file

touch test

echo print iets

echo "Hallo"

cp CoPy - kopieer een file

cp file01 file02

mv MoVe - verplaats/hernoem een file

mv file01 file02

rm ReMove - verwijder een file

rm file01

Belangrijk: Linux is case senstive!

Redirect output

Linux heeft een paar handige concepten. Zo kan je de output die naar het scherm gaat omleiden naar een file. Dat heet redirect output.

Neem bijvoorbeeld het commando head /var/log/syslog Dat laat de eerst paar regels van de Linux log zien. Je kunt deze output naar een file wegschrijven. Bijvoorbeeld head /var/log/syslog > mijTestFile

Het > teken schrijft dus de output van een commando naar een file. Het >> teken voegt de output van een commando toe aan de file.

Voer de volgende commando's uit en probeer te begrijpen wat er gebeurt en waarom.

echo 0123456789 > file01
cat file01 file01 > file02
cat file02
cp file02 file01
cat file01 >> file02
ll
cat file02

Haal alle files weg: rm file01 file02

Opdrachten

  1. Voer de onderstaande stappen uit en schrijf op wat de uitkomst van stap 4 is.  Je ziet drie getallen, beschrijf wat deze getallen betekenen.
    1. Maak met het touch commando een file aan en noem die file.txt
    2. Gebruik het echo commando om Hello world this is nice! in de file.txt te plaatsen
    3. Gebruik de geleerde kennis om de tekst Hello world this is nice! vier keer onder elkaar in de file.txt te krijgen.
    4. Voer het commando wc restult.txt uit. Wat zie je en wat betekent dat? Als je niet zeker bent, controleer dan met man wc hoe wc precies werkt.
  2. Zoek op hoe je met het commando tail de laatst 20 regels moet afdrukken. Druk de laatste 20 regels van /var/log/syslog af en plaatst die in een file laatst20.txt.
    Voer het commando cat laatste20.txt laatste20.txt laatste20.txt > laatste.txt uit.
    Hoeveel regels staat er in laatste.txt? Schrijf op hoe je dit hebt gedaan en schrijf je antwoord op.

  3. Als ubuntu is opgestart dan wordt er een regel in de /var/log/syslog gelplaatst, bijvoorbeeld;
    Jan 12 21:27:40 ubuntu_vm systemd[1121]: Startup finished in 102ms.
    Gebruik grep en zoek uit hoe lang jouw Ubuntu er de laatste keer over deed om te starten. Schrijf het commando dat je hebt gebruikt op.

  4. Laat alleen alle regels uit de syslog file zien van vandaag. Schrijf het commando dat je hebt gebruikt op.

  5. Het commando cat file01 > file01 geeft een foutmelding. Leg uit waarom!

--