Linux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden

  1. Home
  2. Blog
  3. DevOps

DevOps

Linux-opdrachten voor beginners: De essentiële terminalgids met voorbeelden

De terminal ziet er intimiderend uit totdat je enkele tientallen commando’s kent. Ontdek welke zaken er toe doen, gegroepeerd op wat u probeert te doen, en combineer ze vervolgens om een ​​echte vraag over een logbestand te beantwoorden.

9 min leestijd
Linux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden

Belangrijkste punten

  • Een kleine set Linux-opdrachten dekt het grootste deel van het dagelijkse werk: ls, cd, cp, mv, rm, cat en grep.
  • Leidingen (|) verbinden eenvoudige gereedschappen om moeilijkere vragen te beantwoorden.
  • rm heeft geen prullenbak, dus controleer dit nogmaals voordat u op Enter drukt.
  • Gebruik man of --help wanneer u een optie vergeet.

De meeste servers, containers en cloudmachines draaien op Linux en hebben meestal geen grafische desktop. Daarom is het leren van Linux-opdrachten zo’n nuttige vaardigheid voor zowel ontwikkelaars als testers. Je hoeft er geen honderden te onthouden. Met een paar dozijn kom je een heel eind.

We hebben de bestands-, zoek- en pipe-voorbeelden getest in Git Bash op Windows, die dezelfde kerntools biedt, en de uitvoer komt uit die run. We hebben de opdrachten voor machtigingen, services, pakketten en externe toegang niet uitgevoerd, omdat deze afhankelijk zijn van een echt Linux-systeem. Details kunnen per distributie variëren, dus controleer de documentatie van uw eigen systeem.

Veilig aan de slag

Om te oefenen hoef je geen Linux te installeren. Goede opties zijn onder meer:

  • Windows: Windows-subsysteem voor Linux (WSL), of Git Bash voor de basis.
  • macOS: de ingebouwde terminal, waarvan de opdrachten sterk op elkaar lijken, hoewel sommige opties verschillen.
  • Elk systeem: een container. Onze Docker-tutorial voor beginners laat zien hoe u er een kunt starten.

Oefen in een wegwerpmap en onthoud dat alles in Linux hoofdlettergevoelig is: Notes.txt en notes.txt zijn verschillende bestanden.

Anatomie van een commando

ls -l /var/log
^  ^  ^
|  |  argument: what to act on
|  option: how to behave
command: what to run

Korte opties kunnen meestal worden gecombineerd, dus ls -l -a en ls -la zijn hetzelfde. Bij lange opties worden twee streepjes gebruikt, zoals in --help. Voor hulp voert u man ls uit voor de volledige handleiding, of ls --help voor een samenvatting. Druk op q om een ​​handleidingpagina te verlaten.

Commando Wat het doet
pwd Drukt uw huidige map af
ls Geeft bestanden weer
ls-la Geeft een overzicht van alle bestanden, inclusief verborgen bestanden, met details
cd-map Verplaatst naar een map
cd.. Gaat één niveau omhoog
cd-~ Gaat naar uw thuismap
cd- Keert terug naar de vorige map

Druk op Tab om bestandsnamen automatisch aan te vullen, en op de pijl-omhoog om eerdere opdrachten terug te halen. Deze twee gewoonten besparen meer tijd dan welke andere tip dan ook. Een bestandsnaam die met een punt begint, zoals .env, is verborgen, en ls toont deze alleen met -a.

Beheer bestanden en mappen

Commando Wat het doet
mkdir -p project/logboeken Creëert mappen, inclusief ouders
tik op notities.txt Creëert een leeg bestand
cp a.txt b.txt Kopieert een bestand
cp -r src/ backup/ Kopieert een map
mv a.txt b.txt Hernoemt of verplaatst een bestand
rm a.txt Verwijdert een bestand
rm -r map/ Verwijdert een map en alles daarin

Hier is een korte sessie van onze run:

$ mkdir -p project/logs
$ cd project
$ touch notes.txt
$ ls
logs  notes.txt

$ cp notes.txt backup.txt
$ mv backup.txt old.txt
$ ls
logs  notes.txt  old.txt

$ rm old.txt
$ ls
logs  notes.txt

