aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Tools & DevOps

Linux-commando's: basis van de command-line (CLI)

Die knipperende cursor die je tegenkomt wanneer je voor het eerst via SSH op een server inlogt, kan intimiderend lijken, maar de basale Linux-commando's komen eigenlijk neer op het keer op keer hergebruiken van een handvol patronen. Of je nu een VPS beheert, een gameserver opzet of een Laravel-applicatie deployt: door bestanden navigeren, ze kopiëren, rechten herstellen en processen beheren steunen allemaal op dezelfde kleine set commando's. In deze gids bouwen we stap voor stap het dagelijkse skelet van de command-line op, met echte, werkende voorbeelden.

Weten waar je bent in de terminal

Alles begint met het begrijpen van je huidige map. Drie commando's maken dat beeld compleet: pwd toont in welke map je bent, ls toont de inhoud, en cd verplaatst je tussen mappen.

pwd                 # toont het volledige pad, bijv. /home/aslain
ls -la              # gedetailleerde lijst, inclusief verborgen bestanden
cd /var/www         # ga naar een absoluut pad
cd ..               # ga één map omhoog
cd ~                # keer terug naar je thuismap

De eerste kolom van de ls -la-uitvoer (zoals drwxr-xr-x) toont de rechten; de d aan het begin duidt een map aan, terwijl - een gewoon bestand aanduidt. ~ is altijd een snelkoppeling naar de thuismap van de gebruiker, absolute paden beginnen met /, en relatieve paden worden geïnterpreteerd vanaf de plek waar je nu staat.

Bestanden en mappen beheren

De commando's om inhoud te maken, verplaatsen en verwijderen zijn klein maar krachtig. Het commando om voorzichtig mee te zijn is rm: er is geen prullenbak, en verwijderd betekent weg.

mkdir -p project/app/src      # maak geneste mappen in één keer
touch index.php               # maak een leeg bestand of werk de tijdstempel bij
cp bron.txt backup.txt        # kopieer een bestand
cp -r dist/ build/            # kopieer een map met inhoud (-r = recursief)
mv oud.txt nieuw.txt          # hernoemen of verplaatsen
rm temp.log                   # verwijder een bestand
rm -r build/                  # verwijder een map
rmdir lege_map                # verwijder alleen een lege map

De combinatie rm -rf is krachtig maar gevaarlijk: een verkeerd pad kan data wissen die je nooit had willen aanraken. Het commando met ls oefenen voordat je verwijdert is een goede gewoonte. Merk op dat mv zowel hernoemen als verplaatsen afhandelt; er is geen apart "rename"-commando.

Bestandsinhoud lezen en doorzoeken

Logbestanden inspecteren, een configuratieregel vinden of uitvoer filteren hoort bij de dagelijkse routine. Centraal hierin staan cat, less en grep.

cat .env                      # toon het hele bestand op het scherm
less storage/logs/laravel.log # blader pagina voor pagina door een lang bestand (q om te stoppen)
head -n 20 access.log         # eerste 20 regels
tail -n 50 access.log         # laatste 50 regels
tail -f access.log            # volg het bestand live (nieuwe regels stromen binnen)
grep "ERROR" laravel.log      # vind regels die ERROR bevatten
grep -ri "database" config/   # hoofdletterongevoelig zoeken in een map

tail -f is goud waard wanneer je een bug probeert te vangen: je ziet de logs in realtime binnenstromen terwijl je de app gebruikt. grep wordt veel krachtiger in combinatie met pipes; ps aux | grep php toont bijvoorbeeld alleen de PHP-processen.

Pipes, omleiding en koppeling

Het hart van de Linux-filosofie is het aan elkaar verbinden van kleine tools. Een pipe (|) maakt de uitvoer van het ene commando tot de invoer van het volgende; omleiding (>, >>) schrijft de uitvoer naar een bestand.

