Een overzicht van de belangrijkste Linux-commando’s

  1. Home
  2. Server
  3. Linux-commando's

Wat is de shell?

Eerder maakten we al een handig overzicht over de verschillen tussen Linux en Windows. In dit artikel focussen we volledig op Linux. Zoals de meeste moderne besturingssystemen biedt ook Linux twee interfaces voor de invoer door gebruikers. Alle instellingen die via de grafische gebruikersinterface (Graphical User Interface, GUI) worden geconfigureerd, kunnen ook via de zogenaamde shell worden ingevoerd in de vorm van opdrachtregels.

De shell is een programma dat fungeert als interface tussen systeem en gebruiker. Het omvat een opdrachtregelinterpreter (ook terminal emulator genoemd) die gebruikersinvoer via het toetsenbord ontvangt, deze uitleest, eventueel programma's start en vervolgens output in de vorm van tekstuitvoer teruggeeft aan de gebruiker. Daarnaast heeft iedere shell een eigen programmeertaal, waarmee shellscripts kunnen worden geschreven, bijvoorbeeld om programma-aanvragen te koppelen en administratieve taken te vereenvoudigen.

Iedere shell draait in een terminal. Aan het begin van het computertijdperk werden daarvoor zelfstandige apparaten, zogenaamde hardcopyterminals (printer of beeldscherm plus toetsenbord) gebruikt. Deze werden op moderne computers vervangen doorterminalemulators. Dit zijn programma's die gebruikers een grafisch venster bieden voor de interactie met de shell.

Zodra je de terminal van je besturingssysteem opent, start deze de in de instellingen vastgelegde standaard shell (bijvoorbeeld de Bourne again shell, Bash) en kan deze invoer ontvangen in de zogenaamde prompt. Hieronder tonen we hoe dat er uit ziet in Ubuntu:

Linux commandos
De Bash onder Ubuntu: de prompt geeft de gebruikersnaam en hostnaam weer
Feit!
In de loop der tijd werden er diverse shells ontwikkeld voor Unix-achtige besturingssystemen, die verschillen qua functie-omvang en gebruiksvriendelijkheid. Als Linux-gebruiker heb je dus de keuze welke terminal emulator je gebruikt. Op de meeste besturingssystemen zijn standaard al meerdere shells geïnstalleerd. Vanuit de terminal kan eenvoudig van de ene shell naar de andere worden gewisseld (zie chsh in het hoofdstuk User-account-management). Naast de standaardprogramma's Bash en Dash behoren de Fish, de Z-Shell, de KornShell, de (t)csh en de Mksh tot de bekendste shells.

De interactie met de shell vindt in de regel plaats door middel van commando's, waarmee gelijknamige opdrachtregelprogramma's kunnen worden geopend. Voor iedere actie die je via de linux-terminal wilt uitvoeren, open je een programma volgens het volgende basisschema:

COMMANDO [OPTIES] [ARGUMENTEN]

Een programma wordt via de terminal in Linux geopend met de naam van het programma. De meeste programma's bieden de mogelijkheid om bepaalde programmafuncties te openen via Opties. Als een programma argumenten verwacht, bijvoorbeeld in de vorm van bestanden of paden, worden deze normaal gesproken weergegeven op basis van de geselecteerde opties.

Hieronder bieden we je een overzicht van de meest gebruikte Linux-commando’s en de bijbehorende opdrachtregelprogramma's.



Basisopdrachten

In de categorie basisopdrachten vind je essentiële Linux-commando's, waarmee je de terminal aanstuurt. Leer hier hoe je de terminal leegmaakt, eerdere terminalinvoer uit de historie opvraagt of de terminalsessie afsluit.

CommandoBeschrijving
clear

Terminal leegmaken

Gebruik het opdrachtregelcommando clear om de beeldscherminhoud te wissen.

clear

Je krijgt een lege terminal met prompt. Oudere invoer blijft behouden in de scrollback-buffer.

Behalve via dit commando kan de terminal ook worden leeggemaakt via de toetsencombinatie [CTRL] + [L].

exit

Sessie afsluiten

Het opdrachtregelcommando exit sluit de actuele sessie af en sluit de terminal.

exit

Je kunt ook de toetsencombinatie [CTRL] + [D] gebruiken.

help

Lijst van alle shell-commando’s weergeven

Gebruik het commando help om een lijst weer te geven van alle geïntegreerde shell-commando's (built-in-commando's).

help

Open help in combinatie met een shell-commando om een korte beschrijving van het betreffende commando te tonen.

help COMMANDO

history

Invoer van het history-bestand weergeven

In de Bash worden de laatste 500 commando's die je via de opdrachtregel hebt ingevoerd, opgeslagen in de zogenaamde history.

Deze functie is bedoeld als invoerhulp, waarmee je een lijst van eerdere commando's met de pijltoetsen kunt doorzoeken en met enter opnieuw kunt uitvoeren.

De history kan worden doorzocht op trefwoorden met de toetsencombinatie [CTRL] + [R]. Je kunt de complete lijst ook genummerd weergeven in de terminal.

Gebruik hiervoor het commando history zonder opties en argumenten.

history

Als je de uitvoer wilt filteren, combineer je history via het pipe-teken (|) met het opdrachtregelprogramma grep (zie zoekopties) en een zoekwoord.

history | grep ZOEKWOORD


Helppagina's

Weet je het even niet meer? Geen probleem. In Linux heb je via de terminal direct de beschikking over diverse help- en documentatiepagina's, zoals de Unix-manpages en de GNU-infopagina's. Deze omvatten een gedetailleerde beschrijving van alle opdrachtregelprogramma's, systeemaanvragen, configuratiebestanden, bestandsformaten en kernelfuncties. Met whatis en apropos vind je in de categorie helppagina's bovendien opdrachtregelprogramma's waarmee je de gebruiksaanwijzingspagina's van je besturingssysteem kunt doorzoeken op trefwoorden.

CommandoBeschrijving
apropos

Gebruiksaanwijzing doorzoeken

Gebruik apropos om de paginatitels en beschrijvingen van de gebruiksaanwijzingspagina's van je besturingssysteem te doorzoeken op trefwoorden. Het opdrachtregelprogramma geeft je alle overeenkomsten inclusief korte beschrijving weer in de terminal.

Gebruik hiervoor het volgende schema:

apropos [OPTIES] ZOEKTERM

Het commando ondersteunt verschillende opties. Baken de zoekopdracht met de optie -e (--exact) af tot exacte overeenkomsten of gebruik de plaatshouder (-w '*ZOEKTERM') en reguliere expressies (-r).

info GNU-infopagina’s openen

Met het commando info kun je de GNU-informatiepagina's voor een bepaald onderwerp openen. Deze komen in de meeste gevallen overeen met de gebruiksaanwijzingspagina's, die je kunt openen via man, maar bevatten ook links waarmee je eenvoudiger kunt navigeren in de gebruiksaanwijzing.

Gebruik de volgende syntax om een GNU-infopagina te openen:

info [OPTIE] ONDERWERP

Een commando zonder optie en onderwerp leid je naar het hoofdmenu van de GNU-infopagina's.

man

Gebruiksaanwijzing openen

Het commando man opent de gebruiksaanwijzingspagina's (man-pages) van je Linux-systeem direct in de terminal.

Gebruik het volgende schema om een gebruiksaanwijzingspagina te openen:

man [OPTIE] ONDERWERP

De Linux man-pages zijn ingedeeld in 10 thema’s:

(1) Gebruikerscommando's

(2) Systeemaanvraag

(3) Functies van de programmeertaal C

(4) Bestandsformaten

(5) Configuratiebestanden

(6) Spellen

(7) Diversen

(8) Commando's voor systeembeheer

(9) Kernelfuncties

(n) Nieuwe commando's

Als je bijvoorbeeld de gebruiksaanwijzingspagina bij een bepaald Linux-commando wilt openen, gebruik je man in combinatie met de naam van het commando.

man clear

Je kunt de zoekopdracht ook beperken door het nummer van het thema te vermelden:

man 1 clear

In beide gevallen wordt de gebruiksaanwijzingspagina bij het opdrachtregelcommando clear geopend. Gebruik de toets [Q] om deze te sluiten en terug te keren naar de prompt in de terminal.

Met het commando apropos kunnen de Linux-gebruiksaanwijzingspagina's worden doorzocht op trefwoorden.

pinfo

Infopagina's openen in Lynx-stijl

Met pinfo beschik je over een variant van het opdrachtregelprogramma info, dat gebaseerd is op de opdrachtregelbrowser Lynx en je infopagina's toont met in kleuren weergegeven links.

Gebruik pinfo volgens hetzelfde schema als het info-commando.

pinfo [OPTIES] ONDERWERP

whatis

Trefwoorden in de gebruiksaanwijzingspagina's

Met het opdrachtregelprogramma whatis kunnen de gebruiksaanwijzingspagina's worden doorzocht op trefwoorden. Open het programma met een willekeurige zoekterm om de gebruiksaanwijzing van je besturingssysteem te doorzoeken op exacte treffers. Als er een overeenkomst is, geeft whatis een korte beschrijving weer in de terminal.

whatis [OPTIES] ZOEKTERM

Ook whatis (-w '*ZOEKTERM') ondersteunt plaatshouders en reguliere expressies (-r).


Mappenacties

Linux-commando's voor mappenacties gebruik je om via de terminal mappen op je systeem aan te maken, te verwijderen, te beheren en doorheen de mappenstructuur te navigeren. Enkele van de belangrijkste opdrachtregelcommando's uit deze categorie zijn cd, ls, mkdir, rmdir.

CommandoBeschrijving
cdNavigatie in de mappenstructuur

Het opdrachtregelcommando cd staat voor change directory en is bedoeld om te navigeren door de mappenstructuur.

De syntax van het commando luidt:

cd [OPTIE] MAP

Als er geen doelmap wordt aangegeven, ga je met cd automatisch naar de home-map van de gebruiker.

Als cd wordt gebruikt met een minusteken (-) erachter, spring je naar de vorige map.

chrootProgramma uitvoeren in een nieuwe rootmap

Het commando chroot (kort voor: change root) wordt gebruikt om een commando in een andere rootmap uit te voeren. Het commando chroot kan bijvoorbeeld worden toegepast om problematische programma's te isoleren van het overige bestandssysteem. Men spreekt in dit geval van een chroot jail.

Om dit programma te openen, zijn rootrechten vereist en dient het volgende schema te worden gevolgd:

chroot MAP COMMANDO

lsOverzicht van mapinhoud weergeven

Het opdrachtregelcommando ls staat voor list en wordt gebruikt om de inhoud van een map (de namen van alle bestanden en mappen die zich in de aangegeven map bevinden) weer te geven.

De syntax van het commando luidt:

ls [OPTIES] MAP

Als ls wordt gebruikt zonder mapaanduiding wordt met dit commando de inhoud van de huidige map weergegeven.

Met behulp van extra opties bepaal je welke gegevens worden weergegeven en hoe deze worden getoond.

mkdirMap aanmaken

Het opdrachtregelcommando mkdir staat voor make directory en stelt Linux-gebruikers in staat om nieuwe mappen aan te maken.

Gebruik de volgende syntax om in de huidige map een nieuwe map aan te maken:

mkdir [OPTIE] MAPNAAM

Indien gewenst kun je meerdere mappen tegelijk aanmaken door hun namen achter elkaar in te voeren met een spatie ertussen:

mkdir [OPTIE] MAPNAAM1 MAPNAAM2

Als een map in een bepaalde doelmap dient te worden aangemaakt, voer je het absolute of relatieve pad naar de map in.

mkdir /home/user/Desktop/test

mkdir ../Desktop/test

Bij beide voorbeelden wordt de map test aangemaakt in de map desktop.

mkdirhierMappenstructuur aanmaken

Met mkdirhier kun je met één enkel opdrachtregelcommando complete mappenstructuren aanmaken:

mkdirhier [OPTIE] /home/user/map1/map2/map3

Als map1 en map2 al bestaan, maakt mkdirhier alleen map3 aan. Anders worden alle drie de mappen aangemaakt.

pwdMapnaam weergeven

Gebruik pwd (kort voor print working directory) om de naam van de huidige werkmap weer te geven.

De syntax van het commando luidt:

pwd [OPTIES]

rmdirMap verwijderen

Als je een bepaalde map wilt verwijderen, gebruik je het opdrachtregelcommando rmdir (remove directory) volgens deze syntax:

rmdir [OPTIE] MAP

Met rmdir kunnen alleen lege mappen worden verwijderd. Om een map inclusief alle bestanden en submappen te verwijderen, gebruik je het commando rm (remove) met de optie -r.

Let op: rmdir verlangt geen bevestiging van de verwijdering. De geselecteerde mappen worden onherroepelijk verwijderd.

treeMappen weergeven in de boomstructuur

Terwijl ls alleen de inhoud van mappen weergeeft, kan met het opdrachtregelcommando tree de complete mappenstructuur recursief worden weergegeven als boomstructuur.

Dit doe je met de volgende syntax:

tree [OPTIES] [MAP]


Bestandsacties

Met Linux-commando's uit deze rubriek kun je diverse bestandsacties uitvoeren vanuit de terminal. Gebruik essentiële Linux-commando's zoals cp, mv en rm om bestanden in je systeem te kopiëren, te verplaatsen, te hernoemen of te verwijderen.

CommandoBeschrijving
basenameBestandsnaam weergeven

Aan het opdrachtregelcommando basename wordt een bestandspad toegevoegd; het geeft alleen de bestandsnaam zonder voorafgaand pad terug.

De syntax van het commando luidt:

basename [OPTIES] pad/naar/bestand [SUFFIX]

Voer bijvoorbeeld $ basename /home/user/afbeelding.jpg in de terminal in om de volgende uitvoer te krijgen:

afbeelding.jpg

De aanvullende vermelding van het suffix verwijdert dit ook uit de uitvoer.

Invoer: $ basename /home/user/afbeelding.jpg

Uitvoer: afbeelding

Het commando kan door opties worden uitgebreid naar meerdere bestanden.

catBestandsinhouden samenvoegen

Het opdrachtregelprogramma cat (kort voor: concatenate) werd ontwikkeld als tool voor het samenvoegen van bestandsinhouden en kan worden gebruikt als pager voor het weergeven van bestandsinhouden in de terminal.

Open cat met de volgende syntax in de terminal om een bestand in te lezen en weer te geven op stdout (de standaarduitvoer):

cat OPTIES BESTAND

Meerdere bestanden worden gescheiden door een spatie:

cat OPTIIES BESTAND1 BESTAND2

De koppeling van bestandsinhouden wordt tot stand gebracht met behulp van omleidingsoperators (>, < en |). Gebruik bijvoorbeeld de operator ‘groter dan' (>) om de inhoud van twee bestanden samen te voegen in een derde:

cat bestand_1.txt bestand_2.txt > bestand_3.txt

cmpBestanden vergelijken op byte-niveau

cmp maakt deel uit van het diff-pakket en is ook bedoeld om bestandsinhouden te vergelijken. Anders dan bij diff vindt de vergelijking plaats op byte-niveau, waardoor deze met name geschikt is voor binaire bestanden.