Tip: rm maakt geen gebruik van een prullenbak en verwijderde bestanden zijn doorgaans verdwenen. Wees vooral voorzichtig met rm -r en jokertekens. Voer eerst ls uit met hetzelfde patroon, om te zien wat er precies overeenkomt, en gebruik rm -i als u voor elk bestand een prompt wilt hebben.

Bestandsinhoud bekijken

Commando Wat het doet
katten bestand Drukt een heel bestand af
minder bestand Bladert door een lang bestand (q om te stoppen)
head -n 5 bestand Toont de eerste vijf regels
staart -n 5 bestand Toont de laatste vijf regels
staart -f bestand Volgt nieuwe regels zoals ze zijn geschreven
wc -l bestand Telt lijnen

Voor de volgende paar voorbeelden hebben we een klein logbestand gemaakt:

$ cat logs/app.log
ERROR db down
INFO started
ERROR disk full
INFO stopped

$ head -n 1 logs/app.log
ERROR db down

$ tail -n 1 logs/app.log
INFO stopped

$ wc -l logs/app.log
4 logs/app.log

tail -f is een dagelijks hulpmiddel waarmee u een live toepassingslogboek kunt bekijken terwijl u een bug reproduceert. Druk op Ctrl+C om het te stoppen.

grep zoekt in bestanden, en find zoekt naar de bestanden zelf:

$ grep ERROR logs/app.log
ERROR db down
ERROR disk full

$ grep -c ERROR logs/app.log
2

$ find . -name "*.log"
./logs/app.log
Optie Betekenis
grep-ik Negeert casus
grep-r Zoekt recursief in een map
grep-n Toont regelnummers
grep-v Toont regels die niet overeenkomen
grep-c Telt overeenkomende lijnen

Leidingen en omleiding

Dit is het idee dat de opdrachtregel zo krachtig maakt. Elke tool doet één klein klusje, en je verbindt ze:

Symbool Wat het doet
| Stuurt de uitvoer van het ene commando naar het volgende
> Schrijft uitvoer naar een bestand, vervangt de inhoud ervan
>> Voegt uitvoer toe aan een bestand
2> Schrijft foutmeldingen naar een bestand
$ echo "hello" > greeting.txt
$ echo "world" >> greeting.txt
$ cat greeting.txt
hello
world

Wees voorzichtig met een enkele >, omdat deze stilletjes overschrijft wat al in het bestand stond.

Een echt voorbeeld: vat een logboek samen

Hoeveel regels van elk type staan er in ons logboek? Het combineren van vier eenvoudige commando’s geeft het antwoord:

$ cut -d' ' -f1 logs/app.log | sort | uniq -c
      2 ERROR
      2 INFO

Van links naar rechts lezen: cut neemt het eerste door spaties gescheiden woord op elke regel, sort groepeert identieke woorden samen, en uniq -c telt elke groep. De sorteerstap is van belang, omdat uniq alleen aangrenzende duplicaten samenvouwt. Voeg | sort -nr toe aan het einde om de meest voorkomende eerst te vermelden.

Dit soort oneliners zijn een grote hulp bij het onderzoeken van storingen. Het kan je snel vertellen of een fout twee of tweeduizend keer is opgetreden, wat handig is om in een bugrapport te zetten.

Bestandsrechten

Voer ls -l uit en je zult zoiets als dit zien:

-rwxr-xr-- 1 asha devs 512 Nov 1 10:00 deploy.sh

Na het eerste teken, dat het bestandstype aangeeft, zijn er drie groepen van drie tekens, voor de eigenaar, de groep en alle anderen. Elk kan r (lezen), w (schrijven) en x (uitvoeren) hebben.

Commando Wat het doet
chmod +x implementeren.sh Maakt een script uitvoerbaar
chmod 644-bestand Eigenaar kan lezen en schrijven, anderen kunnen lezen
chmod 755 script.sh Eigenaar heeft volledige toegang, anderen kunnen lezen en uitvoeren
chown asha-bestand Verandert de eigenaar
sudo-opdracht Voert een opdracht uit als beheerder

