2.1 CLI and text file handling
Command Line Interface
CLI is de commanmd line interface van LInux.
Liux 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 regelijk 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 systeembeherdersysteembeheerder 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 commandecommando 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
- Voer de onderstaande stappen uit en schrijf op wat de uitkomst van stap 4 is. Je ziet drie getallen, beschrijf wat deze getallen betekenen.
- Maak met het touch commando een file aan en noem die file.txt
- Gebruik het echo commando om Hello world this is nice! in de file.txt te plaatsen
- Gebruik de geleerde kennis om de tekst Hello world this is nice! vier keer onder elkaar in de file.txt te krijgen.
- Voer het
comandocommandowc restult.txt
uit. Wat zie je en wat betekent dat? Als je niet zeker bent, controleer dan metman wc
hoe wc precies werkt.
- 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 commandocat laatste20.txt laatste20.txt laatste20.txt > laatste.txt
uit.
Hoeveel regels staat er in laatste.txt? Schrijf het antwoord op. - Als ubuntu is opgstart dan wordt er een regel in de /vat/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. - Laat alleen alle regels uit de syslog file zien van vandaag. Schrijf het commando dat je hebt gebruikt op.
- Het commando
cat file01 > file01
geeft een foutmelding. Leg uit waarom!