Ga naar inhoud

πŸ” Het grep Commando in Linux

In deze handleiding leer je hoe je grep gebruikt op een Linux-systeem.

Het commando grep wordt gebruikt om regels in bestanden of output te doorzoeken op basis van een patroon of reguliere expressie.
Het is een van de krachtigste en meest gebruikte tekstverwerkingstools in Linux.

Achtergrondinformatie

Het commando grep is standaard aanwezig op vrijwel alle Unix/Linux-systemen.

  • grep kan zoeken op simpele tekst, patronen of complexe reguliere expressies.
  • Het kan worden gebruikt in combinatie met andere commando’s via pipes (|) om output te filteren.
  • In de praktijk is grep onmisbaar voor het analyseren van logbestanden, configuraties en andere tekstbestanden.

Controleren of grep aanwezig is

Het grep-commando staat bijna altijd standaard op je systeem geΓ―nstalleerd.

Wil je controleren of grep aanwezig is, dan kun je de versie opvragen:

grep --version
Voorbeeldoutput
grep (GNU grep) 3.8
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.

βš™οΈ Installeren van grep

Het commando grep maakt deel uit van het pakket GNU grep.
Daarom is het op vrijwel alle Linux-distributies standaard geΓ―nstalleerd, inclusief Debian en Ubuntu.

Installatie op Debian/Ubuntu:

sudo apt update
sudo apt install grep

Voorbeeldoutput
grep (GNU grep) 3.4
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.

Hieronder vind je enkele veelgebruikte combinaties van het grep-commando:

  • grep "zoekterm" bestand.txt β†’ Zoek naar een tekst in een bestand
Voorbeeld gebruik van grep "zoekterm" bestand.txt

Commando:

grep "error" /var/log/syslog
Voorbeeldoutput:
Sep 11 12:34:56 server error: something went wrong

  • grep -i "zoekterm" bestand.txt β†’ Zoek zonder hoofdlettergevoeligheid
  • grep -v "zoekterm" bestand.txt β†’ Toon regels die niet overeenkomen
  • grep -r "zoekterm" /pad/ β†’ Zoek recursief in een directory
  • grep -n "zoekterm" bestand.txt β†’ Toon regels met regelnummer
  • grep -c "zoekterm" bestand.txt β†’ Tel het aantal matches
  • grep -l "zoekterm" * β†’ Toon alleen bestandsnamen met een match
  • grep -E "patroon1|patroon2" bestand.txt β†’ Gebruik uitgebreide reguliere expressies
  • command | grep "zoekterm" β†’ Filter output van een ander commando

Het grep-commando heeft weinig configuratie, maar je kunt aliassen maken voor standaardopties.

1. Per gebruiker instellen

Voeg dit toe aan ~/.bashrc:

alias grepci='grep -i'
alias grepn='grep -n'

2. System-wide instellen

Plaats dezelfde alias in /etc/bash.bashrc of /etc/profile

Logging van het grep-commando

Het grep-commando schrijft zelf geen logbestanden weg.
Wil je gebruik van grep monitoren, dan kan dat met auditd.

Voorbeeld auditd regel

sudo auditctl -w /bin/grep -p x -k grep_monitor
  • -w /bin/grep β†’ bewaak het bestand grep
  • -p x β†’ log bij uitvoeren
  • -k grep_monitor β†’ tag voor herkenning

Logs bekijken:

ausearch -k grep_monitor

Of rechtstreeks in:

less /var/log/audit/audit.log

Updaten van grep

Het grep-commando kan geΓΌpdatet worden via de package manager van je distributie.

Voorbeeld (Debian/Ubuntu):

sudo apt update
sudo apt install --only-upgrade grep

Verwijderen van grep

Het grep-commando kan verwijderd worden, maar dit kan scripts of workflows beΓ―nvloeden die afhankelijk zijn van tekstzoeken.

Voorbeeld (Debian/Ubuntu):

sudo apt remove grep

πŸ“– Handleiding

De ingebouwde handleiding van Linux-commando’s is altijd beschikbaar via man.
Voor grep:

man grep
Voorbeeld
GREP(1)                     User Commands                     GREP(1)

NAME
       grep - print lines matching a pattern

SYNOPSIS
       grep [OPTION]... PATTERN [FILE]...

DESCRIPTION
       Search for PATTERN in each FILE or standard input.