De getallen tellen op: lezen is 4, schrijven is 2 en uitvoeren is 1. Dus 7 betekent alle drie, en 5 betekent lezen en uitvoeren. Vermijd chmod 777, dat iedereen volledige toegang geeft, als snelle oplossing voor toestemmingsfouten. Zoek in plaats daarvan de echte oorzaak. En gebruik sudo zorgvuldig, omdat het de veiligheidscontroles verwijdert die normaal gesproken het systeem beschermen.

Processen en systeeminformatie

Commando Wat het doet
ps hulp Geeft actieve processen weer
top of htop Toont een liveweergave van CPU en geheugen
dood 1234 Vraagt proces 1234 om te stoppen
df-h Toont vrije schijfruimte
du -sh map Toont de grootte van een map
gratis -h Toont geheugengebruik
systemctl-status nginx Toont de status van een service
journalctl -u nginx Toont de logboeken van een service

Om software te installeren, gebruik je de pakketbeheerder van je distributie, zoals sudo apt install curl op Debian en Ubuntu, of sudo dnf install curl op Fedora en RHEL.

Archieven en werken op afstand

$ tar -czf logs.tar.gz logs
$ tar -tzf logs.tar.gz
logs/
logs/app.log

In tar betekent c creëren, z betekent gzip, f geeft het bestand een naam en t geeft de inhoud weer. Gebruik tar -xzf logs.tar.gz om een ​​archief uit te pakken. Voor het werken met andere machines heb je deze drie nodig:

Commando Wat het doet
ssh-gebruiker@server Opent een externe terminal
scp-bestand gebruiker@server:/pad/ Kopieert een bestand via SSH
krul -I https://example.com Toont de antwoordheaders van een URL

Dezelfde commando’s worden gebruikt in Dockerfiles en CI/CD-pijplijnen, dus deze kennis loont de moeite voor het hele DevOps-werk.

Veel voorkomende fouten

  • rm -rf gebruiken zonder te kijken. Controleer eerst je map met pwd en wees voorzichtig met spaties in paden.
  • Overschrijven met >. Gebruik >> als je wilde toevoegen.
  • Alles uitvoeren met sudo. Gebruik het alleen als het nodig is.
  • Opdrachten plakken die je niet begrijpt. Lees ze eerst, vooral als je een download naar een shell stuurt.
  • Aanhalingstekens vergeten. Een bestandsnaam met spaties, zoals "my file.txt", heeft deze nodig.

Tot slot

Je leert de terminal niet kennen door erover te lezen. Open een shell, maak een oefenmap en voer de opdrachten van elke sectie uit. Probeer vervolgens een echte vraag te beantwoorden met behulp van een pipe, bijvoorbeeld welke fout het vaakst voorkomt in een logbestand. Begin deze week met navigatie en bestanden, voeg grep en pipelines toe, en de rest volgt wanneer je het nodig hebt.

Veelgestelde vragen

Wat zijn de meest elementaire Linux-opdrachten?

Begin met pwd, ls, cd, mkdir, cp, mv, rm, cat en grep. Deze omvatten het verplaatsen, het beheren van bestanden en het zoeken, wat het meeste dagelijkse terminalwerk uitmaakt.

Hoe kan ik Linux-opdrachten oefenen op Windows?

Gebruik Windows Subsystem voor Linux voor een volledige omgeving, of Git Bash voor de basis. Het draaien van een Linux-container met Docker werkt ook goed.

Wat is het verschil tussen > en >> in Linux?

Een enkele > vervangt de inhoud van het bestand door de uitvoer. Een dubbele >> voegt de uitvoer toe aan het einde van het bestand en behoudt wat er al is.

Kan ik het rm-commando ongedaan maken?

Over het algemeen niet, omdat rm geen prullenbak gebruikt. Hersteltools helpen soms, maar zijn niet betrouwbaar, dus bewaar back-ups en controleer deze eerst zorgvuldig.

Wat betekent sudo?

sudo voert een enkele opdracht uit met beheerdersrechten. Het is nodig voor taken zoals het installeren van software, en het moet met zorg worden gebruikt.

Blijf leren

Werk met Stack Quora

Hulp nodig met testen, WordPress of SEO?