Gebruik cmp volgens deze syntax:

cmp [OPTIES] BESTAND1 BESTAND2

Als cmp verschillen vindt, geeft het opdrachtregelprogramma byte- en regelnummer van de eerste afwijking weer in de terminal.

commOp regel gesorteerde bestanden vergelijke n

Gebruik het opdrachtregelprogramma comm om gesorteerde bestanden (bijvoorbeeld via sort) per regel te vergelijken.

Het programma wordt geopend met de volgende syntax:

comm [OPTIES] BESTAND1 BESTAND2

Als comm wordt ingevoerd zonder optie geeft het programma drie kolommen weer: de eerste kolom bevat alle regels die alleen in BESTAND1 voorkomen, de tweede kolom bevat alle regels die alleen in BESTAND2 voorkomen en de derde kolom bevat alle regels die in beide bestanden voorkomen.

Het programma ondersteunt drie opties:

-1 = unieke regels uit BESTAND1 onderdrukken

-2 = unieke regels uit BESTAND2 onderdrukken

-3 = alle regels onderdrukken die beide bestanden bevatten

cpBestanden of mappen kopiëren

Het opdrachtregelcommando cp (copy) kan worden gebruikt om bestanden en mappen te kopiëren. De syntax van het commando luidt:

cp [OPTIES] BRON DOEL

De BRON is het element dat moet worden gekopieerd. Als DOEL van de kopieerhandeling wordt ofwel een bestand of een map gedefinieerd. Als je een reeds bestaand bestand definieert als doelbestand wordt de inhoud ervan overschreven met die van het bronbestand. Je kunt het doelbestand ook aanmaken als nieuw bestand met een naam naar keuze.

Als er meerdere bestanden worden gekopieerd, moet het doel een map zijn. Hetzelfde geldt als er een map wordt gekopieerd.

Een bronbestand kopiëren naar een doelbestand in de huidige map:

cp [OPTIES] BRONBESTAND DOELBESTAND

Voorbeeld: cp bestand.txt bestand_kopie.txt

Een bronbestand uit de huidige map kopiëren naar een doelmap:

cp [OPTIES] BRONBESTAND DOELMAP

Voorbeeld: cp bestand.txt home/user/documenten/2019

Meerdere bronbestanden kopiëren naar een doelmap:

cp [OPTIES] BRONBESTAND1 BRONBESTAND2 DOELMAP

Voorbeeld: cp bestand.txt bestand.odt home/user/documenten/2019

Een bronmap uit de huidige map kopiëren naar een doelmap:

cp BRONMAP DOELMAP

Voorbeeld: cp map1 home/user/documenten/2019

Als mappen met alle inhoud moeten worden gekopieerd, moeten alle submappen met behulp van de OPTIE -R worden meegenomen in het kopieerproces.

cutBestandsinhoud extraheren

Met het commando cut kun je inhoud in kolommen extraheren uit de tekstregels van een bestand (bijvoorbeeld log- of CSV-bestanden).

De syntax van het commando luidt:

cut [OPTIES] BESTAND

De precieze positie van een sectie die moet worden geëxtraheerd, wordt gedefinieerd met de opties -b (bytepositie), -c (tekenpositie), -d (afbrekingsteken) en -f (veld).

diffBestanden of mappen vergelijken

Met het opdrachtregelprogramma diff kunnen twee bestanden met elkaar worden vergeleken. Ook kan via diff worden bepaald of twee mappen dezelfde bestanden bevatten.

Dit doe je in de terminal met de volgende syntax:

diff [OPTIES] BESTAND1 BESTAND2

dirnameBestandspad weergeven

dirname is de tegenhanger van basename. Met dit opdrachtregelcommando kun je het padgedeelte uit een bestandspad extraheren en zonder bestandsnaam weergeven in de terminal.

De syntax van het commando luidt:

dirname [OPTIES]

Voer bijvoorbeeld $ dirname /home/gebruiker/afbeelding.jpg in de terminal in om de volgende uitvoer te krijgen:

/home/gebruiker

fileBestandstype weergeven

Met het opdrachtregelcommando file kunnen gegevens bij het bestandstype van een bestand worden weergegeven.

Dit doe je volgens het volgende schema:

file [OPTIES] BESTAND

lnKoppeling met bestand of map maken

Het opdrachtregelprogramma ln (kort voor link) maakt een koppeling met een bestand of een map aan. Zo wordt er nog een mapinvoer aangemaakt voor dit bestand, waarmee je via een ander bestandspad toegang kunt verkrijgen tot het betreffende bestand.

De aanvraag van het opdrachtregelprogramma ln moet ten minste het pad naar het bronbestand bevatten.

ln [OPTIES] pad/naar/bronbestand

De link wordt in dit geval in de huidige werkmap aangemaakt onder dezelfde naam.

Je kunt ook een doelpad aangeven en de koppeling een willekeurige naam geven:

ln [OPTIES] pad/naar/bronbestand pad/naar/koppeling

ln genereert in de standaardinstelling zogenaamde hardlinks. Deze zijn niet geschikt om koppelingen naar mappen aan te maken. Daarnaast kunnen hardlinks niet over partitiegrenzen heen worden gebruikt. Het commando wordt daarom vaak gebruikt met de OPTIE -s (--symbolic), waarmee de zogenaamde symbolische koppelingen ook over bestandssysteemgrenzen heen kunnen worden gegenereerd. Symbolische links verwijzen altijd naar een 'echt' bestandspad en zijn daarvan afhankelijk.

lsofGeopende bestanden weergeven in de terminal

lsof staat voor list open files, een hulpprogramma waarmee je in de terminal gegevens kunt weergeven van geopende bestanden gesorteerd op PID (proces-ID).

Dit doe je volgens het volgende schema:

lsof [OPTIES]

Omdat Unix-achtige systemen zoals Linux zijn gebaseerd op het principe 'Everything is a file' (Alles is een bestand), is de lijst die lsof weergeeft zeer lang. In de regel worden er daarom opties gebruikt om de weergave te beperken.

md5sumChecksums berekenen

Met behulp van het opdrachtregelcommando md5sum kunnen MD5-checksums voor bestanden worden berekend en gecontroleerd.

mvBestand of map verplaatsen

Het opdrachtregelprogramma mv (move) kopieert een bestand of map en verwijdert het oorspronkelijke element. Als dit binnen dezelfde map gebeurt, kan mv worden gebruikt om de bestanden te hernoemen.

Het programma wordt geopend met het volgende schema:

mv [OPTIE] BRON DOEL

Toepassingsvoorbeelden:

Een bestand is verplaatst naar een andere map:

mv [OPTIES] BRONBESTAND DOELMAP

Voorbeeld: mv bestand1.txt home/user/documenten/2019

Meerdere bronbestanden naar een doelmap verplaatsen:

mv [OPTIES] BRONBESTAND1 BRONBESTAND2 DOELMAP

Voorbeeld: mv bestand1.txt bestand2.txt home/user/documenten/2019

Een submap uit de huidige map naar een doelmap verplaatsen:

mv [OPTIES] MAPNAAM_OUD MAPNAAM_NIEUW

Voorbeeld: mv map1 home/user/documenten/2019

Bestand in huidige map hernoemen:

mv [OPTIES] BESTANDSNAAM_OUD BESTANDSNAAM_NIEUW

Voorbeeld: mv bestand1.txt bestand2.txt

Submap in huidige map hernoemen:

mv [OPTIES] MAPNAAM_OUD MAPNAAM_NIEUW

Voorbeeld: mv map1 map2

pasteBestandsinhouden per kolom samenvoegen

Net als met cat kan ook met het opdrachtregelprogramma paste bestandsinhoud worden weergegeven in de standaarduitvoer. Maar waar cat inhoud enkel bij elkaar voegt, koppelt paste deze per kolom.

Het basisschema van het commando luidt:

paste [OPTIES] BESTAND1 BESTAND2

In de standaardmodus worden de genoemde bestanden zo samengevoegd dat alle regels met hetzelfde regelnummer in dezelfde kolom van de uitvoer worden overgedragen. Iedere regel van de uitvoer bevat zo de inhoud van alle invoerbestanden.

Welk afbrekingsteken paste gebruikt, kan worden bepaald met de optie -d. Als standaard afbrekingsteken worden tabs gebruikt.

Met de optie -s (serieel) kan nog een tweede modus worden geactiveerd. Hierbij worden alle regels van het eerste invoerbestand overgedragen naar de eerste regel van de uitvoer. De gegevens van alle andere invoerbestanden volgen telkens in aparte uitvoerregels. Iedere regel van de uitvoer bevat zo alleen de inhoud van één invoerbestand.

renameBestanden hernoemen

rename is een opdrachtregelprogramma waarmee bestanden en mappen met behulp van Perl-compatibele reguliere expressies (Regex) kunnen worden hernoemd. Anders dan mv is rename daarom geschikt voor bestandsacties waarbij de namen van meerdere bestanden gedeeltelijk of geheel moeten worden gewijzigd.

Gebruik rename volgens het volgende schema:

rename [OPTIES] 'REGULIERE_EXPRESSIE' BESTANDEN

Reguliere expressies hebben bij vervangingen de volgende syntax:

s/ZOEKPATROON/VERVANGING/MODIFIER

In het volgende voorbeeld worden alle .html-bestandsextensies hernoemd naar .xhtml.

rename 's/\.html$/.xhtml/' *.html

rmBestand of map verwijderen

Het opdrachtregelprogramma rm (remove) verwijdert bestanden of complete mappen definitief.

Het programma wordt geopend met het volgende schema:

rm [OPTIES] BESTAND

of

rm [OPTIES] MAP

Als een map met alle submappen moet worden verwijderd, gebruik je rm met de OPTIE -R (--recursive).

rm -R MAP

Meerdere bestanden of mappen worden gescheiden met een spatie.

rm [OPTIES] BESTAND1 BESTAND2

shredBestanden 'shredden'

shred is een opdrachtregelprogramma waarmee bestanden veilig kunnen worden verwijderd. Geselecteerde elementen worden tijdens het verwijderen overschreven en kunnen dus zelfs met erg gespecialiseerde middelen niet meer worden hersteld.

De algemene syntax van het commando luidt:

shred [OPTIES] BESTAND

Gebruik shred met de volgende opties om een afzonderlijk bestand onherstelbaar te verwijderen:

shred -fuz BESTAND

De optie -f dwingt de verwijdering, -z overschrijft de bestandsinhoud met nullen (standaard ingesteld zijn toevalsdata). Vervolgens verwijdert -u net als het rm-commando het geshredde bestand uit het bestandssysteem.

sortBestandslijsten en programma-uitvoer sorteren

Gebruik het opdrachtregelcommando sort om bestandslijsten en programma-uitvoer op regel numeriek en alfabetisch te sorteren.

De algemene syntax van het commando luidt:

sort [OPTIES] BESTAND

De sorteermethode kan worden gewijzigd met behulp van opties: bijvoorbeeld numeriek (-n), toevallig (-R) of in omgekeerde volgorde (-r).

splitBestanden splitsen

Het opdrachtregelcommando split wordt gebruikt om bestanden te splitsen.

De bijbehorende syntax luidt:

split [OPTIES] [INPUT [PREFIX]]

De plaatshouder INPUT komt overeen met het bestand dat moet worden gesplitst. Het PREFIX fungeert als voorvoegsel voor de naam van de deelbestanden. De benoeming daarvan is gebaseerd op het volgende schema:

PREFIXaa, PREFIXab, PREFIXac

Als er geen prefix wordt gedefinieerd, maakt split gebruik van het standaard prefix x.

Met de optie -b (bytes) kan de grootte van de deelbestanden worden bepaald. Deze kun je naar keuze aangeven in byte (b), kilobyte (k) of megabyte (m).

Voorbeeld:

split -b 95m archief.tgz split-archief.tgz.

Het commando split splitst het bestand archief.tgz in deelbestanden van 95 megabyte en benoemt deze als volgt:

split-archief.tar.aa

split-archief.tar.ab

split-archief.tar.ac

Door split gesplitste bestanden kunnen met behulp van het opdrachtregelcommando cat weer worden samengevoegd.

cat split-archief.tar.* > archief.tar

statTijdstempel weergeven

Met het opdrachtregelcommando stat (status) kunnen toegangs- en wijzigingstijdstempels van geselecteerde bestanden en mappen worden weergegeven.

De algemene syntax van het commando luidt:

stat [OPTIES] BESTAND

Het weergaveformaat kan worden gewijzigd met behulp van opties.

touchTijdstempel wijzigen

Het opdrachtregelcommando touch wordt gebruikt om toegangs- en wijzigingstijdstempels van bestanden te veranderen. Als touch wordt toegepast op een niet-bestaand bestand, wordt dit automatisch aangemaakt. Het commando is daarom ook geschikt om lege bestanden aan te maken.

Gebruik touch volgens het volgende schema:

touch [OPTIES] BESTAND

Om het tijdstempel van een bestand op een gewenste datum te zetten, gebruik je de OPTIE -t inclusief tijdsaanduiding in het formaat [JJ]MMDDuumm[.ss].

Voorbeeld:

touch -t 1703231037 bestand.txt

Toegangs- en wijzigingstijdstempel worden op 23 maart 2017, 10.37 gezet. De aanpassing kan met de opties -a en -m worden beperkt tot toegangs- en wijzigingstijdstempels.

Als het commando touch zonder optie -t wordt gebruikt, wordt de huidige tijdstempel gebruikt.

uniqDubbele regels in bestandslijsten en programma-uitvoer verwijderen

Het opdrachtregelcommando uniq wordt in de regel gebruikt in combinatie met sort, om gesorteerde bestanden van dubbele regels te ontdoen.

In het volgende voorbeeld wordt het commando sort met een pipe (|) gekoppeld aan het commando uniq, om een bestand eerst te sorteren en vervolgens zonder dubbele regels weer te geven:

sort bestand.txt | uniq


Rechtenbeheer

In Linux kunnen toegangs- en eigendomsrechten voor bestanden en mappen eenvoudig worden aangepast in de terminal. De belangrijkste opdrachtregelcommando’s voor het rechtenbeheer zijn chown en chmod. Groepstoewijzingen worden beheerd met het commando chgrp.

CommandoBeschrijving
chattrBestandsattributen beheren

Met het opdrachtregelprogramma chattr (kort voor change attribute) kun je bestanden of mappen voorzien van attributen. Een wijziging van bestandsattributen wordt door diverse bestandssystemen (bijvoorbeeld ext2, ext3, ext4, XFS, ReiserFS, JFS en OCFS2) ondersteund.

Gebruik chattr met de volgende syntax om een attribuut te plaatsen:

chattr [OPTIES] +ATTRIBUUT BESTAND

Geplaatste attributen kunnen met hetzelfde schema weer worden verwijderd:

chattr [OPTIES] -ATTRIBUUT BESTAND

Plaats bijvoorbeeld het attribuut -i om wijzigingen (verwijderingen of aanpassingen) van een bestand of een map te verbieden:

chattr +i bestand.txt

Overige attributen en mogelijke opties vind je in de gebruiksaanwijzingspagina bij het programma chattr.

chgrpGroepstoewijzingen van bestanden en mappen beheren

