Archive

Bash aliassen

Hoe minder je hoeft te typen hoe beter. In een terminal heb je regelmatig dat je lange regels moet typen die steeds weer herhaald moet worden. Op deze site heb ik al iets uitgelegd over Bash History, maar er is nog een manier hoe je je terminal gebruik verder kunt vereenvoudigen.

Door het .bash_aliases bestand aan te maken in je home directory kun je hier zo geheten bash aliassen in aanmaken.

Doe dit op de volgende manier

cd ~
nano .bash_aliases

Om deze manier heb je een bestand in nano geopend die we tekstueel gaan vullen met aliassen.

Als je het bestand hebt opgeslagen (In nano sla je op door CTRL + O in te drukken) kun je de terminal afsluiten en opnieuw starten.

Op basis van het voorbeeld kun je nu de aliassen update en stop gebruiken. Je ziet ook bij het voorbeeld voor update dat je met het | teken meerdere commando’s achter elkaar kunt plaatsen. Zo kun je aan 1 enkele alias meerdere achtereen volgende commando’s koppelen en uitvoeren.

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.

Gebruiker toevoegen aan Linux

Een Linux systeem maakt altijd gebruik van gebruikers. Bij een normale installatie wordt er al een gebruiker ingesteld, maar soms is het wenselijk om nog een extra gebruiker toe te voegen aan je Linux systeem.

Het is goed om te weten dat alleen de root gebruiker gebruikers mag toevoegen aan het systeem. Zorg er dus voor dat je aangemeld bent met een gebruiker die deze privileges heeft.

Een gebruiker toevoegen aan Linux

sudo adduser test

Met deze commandline ga je een gebruiker toevoegen die de naam test mee krijgt. Er wordt daarop verzocht om een wachtwoord en overige informatie toe te voegen.

Nu dat gebruiker test aangemaakt is, kan deze aan een groep worden gekoppeld. Er bestaan al standaard een aantal groepen waaraan je een gebruiikers aan kunt toevoegen.

Een kleine greep uit de groepen waaruit je kunt kiezen

  • root
  • sudo
  • adm
  • games
  • users

Een volledige lijst van alle beschikbare groepen op een Unix-achtig systeem kan worden opgevraagd uit het bestand ‘/etc/group’. Hoewel dit bestand geen bestandsextensie heeft, is het een platte tekstbestand dat specifieke groepsinformatie bevat. Het wordt vaak gebruikt door systeembeheerders en andere hulpmiddelen op het systeem. Je kunt dit bestand niet rechtstreeks openen met een teksteditor, omdat het een specifieke structuur heeft. Om de inhoud van het bestand te bekijken, kun je de opdrachten ‘cat /etc/group’ of ‘less /etc/group’ gebruiken in een terminalvenster.

sudo adduser test sudo

Naast deze optie kun je ook via het commando gpasswd een gebruiker toevoegen, maar ook weer verwijderen van een groep.

sudo gpasswd -a test sudo (-a staat voor add, dus hiermee voeg je toe.)
sudo gpasswd -d test sudo (-d staat voor delete, dus hiermee kun je verwijderen.)

Voor het willen verwijderen van een gebruiker kun je dit doen via het volgende commando.

userdel -r test

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.