We helpen teams betere software te leveren en hun sites te laten groeien. Vertel ons waar u mee bezig bent en wij stellen een duidelijke volgende stap voor.

Blijf lezen

Meer handleidingen over testen, AI en moderne ontwikkeling

Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.

Kunstmatige intelligentie

AI-hallucinaties uitgelegd: waarom taalmodellen dingen verzinnen en hoe ze te verminderen

AI-hallucinaties uitgelegd: wat ze zijn, waarom taalmodellen ze produceren, veelvoorkomende typen, hoe je ze kunt verminderen met aarding en aanwijz…

Lees artikel →
DevOps

Omgevingsvariabelen uitgelegd: .env-bestanden, geheimen en configuratie goed gedaan

Omgevingsvariabelen uitgelegd met Python-voorbeelden die we hebben uitgevoerd: ze lezen en instellen, waarom elke waarde een string is, .env-bestand…

Lees artikel →
Softwareontwikkeling

API-snelheidsbeperking uitgelegd: algoritmen, headers en afhandeling van 429-fouten

API-snelheidsbeperking uitgelegd met een simulatie die we hebben uitgevoerd: token-bucket, vast venster, schuifvenster, 429 reacties, headers van sn…

Lees artikel →
Testautomatisering

Spotten in Python: unittest.mock, patch en de fouten die tests doen liegen

Spotten in Python met unittest.mock, getest: Mock en return_value, side_effect, patchen waar een naam wordt gebruikt, spec en autospec, spotdatums e…

Lees artikel →
Softwaretesten

Codedekking uitgelegd: lijn versus filiaaldekking en wat 100% werkelijk betekent

Codedekking uitgelegd met een echte dekking.py-run: dekking van lijnen, vertakkingen en condities, een rapport lezen, waarom 100% dekking nog steeds…

Lees artikel →
Databases & SQL

DELETE versus TRUNCATE versus DROP in SQL: verschillen, terugdraaien en wanneer elk te gebruiken

DELETE versus TRUNCATE versus DROP uitgelegd met geteste SQL: wat elk verwijdert, terugdraaien, triggers, identiteitsreset, snelheid en hoe PostgreS…

Lees artikel →
Databases & SQL

SQL-weergaven uitgelegd: creëer, gebruik en vermijd de valkuilen, met voorbeelden

SQL-weergaven uitgelegd met query's die we hebben uitgevoerd: een weergave maken, live resultaten, kolommen verbergen, prestaties, bijwerkbare en ge…

Lees artikel →
Softwareontwikkeling

TypeScript-interface versus type: echte verschillen, getest met de compiler

TypeScript-interface versus type, gecontroleerd met de echte compiler: wat beide kunnen doen, wat slechts één kan doen, samenvoegen van declaraties,…

Lees artikel →
Softwareontwikkeling

Python *args en **kwargs uitgelegd: flexibele functies met duidelijke voorbeelden

Python *args en **kwargs uitgelegd met code die we hebben uitgevoerd: in- en uitpakken, parametervolgorde, argumenten die alleen trefwoorden en posi…

Lees artikel →
Softwareontwikkeling

Python Lambda-functies: syntaxis, echt gebruik en wanneer u ze niet moet gebruiken

Python lambda-functies uitgelegd met code die we hebben uitgevoerd: syntaxis, sorteren met sleutel, kaart en filter, sluitingen, de laat-bindende va…

Lees artikel →
Kunstmatige intelligentie

Wat zijn AI-agenten? Hoe ze werken, met een eenvoudige agentloop die u kunt uitvoeren

Wat zijn AI-agenten? Een duidelijke gids voor de agentenlus, tools, geheugen en vangrails, met een kleine Python-lus die we hebben uitgevoerd, echte…

Lees artikel →
DevOps

Monitoring versus waarneembaarheid: het echte verschil, met logboeken, statistieken en sporen

Monitoring versus waarneembaarheid uitgelegd: bekende en onbekende fouten, logboeken, statistieken en sporen, een walkthrough voor afrekenincidenten…

Lees artikel →
DevOps

Docker-volumes versus bindingsmounts: bewaar containergegevens op de juiste manier

Docker-volumes versus bind-mounts uitgelegd: waarom containergegevens verdwijnen, benoemde volumes, bind-mounts, tmpfs, Compose-voorbeelden, back-up…

