Archive

Tail

De opdracht “tail -f ” wordt gebruikt in Unix-achtige systemen, zoals Linux, om de inhoud van een bestand weer te geven en wijzigingen in realtime te volgen. Met deze opdracht kun je de meest recente regels van het bestand bekijken en automatisch nieuwe regels zien terwijl ze worden toegevoegd.

Het gebruik van “tail” op zichzelf geeft normaal gesproken de laatste 10 regels van een bestand weer. Door de “-f” optie toe te voegen, schakel je de “follow” modus in, wat betekent dat “tail” actief blijft en continu updates van het bestand weergeeft. Dit is vooral handig bij het monitoren van logbestanden of het volgen van de voortgang van een lopend proces waarbij nieuwe informatie wordt toegevoegd aan het bestand.

Om specifiek een ander aantal regels weer te geven, kun je de “-n” optie gebruiken, bijvoorbeeld “tail -n 20” om de laatste 20 regels te bekijken. Het bestand “testfile” is het specifieke bestand waarvan je de inhoud wilt volgen. Zorg ervoor dat je de juiste bestandsnaam en het juiste pad opgeeft als het bestand zich niet in de huidige werkdirectory bevindt.

tail -f -n 20 /var/log/syslog

Je kunt “tail -f” uitvoeren in een terminalvenster om de initiële regels van een bestand te bekijken en vervolgens automatisch nieuwe regels zien verschijnen terwijl ze worden toegevoegd. Om het proces te stoppen, kun je de toetscombinatie “Ctrl+C” gebruiken.

pip en modules installeren op Linux voor Python

In Python kun je een boel doen. Dit wordt nog verder verruimt met extra modules die je kunt installeren.

Denk hierbij aan

  • Het kunnen sturen van mail.
  • Tekst kopieren en plakken.
  • Gebruik maken van hardware componenten zoals
    • WiFi
    • Bluetooth
    • Webcam

Je zult ziet dat bijna in alle python script gebruik gemaakt wordt van modules. Deze worden altijd boven aan het script geplaatst en zo als eerste opgehaald en ingelezen, zodat deze in de rest van het script gebruikt kan worden.

  • import os
  • import sys
  • import csv

Een boel modules zijn standaard ook al geinstalleerd samen met de installatie van Python zelf, echter daarnaast zijn er via pip een grote lijst aan extra modules toe te voegen. Om dit soort modules te kunnen gebruiken, moet je eerst pip zelf installeren.

Via een terminal omgeving kun je pip installeren met de volgende regel:

sudo apt install python3-pip

Als pip succesvol geinstalleerd is, kun je modules toevoegen.

Om een kleine impressie te krijgen van wat er te installeren is aan extra modules kun je in de terminal invoeren:

pip3 list

Resticties kunnen er voor zorgen dat je niet op een normale manier modules kunt installeren. Hiervoor kun je de module als een script runnen, waardoor je als nog de module geinstalleerd krijgt.

sudo pip3 install <modulenaam>

Soms kan het zijn in verband met restricties op je computer dat het installeren van modules niet lukt. Mogelijk lukt het wel op de volgende manier:

sudo python3 -m pip install <modulenaam>

Nu dat pip geinstalleerd is, en je een module hebt geinstalleerd, kun je die op meerdere manieren toepassen in je script. Modules kunnen klein zijn, maar ook bijzonder groot. Dan is het beter voor de prestaties van het script om alleen een onderdeel van een module te gebruiken.

Om als voorbeeld te nemen het eerdere genoemde ‘os’ module. Je kunt de gehele module inladen:

import os
os.system("ls")

Als je maar één onderdeel nodig hebt van de ‘os’ module importeer je alleen dat wat je nodig hebt.

from os import system
system("ls")

In het genoemde voorbeeld kun je misschien de behoefte voelen om de module of het onderdeel van de module een aparte naam te willen geven. Dit is mogelijk en kan ook soms handig zijn om lange namen te vereenvoudigen.

from os import system as var
var("ls")