Het commando chgrp staat voor change group en wordt gebruikt bij het beheer van groepstoewijzingen voor bestanden en mappen. Om chgrp toe te kunnen passen op een geselecteerd bestand of een map, moet je eigenaars- of rootrechten bezitten. Daarnaast kunnen uitsluitend groepen worden geselecteerd waar je zelf lid van bent.

chgrp wordt volgens de volgende syntax gebruikt:

chgrp [OPTIES] GROEP BESTAND

of:

chgrp [OPTIES] GROEP MAP

De optie -R neemt ook submappen en de bestanden in een map mee.

chmodToegangsrechten beheren

Het opdrachtregelprogramma chmod (kort voor change mode) is gericht op het toekennen van rechten in Unix-achtige bestandssystemen (bijvoorbeeld ext2, ext3, ext4, reiser, xfs).

De algemene syntax van het commando luidt:

chmod [OPTIES] MODUS BESTAND

of

chmod [OPTIES] MODUS MAP

De plaatshouder MODUS staat daarbij voor het toe te passen rechtenvenster. Hoe je deze aanmaakt en waar je daarbij op moet letten, lees je in ons uitgebreidere artikel over de toekenning van toegangsrechten met chmod.

Met behulp van de optie -R kunnen toegekende rechten recursief worden uitgebreid naar submappen en de bestanden in een map.

chownEigendomsrechten beheren

In de regel is de persoon die een bestand of map aanmaakt automatisch de eigenaar ervan (owner). Het commando chown staat voor change owner en biedt je de mogelijkheid om deze eigendomsinstellingen te wijzigen.

Het commando wordt gebruikt volgens het volgende schema:

chown [OPTIES] [GEBRUIKER][:[GROEP]] BESTAND

of

chown [OPTIES] [GEBRUIKER][:[GROEP]] MAP

Om het eigendomsrecht in te stellen voor gebruikers of groepen heb je vier combinatiemogelijkheden.

Eigenaar en groep worden conform de invoer opnieuw ingesteld:

chown [OPTIES] eigenaar_naam:groepen_naam bestand.txt

De groep wordt conform de invoer opnieuw ingesteld, de gebruiker blijft ongewijzigd:

chown [OPTIES] :groepen_naam bestand.txt

De eigenaar wordt conform de invoer opnieuw ingesteld, de groep blijft ongewijzigd:

chown [OPTIES] eigenaar_naam bestand.txt

De gebruiker wordt conform de invoer opnieuw ingesteld. De groep wordt ingesteld op de standaard groep van de ingelogde gebruiker:

chown [OPTIES] eigenaar_naam bestand.txt

De wijzigingen kunnen met behulp van de OPTIE -R recursief worden uitgebreid naar submappen.

lsattrBestandsattributen weergeven

Als je wilt laten weergeven welke attributen zijn ingesteld voor een bestand of map, gebruik je het opdrachtregelcommando lsattr (kort voor list attributes) volgens het volgende schema:

lsattr [OPTIES] BESTAND/MAP


Zoekopties

Linux biedt diverse opdrachtregelcommando's waarmee het systeem direct vanuit de terminal kan worden doorzocht.

CommandoBeschrijving
findBestandssysteem doorzoeken

find is een opdrachtregelprogramma waarmee naar bestanden kan worden gezocht.

Het programma wordt geopend met de volgende syntax:

find [OPTIES] [MAP] [ZOEKVOORWAARDE][ACTIES]

De aangegeven map geldt als startmap van de zoekopdracht. Doorzocht worden dus de startmap en diens submappen. Als er geen map wordt aangegeven, start find de zoekopdracht vanuit de huidige werkmap.

Met opties kun je zoekcriteria en acties definiëren. Standaard is de actie –print ingesteld: weergave van de volledige bestandsnaam van alle zoekcriteria in de standaardweergave (in de regel de terminal).

Gangbare zoekcriteria zijn de bestandsnaam (-naam BESTANDSNAAM[SUFFIX]), een gebruikersnaam (-user GEBRUIKERSNAAM), de bestandsgrootte (-size n[cwbkMG]), het toegangstijdstip in dagen (-atime [+-]n) of het wijzigingstijdstip in dagen (-mtime [+-]n).

Bij het zoeken naar bestandsnamen kunnen metatekens en plaatshouders worden gebruikt. Plaats deze tussen aanhalingstekens om een interpretatie door de shell te verbieden.

Voorbeeld:

find /tmp -name "*.odt" -mtime -3 -size +20k

Als startmap is de map /tmp gedefinieerd. Het opdrachtregelprogramma find geeft alle bestanden die de bestandsextensie .odt hebben, groter zijn dan 20k en minder dan 3 dagen geleden voor het laatst werden gewijzigd, weer in de standaardweergave.

Overige opties voor het zoekcommando find vind je in de gebruiksaanwijzingspagina bij het programma.

grepTekstbestanden doorzoeken

Met het commando grep (kort voor global regular expression print) kunnen tekstbestanden (bijvoorbeeld logbestanden) worden doorzocht. Als zoekpatroon kunnen willekeurige tekenreeksen of reguliere expressies worden gebruikt.

Gebruik grep volgens deze syntax:

grep [OPTIES] ZOEKPATROON [BESTAND(EN)]

Als grep een string vindt die overeenkomt met het zoekpatroon, wordt het regelnummer met de bijbehorende bestandsnaam weergegeven in de terminal.

In de regel wordt grep op alle bestanden in de huidige map toegepast. Met de optie -r kan een recursieve zoekopdracht in submappen worden verricht.

locate Bestandsindex doorzoeken

Ook met het opdrachtregelprogramma locate kan via de terminal naar bestanden worden gezocht. Maar anders dan bij find wordt daarbij niet de bestandsmap doorzocht, maar een speciaal daarvoor aangemaakte regelmatig bijgewerkte database. Daardoor levert locate beduidend snellere zoekresultaten dan find.

Om in de database te zoeken naar een bepaald bestand open je locate volgens het volgende schema:

locate ZOEKPATROON

Het zoekpatroon kan metatekens zoals plaatshouders (*) bevatten. Plaats dergelijke zoekpatronen tussen aanhalingstekens om een interpretatie door de shell te verbieden.

In het volgende voorbeeld toont locate alle bestanden met de extensie .png.

locate "*.png"

Het commando locate is hoofdlettergevoelig. Om verschillen tussen grote en kleine letters bij het zoeken te omzeilen, gebruik je de optie -i.

Als database voor de indexering van bestanden fungeert het bestand /var/lib/locatedb. Dit bevat een lijst van alle bestanden van het bestandssysteem op een bepaald tijdstip en moet regelmatig worden bijgewerkt. Gebruik daarvoor het commando updatedb.

tre-agrepFuzzy search in tekstbestanden

Ook tre-agrep is bedoeld voor het zoeken naar strings in tekstbestanden op basis van zoekpatronen. Anders dan bij grep worden daarbij niet alleen exacte overeenkomsten weergegeven, maar ook “fuzzy” overeenkomsten zoals tikfouten of ontbrekende tekens. Het programma is gebaseerd op de TRE-bibliotheek en maakt deze toepasbaar in de opdrachtregel.

De syntax van tre-agrep komt overeen met die van het grep-commando:

tre-agrep [OPTIES] ZOEKPATROON BESTAND(EN)

Met opties kun je een maximaal aantal fouten instellen. In het volgende voorbeeld wordt maximaal één afwijking van het zoekpatroon getolereerd.

tre-agrep -1 'Linux' test.txt

tre-agrep geeft alle regels van het tekstbestand test.txt weer die woorden bevatten die overeenkomen met het zoekpatroon of er maximaal één letter van verschillen: bijvoorbeeld Linus.

updatedbBestandsindex actualiseren

Zoeken via locate is alleen betrouwbaar als het bestand /var/lib/locatedb continu wordt bijgewerkt. Met het commando updatedb kun je de database handmatig bijwerken. Houd er rekening mee dat je hiervoor rootrechten nodig hebt:

updatedb

whereisBinaire code, broncode of gebruiksaanwijzingspagina's van programma’s zoeken

Met het commando whereis lokaliseer je de binaire code, broncode of gebruiksaanwijzingspagina's van gesorteerde programma's.

De algemene syntax van het commando luidt:

whereis [OPTIES] PROGRAMMA

Voorbeeld:

whereis firefox

Als output schrijft whereis de paden naar de gevonden bestanden, gescheiden door spaties, in de terminal:

firefox: /usr/bin/firefox/ usr/lib/firefox/ usr/share/man/man1/firefox.1.gz

Met opties kan de zoekopdracht worden beperkt tot bepaalde bestandstypes of mappen.

whichBinaire bestanden van programma’s bepalen

Als je een binair bestand van een programma wilt bepalen, gebruik je het commando which volgens het volgende schema om het pad in de terminal weer te geven.

which [OPTIES] PROGRAMMA

Voorbeeld:

which firefox

Output:

/usr/bin/firefox

In de standaardmodus geeft which het eerste bestand weer dat wordt gevonden. Gebruik de optie -a om alle bestanden te tonen die voldoen aan het zoekcriterium.


Usergegevens

Gebruik de opdrachtregelprogramma's van de volgende categorie om gedetailleerde informatie over de in het systeem geregistreerde gebruikers en over hun groepen en processen weer te geven.

CommandoBeschrijving
fingerGebruikersgegevens opvragen

Met het opdrachtregelprogramma finger kunnen usergegevens worden opgeroepen. Daarvoor wordt het gelijknamige commando in combinatie met de gewenste gebruikersnaam ingevoerd:

finger [opties] [GEBRUIKERSNAAM]

De uitvoer bevat de volgende informatie over het betreffende gebruikersaccount: inlognaam, echte naam, inlogtijd, tijd sinds laatste activiteit (Idle-Time), homemap van de gebruiker, de inlogshell, locatie (Office number), mail en telefoonnummer (indien aanwezig) en de inhoud van de bestanden .plan, .project, .pgpkey en .forward in de homemap van de gebruiker (indien aanwezig).

Gebruik finger zonder gebruikersnaam om informatie op te vragen over je eigen account.

groupsGroepstoewijzing opvragen

Met het commando groups wordt weergegeven tot welke groepen een geselecteerd gebruikersaccount behoort.

Gebruik het opdrachtregelcommando volgens het volgende schema:

groups [OPTIES] [GEBRUIKERSNAAM]

Gebruik groups zonder gebruikersnaam om alle groepen te tonen waar je gebruikersaccount toe behoort.

idGebruikers- en groeps-IDs opvragen

Met het opdrachtregelcommando id worden gebruikers- en groeps-IDs van het geselecteerde gebruikersaccount weergegeven.

id [OPTIES] [GEBRUIKERSNAAM]

Door het commando zonder gebruikersnaam in te voeren, vraag je je eigen IDs op.

De omvang van de uitvoer kan worden beperkt met opties.

lastInformatie opvragen over de laatst aangemelde gebruikers

Gebruik het commando last volgens het volgende schema om een overzicht van de laatst aangemelde gebruikers inclusief inlog- en uitlogtijden weer te geven:

last [OPTIES]

De betreffende gegevens worden opgehaald uit het wtmp-bestand onder /var/log/wtmp. Als je alleen de gegevens van een bepaald account wilt opvragen, voer je het opdrachtregelcommando in met de gewenste gebruikersnaam.

last [OPTIES] [GEBRUIKERSNAAM]

wHuidige gebruikers en hun processen opvragen

Met het commando w wordt een overzicht weergegeven van alle aangemelde gebruikers inclusief alle processen die door hen worden uitgevoerd.

Gebruik w in combinatie met een gebruikersnaam om het commando te beperken tot deze gebruiker:

w [OPTIES] [GEBRUIKERSNAAM]

Omvang en formaat van de uitvoer kan indien gewenst worden aangepast met opties.

whoGedetailleerde informatie over aangemelde gebruikers opvragen

Met het commando who wordt gedetailleerde informatie over de in het systeem aangemelde gebruikers weergegeven.

De algemene syntax van het commando luidt:

who [OPTIE] [BRONBESTAND]

who ondersteunt diverse opties waarmee de omvang van de weergegeven informatie kan worden aangepast.

who toont standaardgegevens over momenteel aangemelde gebruikers uit het bestand /var/run/utmp.

Eventueel kan een van de volgende bestanden als bron voor de informatie worden aangegeven.

Als je informatie over eerdere aanmeldingen wilt opvragen, gebruik je who in combinatie met het bronbestand /var/log/wtmp:

who [OPTIE] /var/log/wtmp

Informatie over mislukte aanmeldingen krijgt je door who op te vragen met het bestand /var/log/btmp:

who [OPTIE] /var/log/btmp

whoamiEigen gebruiksnaam opvragen

Gebruik het commando whoami om je eigen gebruikersnaam op te vragen.

whoami [OPTIES]


User account management

Linux biedt meerdere programma's waarmee je gebruikersaccounts en groepen direct in de terminal kunt aanmaken, verwijderen en beheren. Een overzicht van de belangrijkste Linux-commando's voor het user account management hebben we hieronder samengesteld. Bovendien vind je in deze categorie Linux-terminal-commando's waarmee je programma's kunt openen met de rechten van andere gebruikers inclusief de super-user-root.

CommandoBeschrijving
adduserGebruikersaccount aanmaken

De eenvoudigste manier om een gebruikersaccount aan te maken, is met het opdrachtregelprogramma adduser. Hiervoor zijn rootrechten vereist en dient de volgende syntax te worden gebruikt:

adduser [OPTIES] [GEBRUIKERSNAAM]

Als adduser zonder opties wordt gebruikt, worden naast het nieuwe gebruikersaccount automatisch een gebruikers-ID, de homemap en een gelijknamige gebruikersgroep aangemaakt.

Voorbeeld:

adduser test

Terminaloutput:

Adding user 'test' (1001) …

Adding new group 'test' (1001) …

Adding new user 'test' (1001) with group 'test' …

Creating home directory '/home/test' …

Copying files from '/etc/skel' …

Vervolgens verschijnt er een interactieve dialoog waarin je het wachtwoord en de uitgebreide gebruikersgegevens (echte naam, kantoornummer, telefoonnummers enz.) kunt configureren.

Dit automatisme kan met extra opties worden aangepast of beperkt.

Het Perl-script adduser is gebaseerd op het low-level-programma useradd en biedt dezelfde functies in gebruiksvriendelijke vorm.

chfnUitgebreide gebruikersgegevens wijzigen

Met het opdrachtregelcommando chfn (kort voor change finger) kun je de uitgebreide gegevens van een gebruikersaccount zoals de echte naam, het kantoornummer en de privételefoonnummers en zakelijke telefoonnummers wijzigen.

De algemene syntax van chfn luidt:

chfn [OPTIE "NIEUWE WAARDE"] [GEBRUIKERSNAAM]

Het commando moet worden uitgevoerd met rootrechten.

Welke gebruikersgegevens worden vervangen door een nieuwe waarde, bepaal je met de opties -f (echte naam), -r (kantoornummer), -w (zakelijk nummer) en -h (privénummer).

In het volgende voorbeeld wordt het oude kantoornummer van peter23 overschreven met de nieuwe waarde 122.