Lees artikel →
Testautomatisering

TDD versus BDD: belangrijkste verschillen, één functie die op beide manieren is gebouwd en wanneer deze moet worden gebruikt

TDD versus BDD uitgelegd met één kortingsfunctie die in beide richtingen is gebouwd: rood-groen-refactor met code die we hebben uitgevoerd, gegeven-…

Lees artikel →
Softwaretesten

Gebruikersacceptatietesten (UAT): proces, checklist en echte voorbeelden

Gebruikersacceptatietesten uitgelegd: wie voert het uit, hoe het verschilt van QA, een proces in zeven stappen, een UAT-testcase-sjabloon, een check…

Lees artikel →
Databases & SQL

SQL NULL-waarden uitgelegd: IS NULL, COALESCE, NULLIF en de te vermijden vallen

SQL NULL-waarden uitgelegd met query's die we hebben uitgevoerd: logica met drie waarden, IS NULL, COALESCE, NULLIF, hoe aggregaten, joins en sorter…

Lees artikel →
Databases & SQL

SQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelvoorkomende fouten

SQL CASE WHEN uitgelegd met vragen die we hebben uitgevoerd: eenvoudige en doorzochte formulieren, volgorde van de voorwaarden, draaipunten met SUM,…

Lees artikel →
Softwareontwikkeling

Wat is JWT? JSON-webtokens uitgelegd met een werkend voorbeeld

Wat is JWT? JSON Web Tokens uitgelegd: de drie delen, een token gebouwd en waarmee is geknoeid in de code die we hebben uitgevoerd, JWT versus sessi…

Lees artikel →
Softwareontwikkeling

JavaScript-gebeurtenislus uitgelegd: call-stack, microtaken en timers met voorbeelden

De JavaScript-gebeurtenislus uitgelegd met code die we hebben uitgevoerd: call-stack, taak- en microtask-wachtrijen, waarom setTimeout 0 niet onmidd…

Lees artikel →
Softwareontwikkeling

Python-generatoren en opbrengst uitgelegd: bespaar geheugen met echte voorbeelden

Python-generatoren en opbrengst uitgelegd met code die we hebben uitgevoerd: hoe ze pauzeren en hervatten, gemeten geheugenbesparingen, pijplijnen, …

Lees artikel →
Kunstmatige intelligentie

Wat zijn inbeddingen? Vectoren en cosinusovereenkomst eenvoudig uitgelegd

Wat zijn insluitingen? Een gids in duidelijke taal over vectoren, cosinusovereenkomst en semantisch zoeken, met een klein voorbeeld dat we hebben ui…

Lees artikel →
DevOps

Implementatie van blauwgroen versus kanarie: verschillen, afwegingen en hoe te kiezen

Blauw-groen versus kanarie-implementatie uitgelegd: hoe elk werkt, kosten, risico's en terugdraaien, stabiele gebruikersbucket die we hebben getest,…

Lees artikel →
Testautomatisering

Schilferige tests: wat de oorzaak ervan is en hoe u ze voorgoed kunt oplossen

Zwakke tests uitgelegd met demo's die we hebben uitgevoerd: de belangrijkste oorzaken, hoe je er een kunt bevestigen en diagnosticeren, goede oploss…

Lees artikel →
Softwaretesten

Belastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden

Belastingtesten versus stresstesten uitgelegd: wat elk bewijst, piek- en soak-tests, de statistieken die er toe doen, waarom gemiddelden misleiden, …

Lees artikel →
Softwaretesten

Testcase versus testscenario: belangrijkste verschillen, voorbeelden en wanneer deze te gebruiken

Testcase versus testscenario uitgelegd: duidelijke definities, een tabel naast elkaar, één functie voor het opnieuw instellen van wachtwoorden, over…

Lees artikel →
Databases & SQL

Optimalisatie van SQL-query's: lees uitvoeringsplannen en repareer langzame query's, met timing

Optimalisatie van SQL-query's getest op een miljoen rijen: lees uitvoeringsplannen, voeg de juiste indexen toe, repareer niet-sargeerbare filters, g…

Lees artikel →
Databases & SQL

