EMZETT.
Login

curl und wget: Webseiten und APIs im Terminal abrufen

Kurz: Zwei Kommandozeilenprogramme, die Daten über HTTP und andere Protokolle herunterladen oder an Server senden.

Genauer: curl und wget holen Inhalte von Webadressen, ohne Browser. Sie sind Standardwerkzeuge für Skripte, Fehlersuche und das Ausprobieren von Schnittstellen. wget ist auf Herunterladen ganzer Dateien und Seiten ausgelegt, curl auf flexible Anfragen mit allen HTTP-Methoden.

Im Detail

curl: häufige Beispiele

curl https://example.com                 # Inhalt ausgeben
curl -I https://example.com              # nur die Header (HEAD)
curl -o seite.html https://example.com   # in Datei speichern
curl -L https://kurz.link/x              # Weiterleitungen folgen
curl -X POST https://api.example.com/items \
  -H 'Content-Type: application/json' \
  -d '{"name":"Test"}'                   # JSON senden
curl -u nutzer:passwort https://...       # Basic Auth
curl -H 'Authorization: Bearer TOKEN' ... # Token

-v zeigt die komplette Kommunikation, -s unterdrückt Fortschritt, -w '%{http_code}' gibt den Statuscode aus.

wget: häufige Beispiele

wget https://example.com/datei.zip        # herunterladen
wget -c https://example.com/gross.iso     # unterbrochenen Download fortsetzen
wget -r -np https://example.com/doku/     # Ordner rekursiv holen
wget -O name.zip https://...              # Dateiname festlegen

Es setzt Downloads nach Verbindungsabbrüchen fort und kann ganze Webseiten spiegeln (--mirror).

Typische Anwendungen

  • Eine Schnittstelle testen, bevor man Code schreibt.
  • Prüfen, ob eine Seite erreichbar ist und welchen Statuscode sie liefert.
  • Installationsskripte: curl -fsSL URL | sh (Vorsicht, siehe unten).
  • Dateien auf Servern ohne Oberfläche laden.
  • Fehler bei Zertifikaten, Weiterleitungen oder Headern eingrenzen.

Sicherheitshinweise

Skripte aus dem Netz direkt in eine Shell zu leiten (curl ... | sh) führt fremden Code ohne Prüfung aus; besser erst herunterladen und ansehen. Passwörter und Tokens in der Kommandozeile erscheinen im Shell-Verlauf und in der Prozessliste, verwende lieber Umgebungsvariablen oder Konfigurationsdateien. -k (Zertifikatsprüfung abschalten) nur zum Testen.

Siehe auch: REST-API-Design, Linux-Befehle, TLS, HTTP-Statuscodes