chfn -r "122" peter23

chshStandaard shell wijzigen

Het opdrachtregelcommando chsh (kort voor change shell) wijzigt de inlogshell van een geselecteerde gebruiker.

Gebruik bij de invoer het volgende schema:

chsh [OPTIES] [GEBRUIKERSNAAM]

Om de inlogshell van een gebruiker te wijzigen, wordt chsh met de optie -s gebruikt. Deze wordt aangevuld met het pad naar de gewenste shell (bijvoorbeeld /usr/bin/fish).

Let op: gebruikers zonder rootrechten mogen alleen hun eigen shell wijzigen. Als je de shell van andere gebruikers wilt wijzigen, moet het commando worden uitgevoerd met rootrechten.

Voorbeeld:

sudo chsh -s /usr/bin/fish peter23

Voor de gebruiker peter23 wordt de shell fish (friendly interactive shell) als standaard ingesteld.

De verandering van shell treedt pas in werking als de gebruiker zich af- en weer aanmeldt.

deluserGebruikersaccount verwijderen

Het opdrachtregelprogramma deluser verwijdert alle invoer voor een geselecteerd gebruikersaccount uit de systeemaccountbestanden.

Om deluser te openen, zijn rootrechten vereist en dient het volgende schema te worden gevolgd:

deluser [OPTIES] [GEBRUIKERSNAAM]

Voorbeeld:

deluser peter23

Het gebruikersaccount peter23 wordt verwijderd.

Als je ook nog alle bestanden in de homemap van de gebruiker wilt verwijderen, voer je het commando in met de optie --remove-home. Als alle bestanden van de gebruiker uit het systeem moeten worden verwijderd, gebruik je de optie --remove-all-files.

deluser --remove-all-files peter23

Als alle bestanden van de gebruiker voor verwijdering worden opgeslagen, gebruik je deluser in combinatie met de optie --backup-to en voer je de gewenste map in.

deluser --backup-to /pad/naar/map peter23

deluser is een Perl-script dat in gebruiksvriendelijke vorm functies biedt van het low-level-programma userdel.

groupaddGebruikersgroepen aanmaken

Met het opdrachtregelprogramma groupadd kunnen nieuwe gebruikersgroepen worden aangemaakt.

Gebruik groupadd met rootrechten volgens het volgende schema:

sudo groupadd [OPTIES] GROEP

Iedere nieuwe groep die is aangemaakt krijgt een uniek groeps-ID (GID). Groeps-IDs tussen 0 en 99 zijn gereserveerd voor systeemgroepen. Als je het GID van een nieuwe gebruikersgroep zelf wilt definiëren, gebruik je het opdrachtregelcommando groupadd met de optie -g(GID).

In het volgende voorbeeld wordt de groep users met het GID 1425 aangemaakt.

groupadd -g 1425 users

Als je een systeemgroep wilt aanmaken, gebruik je de optie -r (root).

delgroupGebruikersgroep verwijderen

Het opdrachtregelcommando delgroup (kort voor delete group) verwijdert een bestaande gebruikersgroep.

De algemene syntax van delgroup luidt:

delgroup [OPTIES] GROEP

Om het commando uit te kunnen voeren, zijn rootrechten vereist.

De volgende invoer zorgt ervoor dat de groep users wordt verwijderd:

delgroup users

Net als bij deluser gaat het hier om een Perl-script dat in gebruiksvriendelijke vorm functies biedt van het low-level-programma groupdel.

groupmodGebruikersgroep wijzigen

Via groupmod kunnen de naam en het groeps-ID (GID) van een bestaande gebruikersgroep worden gewijzigd.

Het opdrachtregelcommando wordt met rootrechten volgens het volgende schema gebruikt:

groupmod OPTIES GROEP

Gebruik groupmod met de optie -g om het GID te wijzigen. Een commando met de optie -n overschrijft de groepsnaam.

Voorbeelden:

groupmod -g 1800 users

Het GID van de groep users wordt op 1800 gezet.

groupmod -n all users

De groep users wordt hernoemd naar all.

newgrpVeranderen van gebruikersgroep

newgrp (kort voor new group) is een commando waarmee aangemelde gebruikers hun huidige groeps-ID kunnen veranderen, zonder dat ze zich opnieuw hoeven aan en af te melden.

De algemene syntax van het commando luidt:

newgrp [-] [GROEP]

Als newgrp wordt gebruikt met de optionele parameter [-] zorgt de verandering van groep ervoor dat de gebruikersomgeving opnieuw wordt opgestart, alsof de gebruiker zich opnieuw heeft aangemeld.

Gebruikers die newgrp gebruiken zonder groepsaanduiding gaan naar de onder /etc/passwd vermelde standaardgroep.

Een gebruiker dient lid van de groep te zijn waar hij naartoe wil veranderen. Een uitzondering hierop zijn groepen die met een wachtwoord zijn beveiligd. Als een groep beveiligd is met een wachtwoord, dient dit voor het veranderen van groep in de terminal te worden ingevoerd.

passwdGebruikerswachtwoord wijzigen

Gebruik het opdrachtregelprogramma passwd om het wachtwoord van een gebruiker te wijzigen of blokkeer- en wijzigingsintervallen te definiëren.

Het commando wordt gebruikt met de volgende syntax:

passwd [OPTIES] [GEBRUIKERSNAAM]

Als je het wachtwoord van een andere gebruiker wilt wijzigen, dien je over rootrechten te beschikken.

Gebruik het commando passwd zonder gebruikersnaam om je eigen wachtwoord te wijzigen.

passwd

Als het wachtwoord van de geselecteerde gebruiker moet worden geblokkeerd, gebruik je het commando passwd met de optie -l (lock).

passwd -l GEBRUIKERSNAAM

Andere opties bieden de mogelijkheid om een vervalduur voor wachtwoorden (-x) en waarschuwings- (-w) en blokkeerintervallen (-i) te definiëren:

passwd -x MAX_DAGEN -w WAARSCHUWING_DAGEN -i INACTIEF_DAGEN GEBRUIKERSNAAM

In het volgende voorbeeld wordt gedefinieerd dat de gebruiker peter24 zijn wachtwoord iedere 30 dagen moet veranderen. Hij ontvangt vijf dagen voordat de termijn verstrijkt een waarschuwing. Als het wachtwoord na 30 dagen niet wordt gewijzigd, vervalt het wachtwoord en wordt het gebruikersaccount peter24 na drie dagen geblokkeerd.

passwd -x 30 -w 5 -i 3 peter24

sudoProgramma's uitvoeren met rechten van andere gebruikers

Het commando sudo (substitute user do) kan vooraf worden gegaan door programma-aanvragen, om deze uit te voeren met de rechten van een andere gebruiker. In de regel moet daarvoor een wachtwoord worden ingevoerd. Het commando sudo vraagt daarbij altijd naar het wachtwoord van de aanvragende gebruiker.

Als het commando zonder gebruikersnaam wordt ingevoerd, wordt de superuser root gebruikt als doelgebruiker.

sudo PROGRAMMA-AANVRAAG

Administrators hebben de mogelijkheid om in het bestand /etc/sudoers te definiëren wie sudo mag gebruiken en welke programma-aanvragen toegestaan zijn. Een gebruiker moet bij de groep sudo horen om het commando sudo te kunnen gebruiken.

Als je een andere doelgebruiker wilt selecteren, gebruik je sudo met de optie -u en de gewenste gebruikersnaam.

sudo -u GEBRUIKERSNAAM PROGRAMMA-AANVRAAG

Een dergelijke verandering van gebruiker is alleen mogelijk als dit conform /etc/sudoers toegestaan is.

Als je langdurig naar de rootshell wilt gaan om commando's uit te voeren met administratorrechten, gebruik je sudo met de optie -i.

sudo –i

Het commando sudo is nuttig omdat het gebruikers de mogelijkheid geeft om vooraf vastgelegde commando's uit te voeren als rootgebruiker, zonder dat het rootwachtwoord hoeft te worden gedeeld.

suMet rechten van andere gebruikers werken

Ook met het commando su is een tijdelijke verandering van gebruiker mogelijk om programma-aanvragen uit te voeren met de rechten van een doelgebruiker. Anders dan bij sudo worden commando's daarom niet direct uitgevoerd. In plaats daarvan wordt er een verandering van identiteit tot stand gebracht. Daarnaast vraagt su niet het wachtwoord van de aanvragende gebruiker, maar dat van de doelgebruiker. Om programma's te kunnen openen als superuser heeft een gebruiker dus het rootwachtwoord van het systeem nodig. Daarnaast kan su in tegenstelling tot sudo niet worden beperkt tot een set programma-aanvragen die door de administrator vooraf zijn gedefinieerd.

De algemene syntax van het commando luidt:

su [OPTIES] [GEBRUIKERSNAAM]

Een commando zonder GEBRUIKERSNAAM selecteert root als doelgebruiker.

usermodGebruikersaccount wijzigen

Met het opdrachtregelcommando usermod kun je reeds aangemaakte gebruikersaccounts bewerken.

Gebruik usermod met rootrechten volgens het volgende schema:

usermod [OPTIES] [GEBRUIKERSNAAM]

Welke modificaties moeten worden uitgevoerd, bepaal je met behulp van opties.

Gebruikersnaam wijzigen (-l NIEUWE_NAAM):

usermod -l peter24 peter23

De gebruiker peter23 heet nu peter24.

Nieuwe homemap aanmaken (-d MAP) en oude bestanden verplaatsen (-m):

usermod -d /pad/naar/map/peter24 -m peter24

Alle bestanden uit de oude homemap worden verplaatst naar de nieuwe homemap.

Gebruiker blokkeren (-L):

usermod -L peter24

Het wachtwoord van de gebruiker peter24 wordt geblokkeerd.

Gebruikers in groep opnemen (-a) en alle andere groepstoewijzingen behouden (-G):

usermod -aG users peter24

Peter wordt toegevoegd aan de groep users.


Systeemcommando's

In de categorie systeemcommando's vind je essentiële Linux-commando's voor het systeembeheer. Gebruik de volgende commando's om het systeem opnieuw op te starten en af te sluiten vanuit de terminal, indien gewenst ook tijdgestuurd.

Opmerking!
De meeste opdrachtregelcommando's voor het systeembeheer moeten
worden uitgevoerd met rootrechten.
CommandoBeschrijving
loggerLoginvoer aanmaken

Met het opdrachtregelprogramma logger kan invoer worden aangemaakt in het systeemlog.

Gebruik logger volgens het volgende schema:

logger "JOUW BERICHT"

Het systeemlog vind je onder /var/log/syslog.

rebootSysteem opnieuw opstarten

reboot is een opdrachtregelcommando dat ervoor zorgt dat het systeem opnieuw wordt opgestart. Om opnieuw op te starten, dient het commando te worden uitgevoerd met rootrechten.

reboot [OPTIES]

rtcwakeSysteem automatisch starten en afsluiten

rtcwake is een opdrachtregelcommando waarmee het systeem tijdgestuurd kan worden gestart en afgesloten.

Het commando wordt gebruikt met de volgende syntax:

rtcwake [OPTIES] [MODUS] [tijd]

Selecteer een bepaalde modus (-m MODUS) waarin het systeem voor een bepaalde tijd in seconden (-s TIJD IN SECONDEN) moet worden gezet. Je kunt het systeem ook op een precies gedefinieerd tijdstip (-t UNIXTIJD) uit de slaapstand halen.

Voorbeeld 1:

rtcwake -m standby -s 300

Het systeem wordt voor 5 minuten (300 seconden) in de standby-modus gezet.

Voorbeeld 2:

rtcwake -m off -t 1490997660

Het systeem wordt afgesloten en komt op Unixtijd 1490997660 uit de slaapstand. Dit komt overeen met de volgende datum: 01-04-2017- 00:01:00. De Unix-tijd is het aantal seconden sinds 1 januari 1970 om 00:00. Omdat vermeldingen en Unix-tijd moeilijk te lezen zijn, is het aan te raden deze met behulp van het commando date (zie onder) om te zetten.

rtcwake -m off -t $(date -d '20190401 00:01' +%s)

shutdownSysteem afsluiten

Het commando shutdown kan door rootgebruikers worden gebruikt om het systeem af te sluiten.

Het commando wordt gebruikt met de volgende syntax:

shutdown [OPTIES] [TIJD] [BERICHT]

Als je het systeem wilt laten afsluiten, kun je een tijdstip definiëren wanneer het systeem moet worden afgesloten. Gebruik hiervoor ofwel een concrete tijdsaanduiding (hh:mm) of een countdown (+m).

Andere gebruikers in het systeem krijgen een shutdown-melding. Deze kan indien gewenst worden aangevuld met een individueel bericht.

In het volgende voorbeeld wordt het systeem over 10 minuten afgesloten:

shutdown +10

Als het commando shutdown wordt gebruikt in combinatie met de optie -r, wordt het systeem na afsluiting opnieuw opgestart.

shutdown -r +10


Systeemgegevens

In de categorie systeemgegevens hebben we opdrachtregelprogramma's samengevat waarmee je gegevens en statusmeldingen opvraagt en een uitgebreid overzicht van de staat van je systeem kunt krijgen.

CommandoBeschrijving
dateSysteemtijd opvragen

Het commando date geeft de systeemtijd inclusief datum weer.

date [OPTIES] [UITVOERFORMAAT]

Als je in het kader van een programma-aanvraag met een bepaalde datum werkt (zie rtcwake), kan deze met behulp van de optie -d 'DATUM' worden gedefinieerd. Daarnaast worden er diverse opties ondersteund waarmee datum- en tijdsaanduidingen in een gewenst formaat kunnen worden gezet.

Gebruik bijvoorbeeld de optie +%s om een datum weer te geven in Unix-tijd (aantal seconden sinds 1970-01-01 00:00:00 UTC).

Voorbeeld:

date -d '20190427 11:29' +%s

Output:

1493285340

1493285340 Unixtijd komt overeen met 27-04-2019 - 11:29:00.

dfVrije ruimte op de harde schijf opvragen

Gebruik het commando df(disk free) volgens het volgende schema om de vrije ruimte op de harde schijf op aangekoppelde partities weer te geven.

df [OPTIES]

Als het commando wordt gebruikt met een bepaald bestand geeft het systeem alleen de vrije opslagruimte van de partitie weer waar het bestand zich bevindt.

df [OPTIES] [BESTAND]

De optie -l (lokal) beperkt df tot lokale bestandssystemen. Daarnaast worden er opties ondersteund waarmee het uitvoerformaat kan worden gewijzigd. Voor een door mensen leesbare uitvoer is de optie -h (human readable) aan te bevelen: bijvoorbeeld 3K 124M 1G.

dmesgMeldingen van de kernel-ringbuffer opvragen

Het programma dmesg (kort voor display message) geeft meldingen van de kernel-ringbuffer weer in de terminal, waardoor je hardware- en driverfouten kunt lokaliseren.

Gebruik demsg volgens het volgende schema:

dmesg [OPTIES]

De dmesg-uitvoer bevat alle meldingen van het boot-proces en is dus zeer lang. Het opdrachtregelprogramma wordt daarom vaak in combinatie met een pager zoals more, less of tail gebruikt.