ls -la | grep ".php"          # toon alleen .php-bestanden
cat access.log | wc -l        # tel regels (hoeveel requests?)
du -sh * | sort -h            # toon mapgroottes, gesorteerd
echo "hallo" > notitie.txt     # schrijf naar een bestand (overschrijft het)
echo "tweede regel" >> notitie.txt # voeg toe aan het einde van het bestand
php artisan migrate && php artisan db:seed   # voer de tweede alleen uit als de eerste slaagt

De operator && voert het tweede commando alleen uit als het eerste succesvol eindigde (exitcode 0); ideaal om deploy-stappen veilig aan elkaar te koppelen. Verwar > niet met >>: één pijl wist de inhoud van het bestand, een dubbele pijl voegt toe.

Processen en het systeem beheren

Als er iets vastloopt op een server, moet je zien welk proces draait en hoeveel het verbruikt. Hier komen de procescommando's van pas.

ps aux                        # alle draaiende processen
ps aux | grep nginx           # alleen nginx-processen
top                           # live resourcegebruik (q om te stoppen)
htop                          # een leesbaardere versie (indien geïnstalleerd)
kill 4821                     # beëindig het proces met PID 4821
kill -9 4821                  # geforceerd beëindigen (als het niet reageert)
df -h                         # schijfgebruik
free -h                       # geheugengebruik (RAM)

Probeer bij het afsluiten van een proces eerst een gewone kill; die geeft de app de kans om netjes af te sluiten. Gebruik kill -9 alleen als het echt niet reageert, want dat betekent "de stekker eruit trekken" en het proces sterft voordat het iets kan opslaan. df -h en free -h zijn de eerste plekken om te kijken bij de vraag "Waarom is de schijf vol?" of "Waarom is de server traag?".

Rechten en veilige gewoontes

De meest voorkomende "Permission denied"-fouten op webservers komen door rechten. chmod wijzigt de rechten, terwijl chown het eigenaarschap wijzigt.

chmod 644 index.php           # eigenaar leest/schrijft, anderen lezen
chmod 755 deploy.sh           # iedereen kan uitvoeren, eigenaar kan schrijven
chmod -R 775 storage/         # toepassen op een map en zijn inhoud
chown -R www-data:www-data .  # geef eigenaarschap aan de webgebruiker
sudo systemctl restart nginx  # herstart een service met verhoogde rechten

Een paar praktische gewoontes besparen je problemen: bevestig je locatie met pwd voor gevaarlijke commando's, gebruik de Tab-toets om bestandsnamen automatisch aan te vullen (dat voorkomt typefouten), roep eerdere commando's op met de pijl-omhoog, en lees de handleiding van elk commando met man ls. Gebruik sudo alleen wanneer het echt nodig is; root-rechten maken van elke fout een blijvende.

Veelgestelde vragen

Hoe kom ik uit een commando dat vastzit in de terminal?

Ctrl + C stopt een draaiend commando. Om volledig-schermtools zoals top, less of man te verlaten, druk je op q. Om de terminalsessie helemaal te sluiten, typ je exit.

Wat is het verschil tussen chmod 755 en 644?

De cijfers zijn sommen van lees- (4), schrijf- (2) en uitvoerrechten (1) voor eigenaar/groep/anderen. 644 is voor gewone bestanden (niet uitvoerbaar), terwijl 755 voor scripts en mappen is, omdat die uitvoer-/toegangsrechten nodig hebben.

Kan ik een bestand herstellen dat ik met rm heb verwijderd?

Nee, rm verwijdert het bestand direct en permanent, zonder prullenbak. Daarom is het maken van back-ups van belangrijke data en het oefenen van het commando met ls voordat je verwijdert van vitaal belang.

Hulp nodig bij serverbeheer, deployment of VPS-installatie? Als je vastloopt bij het configureren van een Linux-gebaseerd systeem of het vanaf nul opzetten van een game-/webserver, neem dan contact met me op — laten we samen een solide installatie bouwen.

Bu kategorideki tüm yazılar →

Devamı için