Bij het gebruiken van modules is het altijd raadzaam om de documentatie goed te lezen. Python is altijd hetzelfde echter een module niet altijd. Een website die in documentatie heeft over modules is pypi.org. Deze is echter wel in het engels.

grep

Een handige commando om wat meer overzicht te creëren om alleen dat wat je nodig hebt zichtbaar te maken. Het grep commando kun je aan vele andere commando’s koppelen, maar ook aan tekst gebasseerde bestanden.

Terminal: cat /var/log/syslog | grep CRON

In dit voorbeeld wordt het tekstuele bestand syslog ingelezen, en wordt iedere regel waarin de tekst CRON staat weergegeven. Op die manier kun je b.v. alle cronjob activiteiten kort een overzichtelijk worden weergegeven.

Terminal: lsusb | grep root

Met deze geeft lsusb alleen de regels aan waar de tekst root in wordt vermeld.

Terminal: cat voorbeeld.txt | grep maandag

Soms is het ook wel handig dat de output direct wordt opgeslagen naar een bestand. Een kleine toevoeging aan de commandline >nieuw.txt aan het einde schrijft de informatie direct weg.

Terminal: cat voorbeeld.txt | grep maandag >maandag.txt

Bash History

Sinds de laatste installatie van Linux op mijn laptop heb ik blijkbaar al 2034 keer iets in de terminal getypt. Komt dan incidenteel wel eens voor dat ik me de vraag stel van ‘wat had ik ook alweer ingetypt?’.

Gelukkig ben ik gaande weg een aantal tips tegen gekomen wat me helpt om snel er achter te komen wat ik allemaal al eens heb gebruikt aan commandlines.

Een snelle manier om dit op te vragen:

Terminal: history

Alles wat je ingevoerd hebt wordt ook textueel vast gelegd in het bestand .bash_history welke je kunt weer vinden in je home directory. Let hierbij wel op dat dit een verborgen bestand is. Dit bestand kun je openen met een tekstverwerker zoals nano, gedit, vi of wat je ook maar handig vind.

Je kunt dit bestand ook eventueel opschonen om b.v. foutieve invoeringen te verwijderen, zodat je invoer geschiedenis wat zuiverder is.

Terminal: nano ~/.bash_history

De ~ verwijst naar je home directory, dus door dit aan te geven weet je zeker dat je meteen het juiste bestand hebt.

Om de history helemaal door kijken kan af en toe ook niet handig zijn, vooral als deze inmiddels al erg opgelopen is. Een handige optie in de terminal is dan om ctrl+R gelijktijdig in te drukken. Als je dan een gedeelte van de commandline nog weet, kun je op deze manier snelzoeken.

Bij CTRL+R zie je dit:

Hier typ ik b.v. in: sudo tar. Dit wordt automatisch aangevuld. Je kunt dan ook meteen op enter drukken om de commandline uit te voeren.

Uiteraard kun je ook gewoon pijltje omhoog en omlaag gebruiken om de laatst ingevoerde commandlines op te zoeken.

whereis

Af en toe is het niet duidelijk waar een programma zich precies geinstalleerd heeft. Met het ‘whereis’ commando kun je zoeken waar een programma staat.

Terminal: whereis dillo

Dit geeft aan waar het programma dillo zich geinstalleerd heeft.
dillo: /usr/bin/dillo /usr/lib/x86_64-linux-gnu/dillo /etc/dillo /usr/libexec/dillo /usr/share/man/man1/dillo.1.gz

Dit scheelt een boel zoekwerk, vooral als je nog niet zo bekend bent met de struktuur van de bestandindeling in Linux omgevingen.

nmap

Een netwerktool om IP adressen te scannen.

Terminal: nmap 192.168.2.0/24

Via nmap –help heb je verschillende opties die je kunt toepassen. Als voorbeeld zou je de de Terminal: sudo nmap -P 80 192.168.2.0/24 kunnen invullen om te controleren op welk ip adres het http protocol (dus poort 80) actief is.