SQL UNION versus UNION ALL: verschillen, voorbeelden en geteste prestaties

SQL UNION versus UNION ALL uitgelegd met de query's die we hebben uitgevoerd: duplicaten, de regels volgen beide, een echte databug, gemeten prestat…

Lees artikel →
Softwareontwikkeling

JavaScript Fetch API-tutorial: GET, POST, foutafhandeling en time-outs

Een JavaScript Fetch API-tutorial getest tegen een lokale server: GET en POST, waarom 404 niet gooit, een herbruikbare helper, queryreeksen, time-ou…

Lees artikel →
Softwareontwikkeling

Python-bestandsverwerking: lezen, schrijven, CSV, JSON en pathlib met voorbeelden

Het verwerken van Python-bestanden uitgelegd met code die we hebben uitgevoerd: open modi, met het lezen van grote bestanden, CSV, JSON, pathlib, bi…

Lees artikel →
Softwareontwikkeling

Python-klassen en -objecten: OOP-zelfstudie met echte voorbeelden

Python-klassen en -objecten uitgelegd met code die we hebben uitgevoerd: __init__, methoden, klasse versus instantie-attributen, overerving, eigensc…

Lees artikel →
Kunstmatige intelligentie

Wat is een groot taalmodel? Hoe LLM's werken, uitgelegd zonder de hype

Wat is een groot taalmodel? LLM's uitgelegd in duidelijke taal: tokens, inbedding, aandacht, training, temperatuur- en contextvensters, een kleine d…

Lees artikel →
DevOps

Linux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden

Linux-opdrachten voor beginners, gegroepeerd op taak: navigatie, bestanden, logboeken bekijken, grep, pipelines, machtigingen, processen en archieve…

Lees artikel →
Testautomatisering

Selenium versus toneelschrijver: belangrijkste verschillen, code vergeleken en welke te kiezen

Selenium versus Playwright vergeleken: architectuur, wachten, browser- en taalondersteuning, debuggen, dezelfde test in beide tools, migratieadvies …

Lees artikel →
Softwaretesten

Equivalentiepartitionering: testontwerptechniek uitgelegd met uitgewerkte voorbeelden

Equivalentiepartitionering uitgelegd: hoe je geldige en ongeldige partities kunt vinden, uitgewerkte voorbeelden voor leeftijden, wachtwoorden en ko…

Lees artikel →
Softwaretesten

Ernst versus prioriteit bij het testen van software: verschillen, matrix en echte voorbeelden

Ernst versus prioriteit bij het testen van software uitgelegd: duidelijke definities, een vierwegmatrix met voorbeelden, niveauschalen, wie deze bep…

Lees artikel →
Databases & SQL

Tutorial voor SQL-subquery's: typen, gecorreleerde subquery's en BESTAAN met voorbeelden

Een SQL-subquery-tutorial met query's die we hebben uitgevoerd: scalaire, IN-, FROM- en SELECT-subquery's, gecorreleerde subquery's, EXISTS, de NOT …

Lees artikel →
Databases & SQL

SQL-transacties en ACID uitgelegd: COMMIT-, ROLLBACK- en isolatieniveaus

SQL-transacties en ACID uitgelegd met een bankoverschrijving die we hebben uitgevoerd: COMMIT, ROLLBACK, savepoints, locks, isolatieniveaus, dirty r…

Lees artikel →
Softwareontwikkeling

Git merge vs rebase: verschillen, voorbeelden en wanneer je wat gebruikt

Git merge vs rebase uitgelegd met echte logoutput, een vergelijkingstabel, de gouden regel van rebase en een veilige teamwerkwijze.

Lees artikel →
Softwareontwikkeling

Python list comprehension: syntaxis, voorbeelden en wanneer je het vermijdt

Python list comprehension uitgelegd: syntaxis, filteren, if-else, geneste lussen, gemeten tijden en wanneer een gewone for-lus beter is.

Lees artikel →
Databases & SQL

SQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)

Begrijp SQL joins stap voor stap met voorbeeldtabellen en queries: INNER, LEFT, RIGHT, FULL, CROSS en SELF, plus veelgemaakte fouten en prestatietips.

Lees artikel →