Terminalbefehle für Windows und Linux
Diese gemeinsame Referenz erklärt wichtige Terminalbefehle für Windows mit PowerShell und CMD sowie für Linux mit Bash unter Ubuntu oder Debian. Sie richtet sich an Einsteigerinnen und Einsteiger in der Fachinformatiker-Umschulung.
Die Beispiele sind bewusst vergleichbar aufgebaut: Zu vielen Aufgaben findest du direkt den passenden Befehl für beide Betriebssystemwelten.
1. Terminal, Shell und Administratorrechte
Windows
Das moderne Windows Terminal kann mehrere Shells in Tabs öffnen:
- PowerShell für moderne Administration und Automatisierung
- Eingabeaufforderung (CMD) für klassische Windows-Befehle und ältere Batchdateien
- Optional WSL für eine Linux-Umgebung unter Windows
Viele Wartungsbefehle benötigen ein Terminal, das über Als Administrator ausführen geöffnet wurde.
Linux
Unter Ubuntu und Debian wird häufig Bash als Shell verwendet. Administrative Einzelbefehle werden normalerweise mit sudo ausgeführt:
sudo BEFEHL
Achtung: Administratorrechte können Systemdateien verändern, Dienste stoppen oder Daten löschen. Prüfe Befehl, Pfad und Ziel immer vor dem Ausführen.
Hilfe direkt im Terminal
| System | Befehl | Bedeutung |
|---|---|---|
| PowerShell | Get-Help Get-Process -Examples |
Beispiele für ein Cmdlet anzeigen |
| PowerShell | Get-Command *service* |
Befehle zu einem Suchbegriff finden |
| CMD | ipconfig /? |
Hilfe zu einem CMD-Befehl anzeigen |
| Linux | man ip |
Handbuchseite öffnen |
| Linux | ip --help |
Kurzhilfe anzeigen |
| Linux | apropos network |
Handbuchseiten nach Begriff durchsuchen |
2. Schnellvergleich
| Aufgabe | PowerShell | CMD | Linux/Bash |
|---|---|---|---|
| Aktuellen Pfad anzeigen | Get-Location |
cd |
pwd |
| Verzeichnis wechseln | Set-Location C:\Pfad |
cd /D C:\Pfad |
cd /pfad |
| Inhalt anzeigen | Get-ChildItem |
dir |
ls -lah |
| Ordner erstellen | New-Item -ItemType Directory test |
mkdir test |
mkdir test |
| Datei kopieren | Copy-Item quelle ziel |
copy quelle ziel |
cp quelle ziel |
| Datei verschieben | Move-Item quelle ziel |
move quelle ziel |
mv quelle ziel |
| Datei umbenennen | Rename-Item alt neu |
ren alt neu |
mv alt neu |
| Textdatei anzeigen | Get-Content datei.txt |
type datei.txt |
less datei.txt |
| Datei löschen | Remove-Item datei.txt -Confirm |
del /P datei.txt |
rm -i datei.txt |
| Text suchen | Select-String -Pattern Fehler -Path log.txt |
findstr /I Fehler log.txt |
grep -i Fehler log.txt |
| Prozesse anzeigen | Get-Process |
tasklist |
ps aux |
| IP-Konfiguration | Get-NetIPConfiguration |
ipconfig /all |
ip address |
| Route anzeigen | Get-NetRoute |
route print |
ip route |
| DNS testen | Resolve-DnsName example.org |
nslookup example.org |
resolvectl query example.org |
| Prüfsumme bilden | Get-FileHash datei.iso -Algorithm SHA256 |
certutil -hashfile datei.iso SHA256 |
sha256sum datei.iso |
PowerShell besitzt Aliase wie ls, cat, cp, mv und rm. Diese sehen wie Linux-Befehle aus, verhalten sich aber als PowerShell-Cmdlets und unterstützen daher nicht automatisch dieselben Optionen. In Skripten sind die vollständigen Cmdlet-Namen eindeutiger.
3. Navigation und Dateisystem
Windows mit PowerShell
Get-Location
Get-ChildItem
Get-ChildItem -Force
Set-Location C:\Users
Set-Location ..
New-Item -ItemType Directory -Path .\Projekt
Copy-Item .\quelle.txt .\Projekt\quelle.txt
Move-Item .\quelle.txt .\ziel.txt
Ordner einschließlich Unterordnern kopieren:
Copy-Item .\Quelle .\Ziel -Recurse
Windows mit CMD
cd
dir
dir /A
cd /D C:\Users
cd ..
mkdir Projekt
copy quelle.txt Projekt\quelle.txt
move quelle.txt ziel.txt
Für umfangreiche Ordnerkopien ist robocopy zuverlässiger als xcopy:
robocopy C:\Quelle D:\Sicherung\Quelle /E /COPY:DAT /DCOPY:T /R:2 /W:2
Linux mit Bash
pwd
ls
ls -lah
cd /var/log
cd ..
cd ~
cd -
mkdir -p projekt/dokumente
cp quelle.txt projekt/
mv quelle.txt ziel.txt
Ordner einschließlich Inhalt kopieren:
cp -a quelle/ ziel/
Sicher löschen
Terminal-Löschbefehle umgehen häufig den Papierkorb. Zeige das Ziel vorher an und nutze bei Übungen eine Rückfrage:
Get-Item .\datei.txt
Remove-Item .\datei.txt -Confirm
dir datei.txt
del /P datei.txt
ls -l -- datei.txt
rm -i -- datei.txt
Verwende rekursive Löschoptionen wie -Recurse oder rm -r nur, wenn der vollständige Zielpfad eindeutig geprüft wurde.
4. Dateien anzeigen, bearbeiten und suchen
Windows
Get-Content .\log.txt
Get-Content .\log.txt -Tail 20
Get-Content .\log.txt -Tail 20 -Wait
Select-String -Path .\log.txt -Pattern 'error' -CaseSensitive:$false
Get-ChildItem -Recurse -File -Filter *.txt
notepad .\notizen.txt
In CMD:
type log.txt
findstr /I /N "error" log.txt
where /R C:\Users *.txt
notepad notizen.txt
Linux
cat datei.txt
less datei.txt
head -n 20 datei.txt
tail -n 20 datei.txt
tail -f /var/log/syslog
grep -in 'error' datei.txt
find . -type f -name '*.txt'
nano notizen.txt
In less startet /suchtext eine Suche, n springt zum nächsten Treffer und q beendet die Anzeige.
5. Benutzer und Berechtigungen
Windows
Lokale Benutzer und Gruppen anzeigen:
Get-LocalUser
Get-LocalGroup
Get-LocalGroupMember -Group Administrators
Dateiberechtigungen anzeigen:
Get-Acl C:\Daten | Format-List
In CMD kann whoami Informationen über das aktuelle Sicherheitskonto liefern:
whoami
whoami /groups
whoami /priv
Änderungen an NTFS-Rechten sollten möglichst über geplante Gruppenberechtigungen erfolgen. Befehle wie icacls können ganze Verzeichnisbäume verändern und müssen deshalb zuerst an Testdaten geprüft werden.
Linux
whoami
id
groups
ls -l
getent passwd
getent group
Einen Benutzer anlegen und einer zusätzlichen Gruppe hinzufügen:
sudo adduser BENUTZER
sudo usermod -aG GRUPPE BENUTZER
Rechte und Eigentümer ändern:
chmod u+x script.sh
chmod 640 datei.conf
sudo chown BENUTZER:GRUPPE datei.conf
Bei numerischen Linux-Rechten gilt: r = 4, w = 2, x = 1. Typische Beispiele sind 755 für öffentlich lesbare und ausführbare Verzeichnisse, 644 für normale Dateien und 600 für private Dateien. Die passende Einstellung hängt immer vom tatsächlichen Einsatzzweck ab.
6. Prozesse und Systeminformationen
Windows
Get-ComputerInfo
Get-Process
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Get-CimInstance Win32_OperatingSystem
Get-CimInstance Win32_BIOS
Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber,Status
Einen Prozess zunächst normal beenden:
Stop-Process -Id 1234
In CMD:
systeminfo
tasklist
tasklist /FI "IMAGENAME eq notepad.exe"
taskkill /PID 1234
WMIC ist veraltet und kann auf neueren Windows-Systemen fehlen. Für neue Anleitungen und Skripte wird Get-CimInstance verwendet.
Linux
uname -a
hostnamectl
cat /etc/os-release
ps aux
top
free -h
df -h
du -sh /var/log
uptime
Einen Prozess zunächst mit dem normalen Beendigungssignal stoppen:
kill 1234
Erzwungenes Beenden mit kill -9 oder Stop-Process -Force ist nur die letzte Maßnahme, da Anwendungen dabei keine Gelegenheit zum sauberen Speichern und Aufräumen erhalten.
7. Dienste und Ereignisprotokolle
Windows
Get-Service
Get-Service -Name Spooler
Start-Service -Name Spooler
Stop-Service -Name Spooler
Restart-Service -Name Spooler
Get-WinEvent -LogName System -MaxEvents 20
Get-WinEvent -FilterHashtable @{LogName='System'; Level=2} -MaxEvents 20
In CMD:
sc query Spooler
sc start Spooler
sc stop Spooler
Linux mit systemd
systemctl status ssh --no-pager
sudo systemctl start ssh
sudo systemctl stop ssh
sudo systemctl restart ssh
sudo systemctl enable --now ssh
systemctl --failed --no-pager
journalctl -u ssh -b --no-pager
journalctl -p warning -b --no-pager
Ersetze ssh jeweils durch den tatsächlichen Dienstnamen.
8. Netzwerkdiagnose
Adressen und Routen
PowerShell:
Get-NetIPConfiguration
Get-NetIPAddress -AddressFamily IPv4
Get-NetRoute -AddressFamily IPv4
Get-NetAdapter
CMD:
ipconfig /all
route print
getmac /v
Linux:
ip address
ip route
ip link
Erreichbarkeit und Pfad testen
PowerShell:
Test-Connection 192.168.1.1 -Count 4
Test-NetConnection example.org -Port 443
Resolve-DnsName example.org
CMD:
ping -n 4 192.168.1.1
tracert example.org
pathping example.org
nslookup example.org
Linux:
ping -c 4 192.168.1.1
tracepath example.org
resolvectl query example.org
curl -I https://example.org
Offene Ports und Verbindungen
PowerShell:
Get-NetTCPConnection -State Listen
Get-NetTCPConnection | Sort-Object LocalPort
CMD:
netstat -ano
Linux:
ss -tulpn
Ein offener Port ist nicht automatisch ein Sicherheitsproblem. Prüfe, welcher Prozess lauscht, ob der Dienst benötigt wird und ob Firewallregeln den Zugriff passend einschränken.
9. Datenträger und Speicherplatz
Windows
Get-Disk
Get-Partition
Get-Volume
Get-PSDrive -PSProvider FileSystem
Datenträger in CMD nur auflisten:
diskpart
list disk
list volume
exit
Warnung: Befehle wie
clean,format,removeoderdelete partitionkönnen Daten oder komplette Datenträgerstrukturen zerstören. Sie gehören nicht in eine allgemeine Kopier-und-Einfügen-Anleitung.
Linux
lsblk -f
df -h
df -i
sudo fdisk -l
findmnt
Zur Größenanalyse eines Verzeichnisses:
du -h --max-depth=1 /var | sort -h
Auch unter Linux dürfen Partitionierungs-, Formatierungs- und Dateisystemreparaturbefehle erst nach einer eindeutigen Identifikation des Zielgeräts und einer aktuellen Sicherung verwendet werden.
10. Systemprüfung und Wartung
Windows
Diese Befehle benötigen ein als Administrator geöffnetes Terminal:
DISM.exe /Online /Cleanup-Image /RestoreHealth
sfc /scannow
chkdsk C: /scan
DISM repariert den Windows-Komponentenspeicher, SFC prüft geschützte Systemdateien und chkdsk /scan führt eine Onlineprüfung des Dateisystems durch. Reparaturoptionen, die einen Neustart oder exklusiven Datenträgerzugriff benötigen, sollten geplant und nicht während laufender Arbeiten erzwungen werden.
Neustart und Herunterfahren:
shutdown /r /t 0
shutdown /s /t 60 /c "Geplantes Herunterfahren"
shutdown /a
Ubuntu und Debian
Paketlisten und installierte Pakete aktualisieren:
sudo apt update
sudo apt upgrade
Nicht mehr benötigte automatisch installierte Pakete zunächst anzeigen und dann bewusst entfernen:
apt list --autoremove
sudo apt autoremove
Fehlerhafte systemd-Dienste und wichtige Meldungen prüfen:
systemctl --failed --no-pager
journalctl -p err -b --no-pager
Neustart und Herunterfahren:
sudo systemctl reboot
sudo systemctl poweroff
11. Software und Pakete
Windows
Wenn der Windows-Paketmanager verfügbar ist:
winget search firefox
winget list
winget upgrade
winget show Mozilla.Firefox
Prüfe vor einer Installation oder Aktualisierung Paketname, Quelle und Herausgeber.
Ubuntu und Debian
apt search nginx
apt show nginx
apt list --installed
sudo apt install nginx
sudo apt remove nginx
apt ist für die interaktive Nutzung geeignet. In stabilen Automatisierungsskripten werden häufig apt-get und apt-cache verwendet, da ihre Ausgabe und Schnittstellen dafür besser vorgesehen sind.
12. Archive und Prüfsummen
Windows mit PowerShell
Compress-Archive -Path .\Projekt -DestinationPath .\Projekt.zip
Expand-Archive -Path .\Projekt.zip -DestinationPath .\Entpackt
Get-FileHash .\datei.iso -Algorithm SHA256
Windows mit CMD
tar -cf Projekt.tar Projekt
tar -xf Projekt.tar
certutil -hashfile datei.iso SHA256
Linux
tar -czf projekt.tar.gz projekt/
tar -xzf projekt.tar.gz
zip -r projekt.zip projekt/
unzip projekt.zip
sha256sum datei.iso
Eine Prüfsumme erkennt Übertragungsfehler und Manipulationen nur dann zuverlässig, wenn der erwartete Vergleichswert aus einer vertrauenswürdigen Quelle stammt.
13. SSH und sichere Dateiübertragung
OpenSSH-Befehle stehen unter Linux und auf aktuellen Windows-Systemen mit installiertem OpenSSH-Client ähnlich zur Verfügung:
ssh benutzer@server.example.org
ssh -p 2222 benutzer@server.example.org
scp datei.txt benutzer@server.example.org:/ziel/
scp -P 2222 datei.txt benutzer@server.example.org:/ziel/
SSH-Schlüssel erzeugen:
ssh-keygen -t ed25519 -a 64
Prüfe beim ersten Verbindungsaufbau den angezeigten Host-Schlüssel-Fingerabdruck über einen zweiten vertrauenswürdigen Weg. Bestätige ihn nicht ungeprüft, da genau diese Prüfung vor Man-in-the-Middle-Angriffen schützt.
14. Textverarbeitung und Pipelines
PowerShell verarbeitet Objekte
Get-Service |
Where-Object Status -eq 'Running' |
Sort-Object DisplayName |
Select-Object Status,Name,DisplayName
Ergebnis als CSV exportieren:
Get-Process | Select-Object Name,Id,CPU | Export-Csv .\prozesse.csv -NoTypeInformation
Linux-Shell verarbeitet überwiegend Textströme
grep -i 'error' logfile.txt | sort | uniq -c
Weitere Werkzeuge:
wc -l datei.txt
sort datei.txt
cut -d: -f1 /etc/passwd
awk '{print $1}' datei.txt
sed 's/alt/neu/g' datei.txt
cat datei | grep text funktioniert, ist aber unnötig: grep text datei ist kürzer und öffnet die Datei direkt.
15. Sichere Automatisierungsbeispiele
Windows: Ordnersicherung mit Robocopy
@echo off
set "QUELLE=C:\Dokumente"
set "ZIEL=D:\Backup\Dokumente"
robocopy "%QUELLE%" "%ZIEL%" /E /COPY:DAT /DCOPY:T /R:2 /W:2 /LOG+:"D:\Backup\backup.log"
if errorlevel 8 (
echo Sicherung mit Fehlern beendet.
exit /b 1
)
echo Sicherung abgeschlossen.
Robocopy-Rückgabewerte von 0 bis 7 können erfolgreiche Kopierläufe mit unterschiedlichen Zusatzinformationen darstellen; ab 8 liegt ein Fehler vor. Das Beispiel löscht keine Dateien im Ziel.
Windows: Systembericht mit PowerShell
$bericht = [ordered]@{
Computername = $env:COMPUTERNAME
Windows = (Get-CimInstance Win32_OperatingSystem).Caption
Version = (Get-CimInstance Win32_OperatingSystem).Version
Zeitpunkt = Get-Date
}
[pscustomobject]$bericht | Format-List
Linux: Datensicherung mit Tar
#!/usr/bin/env bash
set -euo pipefail
quelle="$HOME/dokumente"
ziel="$HOME/backup"
zeitpunkt="$(date +%Y-%m-%d_%H-%M-%S)"
mkdir -p "$ziel"
tar -czf "$ziel/dokumente-$zeitpunkt.tar.gz" -C "$quelle" .
sha256sum "$ziel/dokumente-$zeitpunkt.tar.gz" > "$ziel/dokumente-$zeitpunkt.tar.gz.sha256"
echo "Sicherung abgeschlossen."
Linux: Systembericht
#!/usr/bin/env bash
echo "Hostname: $(hostname)"
echo "Kernel: $(uname -r)"
echo "System: $(. /etc/os-release && echo "$PRETTY_NAME")"
echo "Uptime: $(uptime -p)"
echo
df -h /
free -h
Teste eigene Skripte zuerst mit ungefährlichen Beispieldaten. Automatische Bereinigungsskripte mit rekursiven Löschbefehlen sind ohne zusätzliche Prüfungen, Protokollierung und Begrenzung des Zielpfads ungeeignet.
16. Tastaturkürzel
| Kürzel | Windows Terminal/PowerShell/CMD | Linux-Terminal/Bash |
|---|---|---|
Tab |
Namen und Pfade vervollständigen | Namen und Pfade vervollständigen |
Pfeil hoch/runter |
Befehlshistorie | Befehlshistorie |
Strg+C |
Laufenden Befehl abbrechen | Laufenden Befehl abbrechen |
Strg+L |
Je nach Shell Bildschirm leeren | Bildschirm leeren |
Strg+Shift+C |
Markierten Text kopieren | Markierten Text kopieren |
Strg+Shift+V |
Text einfügen | Text einfügen |
Strg+Shift+T |
Neuen Tab öffnen | Vom Terminalprogramm abhängig |
Strg+R |
PowerShell-Verlauf durchsuchen, wenn PSReadLine aktiv ist | Bash-Verlauf rückwärts durchsuchen |
F7 |
CMD-Befehlshistorie anzeigen | Nicht standardmäßig belegt |
Die genaue Belegung kann sich je nach Terminalprogramm und Profil unterscheiden.
17. Häufige Fehler und Sicherheitsregeln
- Befehle aus dem Internet nicht ungeprüft mit Administrator- oder Root-Rechten ausführen.
- Pfade mit Leerzeichen in Anführungszeichen setzen.
- Vor Lösch-, Formatierungs- und Rechtebefehlen den vollständigen Zielpfad kontrollieren.
- Bei Linux zwischen Groß- und Kleinschreibung unterscheiden:
Datei.txtunddatei.txtsind unterschiedliche Namen. - PowerShell-Aliase nicht mit gleichnamigen Linux-Programmen verwechseln.
- Zugangsdaten, private Schlüssel und Tokens nicht direkt in Skripte schreiben.
- Downloads mit Prüfsummen oder Signaturen aus vertrauenswürdigen Quellen prüfen.
- Vor Netzwerkänderungen eine Rückfallmöglichkeit einplanen, besonders bei Fernzugriff.
- Wichtige Daten sichern und die Wiederherstellung testen.
- Fehlerausgaben vollständig lesen, bevor weitere Reparaturbefehle ausgeführt werden.
Fertig
Mit dieser Referenz lassen sich grundlegende Verwaltungs-, Diagnose- und Dateioperationen unter Windows und Linux vergleichen. Für produktive Änderungen sollte zusätzlich immer die Dokumentation der tatsächlich installierten Betriebssystem- und Programmversion verwendet werden.