Voorbeeld:

dmesg | tail

De dmesg-uitvoer wordt met behulp van het pipe-teken (|) overgedragen naar de pager tail. Dit zorgt ervoor dat enkel de laatste 10 meldingen worden weergegeven in de terminal.

In combinatie met het grep-commando kan gericht naar meldingen worden gezocht.

duGebruikte ruimte op de harde schijf opvragen

Als je erachter wilt komen hoeveel ruimte op de harde schijf er wordt gebruikt door mappen in je systeem, gebruik je het commando du (kort voor disk usage) volgens het volgende schema:

du [OPTIES] [MAP]

Eventueel kan er een bepaalde map worden ingevoerd. De gebruikte ruimte op de harde schijf kan met de optie -h worden weergegeven in een voor mensen leesbaar formaat.

freeBelasting van het werkgeheugen opvragen

Het commando free geeft de belasting van het werkgeheugen weer.

De algemene syntax luidt:

free [OPTIES]

Als uitvoer krijg je twee meldingen: Mem (Memory) en Swap.

Bij Mem gaat het om het fysieke werkgeheugen van je systeem. Als dit is uitgeput, slaat Linux delen van de in het RAM opgeslagen gegevens op de harde schijf op. Men spreekt in dit geval van swap-space.

Ook free ondersteunt de optie -h, waarmee de geheugenbelasting kan worden weergegeven in een voor mensen leesbaar formaat.

hostnameHostnaam opvragen

Gebruik het commando hostname volgens het volgende schema om de DNS-naam van het systeem weer te geven.

hostname [OPTIES]

unameKernelgegevens opvragen

Het opdrachtregelcommando uname staat voor unix name en wordt gebruikt om systeemgegevens over de kernel op te vragen.

Het commando ondersteunt diverse opties waarmee de uitvoer kan worden gefilterd op de gewenste gegevens.

uname [OPTIES]´

uptimeSysteemlooptijd opvragen

Als je wilt achterhalen hoe lang je systeem loopt sinds het laatste boot-proces, gebruik je het opdrachtregelcommando uptime volgens het volgende schema:

uptime

vmstatStatistieken van virtueel geheugen opvragen

Met behulp van de monitoring-tool vmstat kunnen gegevens over het virtuele geheugen, schrijf- en leesprocessen op de harde schijf en de CPU-activiteit worden opgevraagd.

Gebruik vmstat volgens het volgende schema om de gemiddelde waarden sinds de laatste systeemstart weer te geven.

vmstat [OPTIES]

Als alternatief biedt vmstat een voortdurende monitoringmodus, waarbij de systeemwaarden in een gewenst tijdsinterval in seconden naar believen kunnen worden opgevraagd.

vmstat [OPTIES] [INTERVAL [HERHALINGEN]]

Voorbeeld:

vmstat 4 8

De aanvraag vindt in acht handelingen iedere 4 seconden plaats. Als je de voortdurende aanvraag wilt annuleren, gebruik je de toetsencombinatie [CTRL] + [C].


Hardwaregegevens

Linux-commando's uit deze categorie bieden je gedetailleerde informatie over de hardwarecomponenten waarop je systeem is gebaseerd.

CommandoBeschrijving
lscpuProcessorgegevens weergeven

Gebruik lscpu (kort voor list cpu) volgens het volgende schema om informatie over CPU-architectuur weer te geven in de terminal.

lscpu [OPTIES]

Mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.

lshwHardwaregegevens weergeven

Het commando lshw staat voor list hardware en geeft gegevens over de hardwarecomponenten weer in de terminal. De gegevens omvatten CPU, opslagmodule en apparaten zoals de geluidskaart, grafische kaart of stations die zijn aangesloten op de PCI-, USB- of IDE-interfaces.

Gebruik lshw volgens het volgende schema:

lshw [OPTIES]

Het commando ondersteunt diverse opties waarmee het uitvoerformaat (-html, -xml, -short, -businfo) en de omvang van de gegevens (bijvoorbeeld -sanitize voor het verbergen van gevoelige informatie) kan worden gewijzigd.

lspciGegevens van PCI-apparaten weergeven

Gebruik lspci (kort voor list pci) volgens het volgende schema om gedetailleerde informatie over PCI-apparaten weer te geven.

lspci [OPTIES]

Mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.

lsusbGegevens van USB-apparaten weergeven

Gebruik lsusb (kort voor list usb) om gedetailleerde informatie over USB-apparaten weer te geven in de terminal.

lsusb [OPTIES]

Mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.


Procesbeheer

In Linux wordt de instantie van een lopend programma als proces beschouwd. De volgende terminalcommando's behoren tot het standaard repertoire van het procesmanagement en stellen je in staat om alle processen in je systeem eenvoudig te monitoren vanuit de terminal en indien nodig aan te sturen.

CommandoBeschrijving
chrtRealtime-attributen opvragen en wijzigen

chrt is een opdrachtregelprogramma voor het gevorderde procesbeheer waarmee realtime-attributen (scheduling-regel en prioriteit) van lopende processen kunnen worden bepaald en gewijzigd of commando's en hun argumenten kunnen worden uitgevoerd met bepaalde realtime-attributen.

De algemene syntax van het commando luidt:

chrt [OPTIES] [PRIORITEIT] PID/COMMANDO [ARGUMENTEN]

Gebruik chrt zonder vermelding van een prioriteit en met de optie -p om realtime-attributen van geselecteerde processen te bepalen:

chrt -p PID

Voorbeeld:

chrt -p 1234

chrt geeft de realtime-attributen van het proces 1234 weer.

Het commando wordt in de regel gebruikt volgens het volgende schema, om een commando en zijn argumenten uit te voeren met een bepaalde realtime-prioriteit.

chrt [OPTIES] PRIORITEIT COMMANDO [ARGUMENTEN]

Voorbeeld:

chrt 99 firefox

Het programma Firefox wordt gestart met een realtime-prioriteit van 99.

Maar als de realtime-prioriteit van lopende processen moet worden gewijzigd, dient de volgende syntax te worden gebruikt:

chrt -p PRIORITEIT PID

Voorbeeld:

chrt -p 20 1234

De realtime-prioriteit van het proces 1234 wordt op 20 gezet.

Daarnaast biedt chrt de mogelijkheid om de scheduling-regel van lopende of nieuw gestarte processen met behulp van opties te wijzigen of te definiëren.

chrt gebruikt als standaard waarde de scheduling-regel SCHED_RR (Round Robin, expliciet met de optie -r). Dat betekent dat alle processen die ‘ready’ zijn, na elkaar voor een bepaald tijdsbestek CPU-rekentijd toegewezen krijgen. Men spreekt dan van de ‘timeslice’. Deze geeft aan hoe lang een proces mag lopen voordat het wordt verdrongen door een ander proces. De grootte van de ‘timeslice’ van een proces hangt af van zijn prioriteit. Linux biedt 140 prioriteitsniveaus voor processen (0 = hoogste prioriteit, 139 = laagste prioriteit). De prioriteitsniveaus 1 tot 99 zijn gereserveerd voor processen met zogenaamde realtime-prioriteit. Gebruikersprocessen worden daarentegen in de regel uitgevoerd met een procesniveau van 100 tot 139. Dit komt overeen met een nice-waarde van -20 tot +19 (zie Nice)

Naast SCHED_RR kent Linux met SCHED_FIFO (optie -f) nog meer scheduling-regels voor realtime-processen. Net als SCHED_RR werkt SCHED_FIFO als first-in/first-out-algoritme. Daarbij wordt echter geen tijdschijf gebruikt. Processen die met SCHED_FIFO worden gestart, lopen totdat ze worden afgesloten of worden verdrongen door een proces met een hogere realtime-prioriteit. Verdrongen processen gaan naar het einde van de wachtrij.

ioniceI/O-scheduling-klassen toewijzen

Het opdrachtregelcommando ionice wordt gebruikt om de prioriteit van een proces te beïnvloeden dat de I/O-interface van de kernel gebruikt.

De algemene syntax van het commando luidt:

ionice [OPTIES] COMMANDO

Om ionice uit te kunnen voeren, zijn rootrechten vereist.

Het commando maakt een onderscheid tussen drie scheduling-klassen, die via de optie -cGETAL worden ingevoerd. Mogelijke waarden zijn 1, 2 en 3.

1 = realtime: De I/O-actie wordt direct uitgevoerd.

2 = best-effort: De I/O-actie wordt zo snel mogelijk uitgevoerd.

3 = idle: De I/O-actie wordt alleen uitgevoerd als er geen ander proces is dat een beroep doet op I/O-tijd.

De PID van een lopend proces wordt ingevoerd met de optie -pPID.

Voorbeeld:

ionice -c2 -p1234

Aan het proces met de PID 1234 wordt de scheduling-klasse 2 (best effort) toegekend.

killProces via PID stoppen en afsluiten

kill is een opdrachtregelprogramma waarmee processen kunnen worden gestopt en afgesloten.

Het commando wordt volgens het volgende schema met een gewenst signaal en het ID van het geselecteerde proces ingevoerd.

kill [OPTIES] [-SIGNAAL] PID

Veel gebruikte signalen zijn:

TERM: zorgt ervoor dat een proces zichzelf afsluit (standaard)

KILL: forceert het afsluiten van een proces (door het systeem)

STOP: stopt een proces

CONT: schakelt een gestopt proces weer in

De volgende aanvraag zendt een signaal naar het proces 1234, waardoor het zichzelf afsluit. Omdat er geen signaal is ingevoerd, zendt kill het standaardsignaal TERM.

kill 1234

Geef processen altijd de mogelijkheid om zichzelf af te sluiten en forceer de actie alleen via KILL als het aangesproken proces niet reageert zoals bedoeld.

kill -KILL 1234

Als je 1234 alleen tijdelijk wilt pauzeren, gebruik je de volgende commando's om het proces te stoppen en weer in te schakelen:

kill -STOP 1234

kill -CONT 1234

Gebruik het commando kill met de optie -l (--list) om alle mogelijke signalen weer te geven die via kill naar processen kunnen worden verzonden.

killallProcessen via naam stoppen en afsluiten

Gebruik killall in combinatie met een bepaalde zoekterm om alleen de processen af te sluiten waarvan de naam exact overeenkomt (de eerste 15 tekens worden vergeleken).

killall [OPTIES] [-SIGNAAL] [PROCESNAAM]

Met de optie -e (--exact) kan de vergelijking worden uitgebreid naar alle tekens van de procesnaam.

niceProcesprioriteiten definiëren

Het opdrachtregelcommando nice wijst een proces bij het starten een nice-waarde tussen -20 en +19 toe in hele getallen, op basis waarvan het beschikbare rekenvermogen van het systeem wordt verdeeld. Het bereik -20 tot +19 komt overeen met de Linux-prioriteitsniveaus 100 tot 139. Een proces met een nice-waarde van -20 heeft dus een hogere prioriteit dan een proces met een nice-waarde van 19.

De bijbehorende syntax luidt:

nice [OPTIE] [COMMANDO]

Zonder verdere invoer start ieder proces met een nice-waarde van 0. Gebruik de optie -n om procesprioriteiten te definiëren. Daarbij dient er rekening mee te worden gehouden dat negatieve prioriteiten alleen kunnen worden toegekend met rootrechten.

In het volgende voorbeeld wordt de editor nano gestart met een prioriteit van 4:

nice -n 4 nano

nohupProces uit sessie verwijderen

Normaal gesproken worden alle afhankelijke processen van een gebruiker automatisch afgesloten zodra deze de terminalsessie sluit (bijvoorbeeld via exit).

Het opdrachtregelcommando nohup (kort voor no hangup) verwijdert een proces uit de huidige sessie en stelt je in staat dit ook verder te laten lopen als je je afmeldt in het systeem. Het bijbehorende HUP-signaal (hangup) dat er normaal gesproken voor zorgt dat een proces automatisch wordt afgesloten, wordt onderdrukt door nohup.

Het programma wordt geopend met het volgende schema:

nohup COMMANDO

pgrepPID bepalen via zoekterm

Het opdrachtregelprogramma pgrep vergelijkt het overzicht van lopende processen met een zoekterm en geeft bij overeenstemming de bijbehorende PIDs weer.

De algemene syntax van het commando luidt:

pgrep [OPTIES] zoekterm

pgrep geeft standaard de PIDs weer van alle processen die de zoekterm bevatten.

Voorbeeld:

pgrep ssh

Alle processen met de zoekterm ssh in de procesnaam worden getoond.

Als de zoekopdracht moet worden beperkt tot exacte overeenkomsten gebruik je het commando met de optie -x.

Voorbeeld:

pgrep -x sshd

Alleen de processen die exact sshd heten, worden getoond.

Als je naast de PID ook de procesnaam wilt opvragen, gebruik je pgrep met de optie -l.

pgrep ondersteunt (net als grep) zoektermen op basis van reguliere expressies.

pidofPIDs bepalen

Het opdrachtregelprogramma pidof geeft de procesidentificatienummers (PIDs) van alle processen van een programma weer.

Achterhaal PIDs via pidof met het volgende schema:

pidof [OPTIES] PROGRAMMA

Via de volgende aanvraag worden de IDs van alle lopende processen van het programma nano weergegeven in de terminal.

pidof nano

Als je alleen het eerste proces-ID wilt weergeven, gebruik je pidof in combinatie met de optie -s (kort voor single shot).

pkillProcessen via zoekterm stoppen en afsluiten

Net als kill zendt ook pkill een signaal naar een geselecteerd proces. Het adresseren wordt echter gedaan aan de hand van het PID. In plaats daarvan wordt er een zoekterm ingevoerd die wordt vergeleken met de namen van lopende processen. Deze kan worden geformuleerd als reguliere expressie.

Ook pkill verzendt het standaardsignaal TERM, tenzij er een andere signaal is gedefinieerd. De algemene syntax van het commando luidt:

pkill [OPTIES] [-SIGNAAL] [ZOEKTERM]

Met opties kan het commando worden beperkt tot de processen van een bepaalde gebruiker (-U UID), tot kindprocessen van een bepaald ouderproces (-P PID) of de nieuwste (-n) respectievelijk oudste processen (-o).

pkill spreekt alle processen aan met de zoekterm in de naam, terwijl het commando killall alleen processen aanspreekt die exact overeenstemmen.

ps Lijst van alle lopende processen opvragen

Het commando ps geeft een overzicht van alle lopende processen weer in de terminal.

ps [OPTIES]

Als je een gedetailleerde uitvoer nodig hebt, gebruik je ps met de opties -f(gedetailleerd) of -F (zeer gedetailleerd).

Verdere opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.

pstreeLopende procedures opvragen als boomstructuur

Gebruik pstree om alle lopende processen weer te geven in een boomstructuur.

De algemene syntax van het commando luidt:

pstree [OPTIES]

Formaat en omvang van de uitvoer kan worden aangepast met diverse opties.

renicePrioriteiten van lopende processen wijzigen

Met het opdrachtregelcommando renice kun je de prioriteit van een lopend proces wijzigen.

De algemene syntax luidt:

renice PRIORITEIT [OPTIES]

De adressering wordt geregeld met behulp van opties via het proces-ID (-p PID), het groeps-ID (-g GID) of een gebruikersnaam (-u GEBRUIKER).

Voorbeelden:

renice 12 -p 1234

Aan het proces met het ID 1234 wordt de prioriteit 12 toegewezen.

renice 3 -g 3456

Aan alle lopende processen van de groep met het GID 3456 wordt een prioriteit van 3 toegewezen.

sudo renice -6 -u peter24

Aan alle lopende processen van de gebruiker peter24 wordt een prioriteit van -6 toegewezen.

Als je renice gebruikt zonder optie wordt de standaardwaarde -p aangenomen en de volgende string geïnterpreteerd als proces-ID.

sleepProcesuitvoering vertragen

Met het opdrachtregelcommando sleep kun je de huidige terminalsessie voor een bepaalde tijd onderbreken.

De algemene syntax van het commando luidt:

sleep GETAL[SUFFIX]

Als je sleep gebruikt zonder suffix wordt het ingevoerde getal geïnterpreteerd als tijdspanne in seconden (s). Je kunt de terminalsessie ook voor minuten (m), uren (h) of dagen (d) onderbreken.

De volgende invoer onderbreekt de sessie voor 4 minuten:

sleep 4m

Het commando is bijvoorbeeld geschikt om de uitvoering van een volgend commando te vertragen:

sleep 1h && reboot

Het systeem wacht een uur en voert vervolgens het commando reboot uit, waarmee het systeem opnieuw wordt opgestart.

tasksetProcessen toewijzen aan bepaalde processoren

taskset is een opdrachtregelcommando voor het uitgebreide procesbeheer, dat bij multi-processystemen wordt gebruikt om processen of commando's aan bepaalde processors toe te wijzen.

Het commando vereist rootrechten en maakt gebruik van een van de volgende schema's:

taskset [OPTIES] VENSTER COMMANDO

taskset [OPTIES] -p PID

De toewijzing van proces/commando aan processor wordt geregeld met behulp van een hexadecimaal bitmask. Bijvoorbeeld:

0x00000001 = processor #0

0x00000003 = processor #0 en #1

0xFFFFFFFF = alle processoren (#0 tot #31)

Omdat een dergelijke toewijzing via een bitmask niet heel intuïtief is, wordt taskset in de regel met de optie -c (--cpu-list) gebruikt, die een numerieke toewijzing van de processors mogelijk maakt (bijvoorbeeld 0, 5 7, 9-11).

Het volgende commando instrueert het proces 1234 de processors 1 en 2 te gebruiken:

taskset -p 1234 -c 1,2

topDynamisch procesoverzicht

Met het commando top vraag je een dynamisch overzicht van alle lopende processen op.

Dit doe je volgens het volgende schema:

top [OPTIES]

De uitvoer van procesgegevens kan met behulp van diverse opties worden gewijzigd. Bovendien ondersteunt het top-procesoverzicht (onder meer) de volgende hotkeys om de uitvoer te sorteren:

[P] = Sorteert de uitvoer op CPU-belasting

[M] = Sorteert de uitvoer op geheugenverbruik

[N] = Sorteert de uitvoer numeriek op PID

[A] = Sorteert de uitvoer op leeftijd

[T] = Sorteert de uitvoer op tijd

[U GEBRUIKERSNAAM of UID] = filtert de uitvoer op de betreffende gebruiker

Gebruik de hotkey [H] om een helppagina weer te geven en [Q] om het procesoverzicht te verlaten.


Pager

Wil je ook bij bestandsinhouden van meerdere pagina's het overzicht behouden? Met een opdrachtregelprogramma uit de categorie pager selecteer je gericht welke secties je wilt weergeven in de terminal en blader je indien gewenst in de interactieve modus door het bestand.

CommandoBeschrijving
headDe eerste regels van een bestand weergeven

De pager head wordt gebruikt om het eerste deel van een bestand weer te geven.

De algemene syntax van het commando luidt:

head [OPTIES] bestand

Gebruik de optie -n AANTAL_REGELS om te bepalen hoeveel regels beginnend met de eerste er moeten worden weergegeven.

Voorbeeld:

head -n 3 voorbeeld.txt

De eerste drie regels van het bestand voorbeeld.txt worden weergegeven. Zonder vermelding van het aantal regels geeft head de eerste 10 regels van het betreffende bestand weer.

lessTekstbestanden weergeven in de terminal

Met het opdrachtregelprogramma less kan de inhoud van een tekstbestand worden weergegeven in de terminal.

De algemene syntax luidt:

less [OPTIES] BESTAND

De gegevens worden automatisch weergegeven in de interactieve modus. Daarin kun je bladeren door het geselecteerde document of het doorzoeken op trefwoorden.

Met de toets [Q] wordt de interactieve leesmodus afgesloten. Overige besturingstoetsen en mogelijke opties vind je in de gebruiksaanwijzingspagina bij het programma.

moreTekstbestanden weergeven in de terminal

De pager more vervult dezelfde functie als less, maar biedt minder functies.

Gebruik more volgens het volgende schema om een tekstbestand op te vragen en de inhoud ervan weer te geven in de terminal:

more [OPTIES] BESTAND

Het opdrachtregelprogramma toont altijd een complete beeldschermpagina van het geselecteerde bestand. Als een bestand meerdere pagina's omvat, start ook more een interactieve modus, waarin je met behulp van besturingstoetsen door het document kunt bladeren of het kunt doorzoeken op zoektermen.

Met de toets [Q] wordt de interactieve modus afgesloten. Verdere besturingstoetsen en mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.

tailDe laatste regels van een bestand weergeven

Terwijl head standaard de eerste 10 regels van een geselecteerd bestand weergeeft, toont tail de laatste 10 regels.

Beide pagers worden volgens hetzelfde schema gebruikt (zie head).


Editors

In Linux heb je geen grafisch tekstverwerkingsprogramma nodig om configuratiebestanden te wijzigen, codefragmenten te bewerken of korte notities op te stellen. Teksteditors kunnen makkelijk en zonder vertraging worden geopend in de terminal. Hieronder stellen we drie programma's voor die je moet kennen.

CommandoBeschrijving
emacsDe teksteditor Emacs

Emacs is een platformonafhankelijke teksteditor, die naar wens kan worden uitgebreid met een programmeerinterface.

Emacs start standaard met een grafische gebruikersinterface, maar kan met de optie --no-window-system ook in de terminal worden geopend.

emacs --no-window-system

Emacs beschikt over een geïntegreerde tutorial, die kan worden geopend met de toetsencombinatie [CTRL] + [H], [T].

nanoDe teksteditor Nano

Nano is een GNU-emulatie van de terminalgebaseerde teksteditor Pico, die wordt gebruikt met de e-mailclient Pine. Nano biedt weliswaar een kleiner aantal functies dan vergelijkbare editors (bijvoorbeeld Vim), maar onderscheidt zich door een bijzonder gebruiksvriendelijke bediening.

De algemene syntax van het commando luidt:

nano [OPTIES] BESTAND

Het programma opent het ingevoerde bestand in een editvenster in de terminal.

Als je Nano opent zonder bestandsnaam kan er een nieuw tekstbestand worden aangemaakt, dat wordt opgeslagen in de momenteel geselecteerde map.

nano [OPTIES]

De toetsencombinaties voor de bediening van het programma staan in de onderste rand van het editvenster. Verdere informatie over Nano vind je in de gebruiksaanwijzingspagina bij het programma.

vimDe teksteditor Vim

Vim (kort voor Vi Improved) is een verder ontwikkelde versie van de teksteditor Vi, die zich onderscheidt door meerdere uitbreidingen zoals syntax-highlighting, een uitgebreid helpsysteem, native scripting, automatisch code-aanvulling en een visuele tekstselectie.

Het open-source-programma biedt verschillende bedrijfsmodi voor de bewerking van pure tekstbestanden en kan naar keuze worden gebruikt in de terminal of als standalone-toepassing met grafische gebruikersinterface (Gvim). Een belangrijk toepassingsgebied van het programma is de bewerking van programmacode.

Als je Vim start in de console vindt bediening plaats met het toetsenbord. Het programma wordt normaal gesproken samen met een tekstbestand geopend volgens het volgende schema:

vim [OPTIES] BESTAND

Geopende bestanden laadt Vim in een buffer. Hier worden ook alle wijzigingen opgeslagen die je aanbrengt in het geopende bestand. Als je Vim opent zonder een bestand te vermelden, start het programma met een lege buffer. Het originele bestand wordt pas gewijzigd als het is opgeslagen met de overeenkomstige toetsencombinatie. Als er geen bestand bestaat dat overeenkomt met de naam die is ingevoerd bij het openen van het programma, wordt het nieuw aangemaakt wanneer het wordt opgeslagen.

Een uitgebreide inleiding voor Vim biedt het programma vimtutor, dat je ook met de opdrachtregel kunt starten.


Netwerkbeheer

In Linux kun je het netwerk ook makkelijk beheren vanuit de terminal. Of je nu de verbinding wilt controleren, DNS-informatie wilt opvragen, interfaces wilt configureren of bestanden naar een andere computer in het netwerk wilt overbrengen, met de volgende programma's is één enkele opdracht voldoende om je project in praktijk te brengen.

CommandoBeschrijving
arpARP-cache weergeven en manipuleren

Met het opdrachtregelprogramma arp kun je de ARP-cache van je besturingssysteem openen en manipuleren.

Gebruik arp zonder modificator om de inhoud van de ARP-tabel weer te geven in de terminal.

arp

Je kunt de uitvoer met de optie -a ook beperken tot invoer bij een bepaalde hostnaam (als alternatief voor een IP-adres).

arp -a HOSTNAAM

Voorbeeld:

arp -a example.com

Als je ARP-invoer wilt aanmaken, gebruik je een commando met de optie -s volgens het volgende schema:

arp -s HOSTNAAM MAC_ADRES

Voorbeeld:

arp -s example.com 00:05:23:73:e6:cf

Als de bestaande invoer moet worden verwijderd, gebruikt je arp met de optie -d:

arp -d HOSTNAAM

digDNS-gegevens opvragen

dig is een lookup-Tool waarmee gegevens kunnen worden opgevraagd van DNS-servers en kunnen worden weergegeven in de terminal.

Het opdrachtregelprogramma wordt in de regel gebruikt volgens het volgende schema om het IP-adres en andere DNS-gegevens bij een bepaalde domeinnaam op te vragen:

dig [@SERVER] [DOMEIN] [TYPE]

SERVER is de DNS-server die moet worden doorzocht op de gewenste gegevens. Als er geen server wordt vermeld, bepaalt dig de standaard DNS-server uit het bestand /etc/resolv.conf.

DOMEIN staat voor de domeinnaam waarbij DNS-gegevens moeten worden achterhaald.

Als TYPE kan het aanvraagtype worden vastgelegd, bijvoorbeeld ANY (alle invoer), A (IPv4-record van een host) of AAAA (IPv6-record van een host). Als standaard aanvraagtype is A gedefinieerd.

Gebruik dig met de optie -x om in het kader van een reverse-lookup de domeinnaam bij een bepaald IP-adres op te vragen.

dig [@SERVER] [-x IP-ADRES]

De argumenten NAAM, TYPE en KLASSE zijn in dit geval niet nodig.

ftpBestanden verzenden via FTP

Met het opdrachtregelprogramma ftp beschikken de meeste Linux-distributies over een standaard geïnstalleerd clientprogramma voor de datatransfer via FTP (File Transfer Protocol). Hiermee kun je bestanden uitwisselen tussen het lokale systeem en een andere computer in het netwerk.

Gebruik ftp volgens het volgende schema om een verbinding met de FTP-server van de doelcomputer tot stand te brengen.

ftp [OPTIES] [HOST[PORT]]

De adressering is op basis van hostnaam of IP-adres. Optioneel kan er een portnummer worden vermeld.

Bij het tot stand brengen van de verbinding wordt er in de regel gevraagd naar je gebruikersnaam en het bijbehorende wachtwoord.

Als het inloggen is gelukt, start ftp een opdrachtregelinterpreter, die gebruikersinvoer aanneemt in de vorm van commando's. Het programma ondersteunt diverse commando's waarmee je het bestandssysteem van de doelcomputer kunt doorzoeken en beheren, alsook bestanden van het ene systeem naar het andere kunt verzenden.

ipNetwerkinterfaces opvragen en configureren

Het opdrachtregelprogramma ip maakt deel uit van de programmacollectie iproute2, waarmee netwerkinterfaces via de terminal kunnen worden opgevraagd en geconfigureerd.

De algemene syntax van het commando luidt:

ip [OPTIES] OBJECT [COMMANDO [ARGUMENTEN]]

Welke actie via ip wordt uitgevoerd, bepaal je met behulp van objecten, subcommando's en hun argumenten.

Het programma ondersteunt diverse objecten zoals address (IP-adres), link (netwerkinterface), route (invoer in de routing-tabel) of tunnel, waarop subcommando's als add, change, del, list of show kunnen worden toegepast.

Als je bijvoorbeeld het IP-adres van een bepaalde netwerkinterface (bijvoorbeeld eth0) opvraagt, gebruik je het commando ip in combinatie met het object address, het commando show en het argument dev eth0:

ip address show dev eth0

Objecten en commando's kunnen ook in afgekorte vorm worden overgedragen:

ip a s dev eth0

Als je alle gegevens bij een netwerkinterface (bijvoorbeeld eth0) wilt weergeven, gebruik je het opdrachtregelcommando ip met het object link, het commando show en het argument dev eth0:

ip link show dev eth0

of

ip l s dev eth0

Om een interface als eth0 te activeren of te deactiveren, ga je als volgt te werk:

ip link set eth0 up

ip link set eth0 down

Met haar brede spectrum aan functies vervangt de programmacollectie iproute2 meerdere oudere netwerktools zoals ifconfig, route en netstat.

Een overzicht van alle mogelijk opties, objecten, subcommando's en argumenten voor het opdrachtregelcommando ip en informatie over andere iproute2-programma's vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.

iwWLAN-interfaces opvragen en configureren

Met het opdrachtregelprogramma iw kunnen WLAN-interfaces worden geconfigureerd, waarmee het zich heeft bewezen als actueel alternatief voor iwconfig.

Het commando is gebaseerd op een soortgelijke syntax als het ip-commando:

iw [OPTIES] OBJECT [COMMANDO]

Mogelijke objecten zijn:

dev NAAM_VAN_INTERFACE = netwerkinterface

phy NAAM_VAN_APPARAAT = WLAN-apparaat (via naam)

phy#INDEX_VAN_APPARAAT = WLAN-apparaat (via index)

reg = Regulatory Agent bij configuratie van regio- en landinstellingen

Gebruik iw met het commando help om de programmasyntax en mogelijke opties en commando's weer te geven.

iw help

Hier volgen enkele toepassingsvoorbeelden van het opdrachtregelprogramma iw:

Apparaateigenschappen van alle WLAN-interfaces weergeven:

iw list

Verbindingsstatus (datasnelheid en signaalsterkte) van een WLAN-interface (bijvoorbeeld wlan0) opvragen:

iw dev wlan0 link

WLAN-omgeving scannen:

iw dev wlan0 scan

Gebruik iw in combinatie met het commando scan om alle WLAN-netwerken in het ontvangstbereik en hun eigenschappen (radiokanaal, versleuteling, signaalsterkte enz.) weer te geven.

Regionale instellingen uitlezen:

iw reg get

Regionale instellingen wijzigen:

iw reg set NL

Apparaateigenschappen (bijvoorbeeld van wlan0) opvragen:

iw list dev wlan0

Gedetailleerde apparaateigenschappen:

iw dev wlan0 station dump

Gebeurtenissen opvragen:

iw event

De opties -f, -t en -r leveren een uitgebreide weergave met foutmeldingen over verbindingsstatus en tijdsaanduidingen.

netstatStatus van netwerkinterfaces opvragen

Met het opdrachtregelprogramma netstat kan de status worden opgevraagd van netwerkinterfaces.

De algemene syntax van het commando luidt:

netstat [OPTIES]

Gebruik netstat zonder optie om alle open sockets in de terminal weer te geven.

Je kunt ook de volgende opties gebruiken om routingtabellen (-r), interfacestatistieken (-i), gemaskeerde verbindingen (-M) of netlink-berichten (-N) te bekijken.

Een alternatief voor netstat is het programma ss uit de programmacollectie iproute2.

nslookupDNS-gegevens opvragen

Net als dig is ook nslookup gericht op het vinden van namen. Je kunt het opdrachtregelprogramma gebruiken in twee modi: interactief en niet-interactief.

De interactieve modus start je door het commando nslookup zonder aanvulling in te voeren in de terminal.

nslookup

Het programma neemt alleen commando's aan. Voer bijvoorbeeld een hostnaam (domein) in om het overeenkomstige IP-adres weer te geven.

Je kunt ook een reverse-lookup-aanvraag starten door een IP-adres in te voeren en de bijbehorende hostnaam weer te laten geven.

Het programma nslookup gebruikt automatisch de DNS-server die standaard in het systeem is ingesteld.

Voer het commando exit in om nslookup af te sluiten.

Als je nslookup wilt gebruiken in de niet-interactieve modus open je het programma in combinatie met een hostnaam of een IP-adres.

nslookup [OPTIES] [HOST/IP]

Omdat het programma officieel verouderd is, wordt gebruikers geadviseerd dig te gebruiken.

pingNetwerkverbinding controleren

Gebruik het opdrachtregelprogramma ping om de bereikbaarheid van een andere computer in het netwerk te controleren.

Het commando wordt gebruikt met de volgende syntax:

ping [OPTIES] DOEL

Om de netwerkverbinding te controleren, verzendt ping een klein datapakket naar het ingevoerde doelsysteem (hostnaam of IP) en meet het de tijd totdat er een antwoord wordt ontvangen.

Samen met de pakketomlooptijd (Round trip time, RTT) – de tijdspanne tussen verzending van het datapakket en ontvangst van het antwoord – schrijft ping ook het IP-adres van het doelsysteem in de terminal. Het opdrachtregelprogramma is daardoor ook geschikt om het IP-adres van een domein te achterhalen.

Als ping zonder optie wordt uitgevoerd, loopt het programma tot het handmatig wordt gestopt met de toetsencombinatie [CTRL] + [C] en stuurt het een ping-aanvraag per seconde naar het doelsysteem.

Als je al bij het openen van het programma een eindtijdstip wilt definiëren, gebruik je de opties -c AANTAL (aantal ping-aanvragen die moeten worden verzonden) of -w SECONDEN (tijdspanne in seconden waarna ping zichzelf afsluit).

routeIP-routing-tabellen weergeven en bewerken

Met het opdrachtregelprogramma route kunnen IP-routing-tabellen van de kernel worden opgevraagd en bewerkt.

Het commando wordt gebruikt met de volgende syntax:

route [OPTIES]

route [OPTIES] [add|del] [-net|-host] DOEL Gebruik het commando zonder optie om de complete routing-tabel van de kernel weer te geven:

route

Als je een route naar een netwerk wilt instellen, gebruik je het subcommando add.

route add -net 10.0.0.0

Als het doel een subnet is, moet het subnetmasker via de optie netmask MASKER ook worden aangegeven:

route add -net 10.0.0.0 netmask 256.245.155.0

Er kan ook een route naar een computer worden ingericht:

route add -host 218.89.72.191

Als het systeem over meerdere netwerkinterfaces beschikt, moet er via de optie dev INTERFACE worden aangegeven welke interface er moet worden gebruikt:

route add -net 10.0.0.0 netmask 256.245.155.0 dev eth0

Als het doel slechts via een router bereikbaar is, moet ook deze worden aangegeven met de optie gw ROUTER.

route add -net 10.0.0.0 netmask 256.245.155.0 gw 10.0.1.261

Als je een route wilt verwijderen, gebruik je het subcommando del.

route del -host 218.89.72.191

rsyncBestanden synchroniseren

Met het opdrachtregelprogramma rsync kunnen bestanden lokaal of via een netwerk worden gesynchroniseerd. Daarvoor worden eerst de grootte en de wijzigingstijd van de betreffende bestanden vergeleken.

Als bron en doel zich op hetzelfde systeem bevinden, worden afwijkende bestanden compleet gekopieerd. Bij de synchronisatie via een netwerk gebruikt rsync een delta-transfer-algoritme, zodat alleen gewijzigde bestandsdelen hoeven te worden gekopieerd van de brongegevensdrager naar het doelsysteem.

De syntax van het commando luidt:

rsync [OPTIES] BRON(NEN) DOEL

Voorbeeld:

rsync -a home/user/documenten/ /home/user/back-up

Alle bestanden uit home/user/documenten/ worden vergeleken met de bestanden in de map /home/user/back-up.

Het commando rsync wordt in de regel uitgevoerd met de optie -a, die ervoor zorgt dat alle submappen en symbolische links mee worden gekopieerd en alle gebruikersrechten worden overgenomen.

sftpBestanden verzenden via SFTP

Het opdrachtregelprogramma sftp is net als ftp bedoeld voor de datatransfer in het netwerk. Daarbij worden alle handelingen verricht via een versleutelde SSH-verbinding (secure shell).

Net als ftp brengt sftp een verbinding met een doelcomputer in het netwerk tot stand om vervolgens een interactieve commandomodus te starten.

scpBestanden verzenden via SCP

Met scp (kort voor secure copy) kun je direct in de terminal nog een programma gebruiken voor veilige gegevensoverdracht in het netwerk: scp kopieert gegevens van de ene computer naar de andere en maakt daarbij ook gebruikt van het netwerkprotocol SSH.

Het clientprogramma functioneert ongeveer zoals de bestandsoptie cp, maar wordt volgens de volgende syntax systeemoverkoepelend gebruikt:

scp [OPTIES] BESTAND [[user@]remote_host:]PAD

Bij de vermelding van het pad van de verwijderde computer worden de gebruikersnaam en de betreffende naam van de host vooropgezet. Lokale bestanden kunnen expliciet worden geadresseerd door middel van relatieve of absolute paden.

Voorbeeld:

scp /home/max/images/image.jpg max@example.com:/home/max/archief

Het bestand image.jpg wordt uit de lokale map images gekopieerd naar de map archief op een doelcomputer met het adres example.com.

Het programma scp ondersteunt bovendien de datatransfer in omgekeerde richting en tussen twee remote-systemen.

scp [OPTIES] [[user@]host:]BESTAND PAD

scp [OPTIES] [[user@]host1:]BESTAND [[user@]host2:]PAD

Verdere opties bieden je de mogelijkheid om wijzigingen aan te brengen in de overdrachtsmodus en in de versleutelingsinstellingen.

tracerouteDatapakketten traceren

Gebruik het opdrachtregelcommando traceroute volgens het volgende schema om de transportroute van een IP-datapakket tussen jouw systeem en een doelcomputer te traceren.

traceroute [OPTIES] HOSTNAAM

Via traceroute kan worden achterhaald welke routers en internetknooppunten een IP-pakket onderweg naar de doelcomputer passeert, bijvoorbeeld om de oorzaak voor een vertraging vast te stellen.

ttyTerminalnaam weergeven

Het opdrachtregelcommando tty geeft de bestandsnaam weer van de terminal die als standaard input is gedefinieerd.

De algemene syntax van het commando luidt:

tty [OPTIES]


Archiveren en comprimeren

Linux biedt diverse technologieën waarmee bestanden in archieven kunnen worden verpakt en gecomprimeerd. Daarbij dient te worden opgemerkt dat niet iedere archivering een compressie is. Zo wordt tar, een programma voor het archiveren van bestanden, in de regel gecombineerd met compressieprogramma's zoals gzip, bzip2 of xz.

CommandoBeschrijving
tarBestanden schrijven en extraheren in tar-archieven

Het commando tar staat voor tape archiver, een programma dat oorspronkelijk werd ontwikkeld om bestanden op tapedrives op te slaan. tar is in Linux nog steeds een van de populairste programma's voor het archiveren van bestanden.

Met het programma kunnen verschillende bestanden en mappen sequentieel naar een tar-bestand worden geschreven en van daaruit indien gewenst ook weer worden hersteld. Anders dan bij het in Windows gebruikelijke zip-formaat blijven daarbij alle gebruikersrechten van de gearchiveerde bestanden ook na het uitpakken behouden.

Het opdrachtregelprogramma tar wordt geopend met de volgende syntax:

tar [OPTIES] BESTANDEN

Als je een nieuw archief wilt aanmaken, gebruik je tar met de opties -c (nieuw archief aanmaken) en -f (archief naar aangegeven bestand schrijven of daaruit uitlezen).

In het volgende voorbeeld worden de bestanden bestand1.txt en bestand2.txt naar het nieuw aangemaakte archief voorbeeld.tar geschreven.

tar -cf voorbeeld.tar bestand1.txt bestand2.txt

Als je de inhoud van een archief wilt bekijken, gebruik je tar met de opties -t (inhoud van een archief weergeven), -v (gedetailleerde weergave) en -f (zie boven).

tar -tvf voorbeeld.tar

Als gearchiveerde bestanden moeten worden uitgepakt in de huidige map, wordt tar gebruikt met de opties -x (bestanden extraheren uit archief) en -f (zie boven).

tar -xf voorbeeld.tar

Met -j (bzip2), -J (xz), -z (gzip) en -Z (compress) biedt tar daarnaast opties waarmee archieven met het openen van een ander programma tijdens de in- en uitpakprocessen te comprimeren of decomprimeren.

In het volgende voorbeeld worden de bestanden bestand1.txt en bestand2.txt gearchiveerd in voorbeeld.tar.gz en gecomprimeerd met gzip.

tar -czf voorbeeld.tar.gz bestand_1.txt bestand_2.txt

Het volgende commando extraheert en decomprimeert alle in voorbeeld.tar.gz gearchiveerde bestanden.

tar -xzf voorbeeld.tar.gz

gzip / gunzipBestanden comprimeren of decomprimeren met gzip

gzip (kort voor GNU zip) is een programma waarmee bestanden eenvoudig kunnen worden gecomprimeerd en gedecomprimeerd via de opdrachtregel.

De algemene syntax van het commando luidt:

gzip [OPTIES] BESTAND(EN)

Gebruik gzip bijvoorbeeld volgens het volgende schema om het bestand voorbeeld.txt over te dragen naar het gecomprimeerde formaat voorbeeld.txt.gz:

gzip voorbeeld.txt

Houd er rekening mee dat gzip het originele bestand standaard verwijdert tijdens het inpakken. Dit kan worden voorkomen met de optie -k.

gzip -k voorbeeld.txt

Het programma kan indien gewenst op meerdere bestanden tegelijk worden toegepast. Daarbij wordt ieder bronbestand overgedragen naar een zelfstandig gz-bestand.

Het commando

gzip voorbeeld_1.txt voorbeeld_2.txt voorbeeld_3.txt

genereert de bestanden voorbeeld_1.txt.gz, voorbeeld_2.txt.gz en voorbeeld_3.txt.gz.

Als je meerdere bestanden naar een gezamenlijk gecomprimeerd archief wilt schrijven, gebruik je gzip in combinatie met het archiveringsprogramma tar.

Als je een gz-bestand wilt decomprimeren, gebruik je het commando gzip met de optie -d. Het commando gunzip kan als alternatief worden gebruikt.

gzip -d voorbeeld.txt.gz

gunzip voorbeeld.txt.gz

Ook uitgepakte gz-bestanden worden standaard verwijderd. Als je naast het geëxtraheerde bestand ook het gz-bestand wilt behouden, gebruik je ook hier de optie -k.

De gzip-compressie is gebaseerd op het deflate-algoritme (een combinatie van LZ77 en Huffman-codering). In vergelijking met andere compressiemethoden onderscheidt gzip zich door zijn snelheid. De compressiegraad is echter net zo laag.

bzip2 / bunzip2Bestanden comprimeren en decomprimeren met bzip

Een populair alternatief voor gzip is het opdrachtregelprogramma bzip2. Dit gebruikt dezelfde syntax als gzip maar is gebaseerd op een drietraps compressieproces, waarmee een beduidend hogere compressiegraad mogelijk is.

Eerst worden de verzonden bestanden per blok onderworpen aan de omkeerbare Burrows-Wheelertransformatie en vervolgens aan de Move-to-front-transformatie. De eigenlijke datacompressie vindt vervolgens plaats met behulp van een Huffman-codering.

Bestanden die zijn gecomprimeerd met bzip2 hebben de bestandsextensie .bz2. Gebruik bzip met het volgende schema om bestanden te comprimeren.

bzip2 [OPTIES] BESTAND(EN)

Ook bzip2 kan worden gebruikt voor tar-archieven.

De decompressie vindt analoog plaats met gzip met de optie -d. Als alternatief kan het commando bunzip2 worden gebruikt.

De hoge compressiegraad gaat voor gebruikers gepaard met een relatief lange looptijd.

xzBestanden comprimeren en decomprimeren met xz

Het opdrachtregelprogramma xz verzendt bestanden naar het gelijknamige datacompressieformaat xz. Het programma wordt geopend volgens hetzelfde schema als bij gzip en bzip2.

xz [OPTIES] BESTAND(EN)

Bestanden die zijn gecomprimeerd met xz hebben de bestandsextensie .xz. Decompressie vindt net als bij gzip en bzip plaats met de optie -d. Als alternatief kan het commando unxz worden gebruikt.

Net als gz- en bz2-bestanden zijn xz-bestanden geen archiefbestanden. Als je meerdere bestanden in hetzelfde gecomprimeerde xz-bestand wilt schrijven, moet je ook bij dit compressieprogramma gebruikmaken van de archiveringstool tar.

xz ondersteunt diverse compressiealgoritmes. Standaard wordt het Lempel-Ziv-Markow-algoritme gebruikt (LZMA/LZMA2)

cpioBestanden schrijven en extraheren in archiefbestand

cpio (kort voor copy in, copy out) is een archiveringsprogramma waarmee gegevens naar een archiefbestand (.cpio) kunnen worden geschreven en van daaruit kunnen worden geëxtraheerd.


Partitiebeheer

Als je in Linux toegang wilt krijgen tot een bestandsysteem op een andere partitie moet het eerst worden geïntegreerd in de mappenstructuur van je besturingssysteem. Men spreekt dan van mounten (of aankoppelen) van een partitie. Dit kan indien nodig worden geregeld in de grafische gebruikersinterface. Opdrachtregelprogramma's als lsblk, blkid en mount bieden de mogelijkheid om gegevens over aangesloten blok opslagapparaten op te vragen en deze indien nodig aan of af te koppelen.

CommandoBeschrijving
mount / unmountBestandssystemen integreren

Als een bestandssysteem via de terminal moet worden geïntegreerd in de mappenstructuur van het besturingssysteem wordt in Linux het opdrachtregelprogramma mount gebruikt.

De algemene syntax van het commando luidt:

mount [OPTIES] APPARAAT MOUNTPOINT

APPARAAT = Het pad naar het apparaatbestand van het opslagapparaat dat je als partitie wilt aankoppelen.

MOUNTPOINT = De plaats in de mappenstructuur van je besturingssysteem waar je de partitie wilt integreren. De mountpoint wordt meestal als absoluut pad ingevoerd.

Voorbeeld:

mount /dev/sdd /media/usb

Het apparaat sdd wordt in de map /media/usb aangekoppeld.

In de regel herkent Linux het betreffende bestandssysteem van het apparaat automatisch. Als dit niet het geval is, biedt de optie -t de mogelijkheid om het bestandssysteem (bijvoorbeeld ext4) expliciet te vermelden:

mount -t ext4 /dev/sdd /media/usb

Als er een reeds geïntegreerd bestandssysteem moet worden afgekoppeld, wordt het commando unmount gebruikt:

unmount [OPTIES] APPARAAT

of

unmount [OPTIES] MOUNTPOINT

Als je alle bestandssystemen wilt laten weergeven die in je besturingssysteem zijn geïntegreerd, gebruik je het commando mount met de optie -l.

mount –l

De weergave kan via -t worden beperkt tot bestandssystemen van een bepaald type.

lsblkInformatie over aangesloten blok opslagapparaten weergeven

Gebruik het commando lsblk (kort voor list block devices) om alle aangesloten blok opslagapparaten en partities weer te geven als boomstructuur. Deze hoeven niet per se geïntegreerd te zijn.

Het commando wordt gebruikt met de volgende syntax:

lsblk [OPTIES]

De uitvoer omvat de volgende gegevens:

NAME = apparaatnaam (bijvoorbeeld sda) respectievelijk partitienaam (bijvoorbeeld sda1, sda2 enz.)

MAJ:MIN = major:minor apparaatnummer

RM = wisselmedium (1 = van toepassing, 0 = niet van toepassing)

SIZE = geheugenomvang van apparaat

RO = read-only-apparaat (1 = van toepassing, 0 = niet van toepassing)

TYPE = apparaattype

MOUNTPOINT = aankoppelpunt

Indien gewenst kan de uitvoer met behulp van de optie -o (--output) en een overzicht van de gewenste attributen individueel worden aangepast, om extra gegevens op te vragen zoals identificatienummer (UUID), bestandssysteem (FSTYPE) of staat (STATE).

Voorbeeld:

lsblk -o NAME,FSTYPE,UUID, SIZE,OWNER,GROUP,MODE,TYPE,MOUNTPOINT

In de standaardinstelling worden lege opslagapparaten overgeslagen. Als je deze ook wilt opnemen in het overzicht gebruik je lsblk in combinatie met de optie -a (--all).

Als je alleen gegevens over een bepaald apparaat wilt opvragen, gebruik je lsblk volgens het volgende schema:

lsblk [OPTIES] APPARAAT

Voorbeeld:

lsblk /dev/sda

blkidInformatie over aangesloten blok opslagapparaten weergeven

Net als lsblk geeft ook blkid gegevens weer over aangesloten blok opslagapparaten.

Gebruik blkid volgens het volgende schema om het identificatienummer (UUID) en bestandssysteemtype (TYPE) van alle aangesloten blok opslagapparaten op te vragen.

blkid [OPTIES]

Een weergave in tabelvorm krijg je met behulp van de optie -o in combinatie met de waarde list.

blkid -o list

Ook blkid kan worden beperkt tot een geselecteerd apparaat:

blkid [OPTIES] APPARAAT

Voorbeeld:

blkid /dev/sda1

ddBit-nauwkeurig kopiëren van bestanden, partities of gegevensdragers

Met het opdrachtregelprogramma dd kan een kopie worden gemaakt, waarbij gegevens bit voor bit uit een inputfile (if) worden uitgelezen en naar een outputfile (of) worden geschreven.

Het programma wordt geopend met de volgende syntax:

dd if=bron of=doel [OPTIES]

Als bron en doel kunnen daarbij zowel afzonderlijke bestanden als complete partities (bijvoorbeeld /dev/sda1) of een compleet opslagapparaat (bijvoorbeeld /dev/sda) worden aangegeven.

Voorbeeld:

dd if=/dev/sda5 of=/dev/sdb1

De complete vijfde partitie van /dev/sda wordt tot op de bit nauwkeurig gekopieerd naar de eerste partitie /des/sdb.

Met opties kan het kopieerproces worden beperkt tot een willekeurig aantal opslagblokken van de gewenste grootte.


Diversen

Hieronder vind je een overzicht van verdere standaardcommando's in Linux die niet kunnen worden ingedeeld in een van de hierboven genoemde categorieën.

CommandoBeschrijving
aliasAfkortingen voor programma-aanvragen definiëren

Met het opdrachtregelprogramma alias kun je afkortingen definiëren voor programma-aanvragen.

Gebruik alias volgens het volgende schema:

alias AFKORTING= 'COMMANDO'

Vervang de plaatshouder COMMANDO door een willekeurig opdrachtregelcommando inclusief opties. Dit wordt verbonden met de voor de plaatshouder AFKORTING geplaatste tekenreeks.

Voorbeeld

alias ll='ls -l'

De tekenreeks ll wordt met de optie -l (gedetailleerde weergave) gedefinieerd als alias voor het commando ls.

atCommando tijdgestuurd uitvoeren

Open het opdrachtregelprogramma at volgens het volgende schema om een commando tijdgestuurd uit te voeren.

at TIJDSAANDUIDING

Voorbeeld:

at 10:00 AM 6/22/2019

Voer vervolgens het commando in en sluit de interactieve modus met [CTRL] + [D].

calKalender weergeven

Gebruik cal volgens het volgende schema om een kalender weer te geven in de terminal.

cal [OPTIES] [[MAAND] jaar]

Voorbeeld:

cal 12 2019

Het systeem geeft een maandoverzicht weer voor december 2019.

echoString weergeven in de standaardweergave

Gebruik het opdrachtregelcommando echo om een tekenreeks in regels weer te geven in de standaarduitvoer (in de regel de terminal).

De algemene syntax van het commando luidt:

echo [OPTIES] STRING

prTekstbestanden voorbereiden voor afdrukken

Gebruik het opdrachtregelprogramma pr om tekstbestanden voor te bereiden voor afdrukken.

De algemene syntax van het commando luidt:

pr [OPTIES] bestand

In de standaardinstelling maakt pr een paginaheader aan die de bestandsnaam, de huidige datum en het paginanummer bevat.

scriptTerminalsessies meeschrijven

Met het opdrachtregelprogramma script kun je een terminalsessie meeschrijven in het bestand typescript. Als typescript reeds een eerdere sessie bevat, wordt deze overschreven.

De registratie start automatisch als het programma wordt geopend:

script

Gebruik de toetsencombinatie [CTRL] + [D] om de registratie af te sluiten.

Als je de registratie in plaats van typescript in een ander bestand wilt opslaan, open je script in combinatie met een bestandsnaam of -pad.

script BESTAND

seqGetallenreeksen weergeven

Gebruik het commando seq om een getallenreeks weer te geven in de standaarduitvoer. Definieer daarbij een startwaarde, een eindwaarde en een increment naar keuze.

seq [OPTIES] STARTWAARDE INCREMENT EINDWAARDE

Voorbeeld:

seq 0 2 10

Het programma telt vanuit de startwaarde 0 in stappen van twee tot 100.

taskselInstallatiehulp voor standaardtoepassingen

Het opdrachtregelprogramma tasksel dient als installatiehulp voor standaardtoepassingen (e-mailserver, DNS-server, OpenSSH-server, LAMP-server enz.). Gebruik de tool om alle pakketten en programma's die nodig zijn om een taak automatisch in de juiste volgorde te installeren.

Open tasksel met de optie --list-tasks om een lijst van alle beschikbare standaardtoepassingen weer te geven.

tasksel --list-tasks

Als je meer gegevens over een standaardtoepassing uit deze lijst wilt opvragen, gebruik je tasksel met de optie --task-desc en de overeenkomstige taak.

Voorbeeld:

tasksel --task-desc mail-server

Er worden gegevens over de taak 'mail-server' weergegeven.

Als je alle pakketten die bij de taak 'mail-server' horen, wilt weergeven, gebruik je tasksel in combinatie met de optie --task-packages.

tasksel --task-packages mail-server

Een installatie van alle pakketten met een standaardtoepassing start je met het subcommando install. Er zijn rootrechten vereist.

Voorbeeld:

tasksel install mail-server

Het opdrachtregelprogramma leidt de installatie van alle pakketten in die voor de taak 'mail-server' vereist zijn.

teeProgramma-uitvoer verdubbelen

tee is een opdrachtregelprogramma waarmee de uitvoer van een programma kan worden verdubbeld. Daarbij wordt de ene uitvoer doorgeleid naar de standaarduitvoer en de andere geschreven naar een bestand dat is ingevoerd met het tee-commando.

De algemene syntax van het commando luidt:

tee [OPTIES] BESTAND

In de regel wordt tee gebruikt in combinatie met het omleidingsteken pipe (|).

ls | tee voorbeeld.txt

Het commando ls geeft de inhoud van de huidige map weer. De programma-uitvoer wordt via pipe doorgestuurd naar het opdrachtregelprogramma tee, dat deze zowel in de terminal weergeeft als naar het bestand voorbeeld.txt schrijft.

timeLooptijd van programma’s meten

Gebruik het commando time volgens het volgende schema om de looptijd van programma's te bepalen die je start via de terminal.

time [OPTIES] commando [ARGUMENTEN]

trTekens in tekstbestanden vervangen.

Gebruik tr om een willekeurige hoeveelheid tekens te verwijderen of te vervangen door andere. Daarvoor leest tr de datastroom van de standaardinvoer in en schrijft het deze naar de gewenste modificatie op de standaarduitvoer.

Als er een tekenvolume moet worden vervangen door een ander wordt tr met twee argumenten gebruikt.

tr OPTIE TEKENVOLUME1 TEKENVOLUME2

Het tweede argument (TEKENVOLUME2) vervangt het eerste (TEKENVOLUME1).

Als je een tekenreeks wilt verwijderen, gebruik je tr met de optie -d en voer je de te verwijderen sequentie in als argument.

tr -d TEKENVOLUME

Het opdrachtregelprogramma wordt in de regel gebruikt in combinatie met omleidingstekens (< en >) om wijzigingen in bestanden aan te brengen.

tr 'a-z' 'A-Z' < voorbeeld1.txt > voorbeeld2.txt

tr leest de inhoud van het bestand voorbeeld1.txt in, vervangt de kleine letters a tot z door grote letters en schrijft de output naar het bestand voorbeeld2.txt.

wallBerichten versturen naar alle aangemelde gebruikers

Met het opdrachtregelprogramma wall kun je alle in het systeem aangemelde gebruikers een bericht sturen.

Om een bericht te verzenden, start je het programma met het volgende commando:

wall

Bevestig de programma-aanvraag met [enter] en voer je bericht in. Ook dit wordt bevestigd met [enter] en verzonden met de toetsencombinatie [CTRL]+[D].

Alle in het systeem aangemelde gebruikers ontvangen je bericht als broadcast-message in de terminal.

Let op: om berichten te kunnen ontvangen, moet je andere gebruikers een schrijfrecht voor je terminal toekennen. Gebruik hiervoor het commando mesg:

mesg [y/n]

Huidige status opvragen:

mesg

Schrijfrecht toekennen:

mesg y

Schrijfrecht weigeren:

mesg n

Als je bestandsinhoud wilt versturen naar alle aangemelde gebruikers gebruik je wall in combinatie met een invoeromleiding en de bijbehorende bestandsnaam:

wall < BESTANDSNAAM

watchCommando's periodiek uitvoeren

Met het opdrachtregelprogramma watch kun je een commando uitvoeren in regelmatige intervallen.

Het programma wordt geopend met de volgende syntax:

watch [OPTIES] COMMANDO

Het tijdsinterval waarin het met watch ingevoerde commando periodiek wordt aangevraagd, definieer je met behulp van de optie -n SECONDEN.

watch kan worden afgesloten met de toetsencombinatie [CTRL] + [C].

In het volgende voorbeeld wordt het systeem geïnstrueerd om de belasting van het werkgeheugen om de 10 seconden weer te geven.

watch -n 10 free

wcRegels, woorden, letters, tekens en/of bytes van tekstbestanden tellen

Het opdrachtregelprogramma wc (kort voor word count) geeft je indien gewenst het aantal regels, woorden, letters, tekens en/of bytes van een tekstbestand weer.

De algemene syntax van het commando luidt:

wc [OPTIES] BESTAND

Voorbeeld:

wc voorbeeld.txt

Output:

14 18 143 voorbeeld.txt

Als wc zonder optie wordt ingevoerd, komt de weergave overeen met het schema REGELS WOORDEN TEKENS BESTAND. Voor een gefilterde weergave ondersteunt het opdrachtregelprogramma de opties: -l (regels), -c (bytes), -m (tekens), -L (lengte van de langste regel) en -w (woorden).

xargsStandaardinvoer in commandoregels veranderen

xargs is een opdrachtregelprogramma waarmee je de uitvoer van een voorafgaand commando als argument kunt toevoegen aan een commando. In de regel wordt daarbij de pipe (|) gebruikt als omleidingsteken.

Gebruik xargs volgens deze syntax:

COMMANDO1 | xargs [OPTIES] COMMANDO2

xargs wordt bijvoorbeeld gebruikt in combinatie met het commando find.

In het volgende voorbeeld stelt find in de huidige map alle bestanden vast die bij het zoekpatroon *.tmp passen en geeft het de namen ervan weer in de standaarduitvoer. Daar worden de bestandsnamen aangenomen door xargs en als argumenten toegevoegd aan het commando rm.

$ find . -name '*.tmp' | xargs rm

Het hier weergegeven overzicht maakt er geen aanspraak op volledig te zijn, maar omvat enkel de essentiële Linux-commando's met specifieke toepassingsvoorbeelden voor de alledaagse werkzaamheden met Unix-achtige besturingssystemen. Een uitgebreide beschrijving van de hier genoemde opdrachtregelprogramma's en alle andere commando's vind je in de gebruiksaanwijzingspagina's van je besturingssysteem. Een online versie van deze help- en documentatiepagina's wordt in het kader van het Linux-man-pages-project van Michael Kerrisk beschikbaar gesteld op kernel.org