GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Lernen Sie mit diesen Beispielen, den CURL-Befehl unter Linux zu verwenden

Was ist CURL?

CURL ist ein Tool zur Datenübertragung. Es ist auch als Bibliothek für Entwickler und als CLI für terminalbasierte Anwendungsfälle verfügbar. Beide haben die gleiche Engine im Inneren (Die Wahrheit ist, dass das CLI-Tool nur das Programm ist, das die Bibliothek unter der Haube verwendet).

CURL funktioniert mit jedem Protokoll, das Sie möglicherweise verwendet haben. Besuchen Sie diese Seite, um zu prüfen, ob CURL mit Ihrem Zielprotokoll funktioniert oder nicht.

Was CURL kann?

Hmm… Alles was mit Datenübertragung zu tun hat. Jeder muss einen Browser verwendet haben. Auch jetzt lesen Sie diesen Artikel über Ihren Browser. Was der Browser tut, er fordert eine Seite an und erhält sie als Antwort. Es kann Cookies schreiben und lesen. Und dann wird es gerendert (Anzeige des Inhalts, der Bilder und Ausführen von JS-Skripten).

CURL kann alles, was ein Browser kann, außer dem letzten Teil des Renderings, da es nichts mit der Datenübertragung zu tun hat.

Zusammenfassend kann CURL HTML-Seiten herunterladen, HTML-Formulare ausfüllen und senden, Dateien von einem FTP/HTTP-Server herunterladen und auf denselben hochladen und Cookies lesen/schreiben.

Dies macht es zu einem hervorragenden Werkzeug für die Verwendung beim Skripting, Debuggen und forensischen Analysen usw.

Beispiele für Curl-Befehle

Mal sehen, was Sie mit Curl machen können.

1. Erhalten Sie eine Antwort von einem Server

Alles vom Server ist eine Antwort auf die Anfrage. Das Abrufen einer HTML-Seite ist also dasselbe wie das Herunterladen einer Datei.

Um eine HTML-Antwort von http://info.cern.c zu erhalten,

curl http://info.cern.ch/

Um die Liste der Posts als Antwort von einem Server zu erhalten (https://jsonplaceholder.typicode.com/posts),

curl https://jsonplaceholder.typicode.com/posts

Da wir wissen, wie man eine Antwort von einem Server erhält, können Sie eine Datei herunterladen ( z. B. das Google-Logo ).

curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

Der obige Befehl gibt binäre Bilddaten aus, die Sie im Terminal nicht anzeigen können. Sie müssen sie speichern und dann einen Fotobetrachter verwenden, um sie anzuzeigen.

Beachten Sie, dass anstelle der strengen Reihenfolge verschiedene Options-Flags überall im Befehl platziert werden können. Machen Sie sich also keine Sorgen, wenn Sie eine Option am Ende platziert haben, während die Beispiele das Flag am Anfang hatten.

2. Speichern Sie die Datei unter einem Standarddateinamen

Jede Datei, die im Internet bereitgestellt wird, hat einen Dateinamen. Um denselben Dateinamen wie den heruntergeladenen Dateinamen zu verwenden, verwenden Sie das Flag -O.

curl -O http://www.google.com/robots.txt

3. Speichern Sie die Datei unter einem benutzerdefinierten Namen

Um den Dateinamen unter Ihrem eigenen benutzerdefinierten Namen zu speichern, verwenden Sie -o Flag, gefolgt (unbedingt) von einem benutzerdefinierten Namen.

curl -O http://www.google.com/robots.txt googleRobots.txt

4. Mehrere Dateien herunterladen

Um mehrere Dateien herunterzuladen, trennen Sie sie durch ein Leerzeichen.

curl url1 url2 url3

Wenn Sie das Flag -O für alle URLs verwenden möchten, verwenden Sie

curl url1 url2 url3 -O -O -O 

Die gleiche Problemumgehung sollte für alle Flags durchgeführt werden. Dies liegt daran, dass das erste Vorkommen eines bestimmten Flags für die erste URL gilt, das zweite Flag für die zweite URL und so weiter.

5. Laden Sie eine Reihe von Dateien herunter

curl hat die eingebaute Fähigkeit, eine Reihe von Dateien vom Server herunterzuladen. Dies kann anhand des folgenden Beispiels veranschaulicht werden.

curl http://www.google.com/logo/logo[1-9].png

Obiger Befehl lädt Dateien von logo1.png, logo2.png, logo3.png und bis zu logo9.png herunter.

6. Laden Sie eine Datei nur herunter, wenn sie neu ist

Um eine Datei nur herunterzuladen, wenn die Änderungszeit der Datei nach der angegebenen Zeit liegt.

curl url -z "DD MMM YY MM:HH:SS"

7. Download fortsetzen

Wenn Sie eine Datei bereits teilweise übertragen haben, können Sie die Übertragung mit dem Flag -C fortsetzen. Der Offset, ab dem die Übertragung fortgesetzt werden soll, sollte als Parameter an das Flag -C übergeben werden.

curl -C 1024 http://seeni.linuxhandbook.org/files/largeFile.mpv -O

8. Laden Sie eine Datei hoch

Um eine Datei auf den Server hochzuladen, muss das Flag -T gefolgt vom Dateipfad auf Ihrem lokalen System verwendet werden.

curl -T uploadFile.txt http://upload.linuxhandbook.org/files

9. Eine Datei löschen

Um eine Datei namens deleteFile.txt auf einem Server zu löschen, kann man das Flag -X verwenden, das für jedes HTTP-Verb / jede HTTP-Methode (wie GET, POST, PUT, DELETE, PATCH) vorgesehen ist. Die meisten FTP-Server haben die DELETE-Methode konfiguriert, wenn nicht alle erweiterten HTTP-Methoden.

curl -X DELETE http://upload.linuxhandbook.org/files/deleteFile.txt

Sie können den obigen Befehl auch für jede HTTP-Methode ändern, um die entsprechende Aufgabe auszuführen. Wenn Ihr Server beispielsweise die TRUNCATE-Methode zulässt (dies ist eine erfundene HTTP-Methode, keine Standardmethode), die nur den Inhalt in der Datei und nicht die Datei entfernt, kann man den Befehl ähnlich dem folgenden verwenden.

curl -X  TRUNCATE http://upload.linuxhandbook.org/files/mysql.dump

Oben erwähnt sind die Hauptverwendungen von Curl. Aber es könnte Schwierigkeiten geben, die bekämpft werden müssen, wie Umleitungen, Benutzerauthentifizierung, SSL-Zertifikate usw. Wir können sie Add-Ons nennen, da sie nur optional sind, aber dennoch für bestimmte Zwecke entscheidend bleiben. Sehen wir uns im nächsten Abschnitt einige dieser Addons an und wie man damit umgeht.

10. Vermeiden Sie Weiterleitungen

Wenn Sie http://www.google.com anfordern, wird Ihnen nur die regionale Seite wie www.google.co.in angezeigt. Dies geschieht mit Hilfe von Weiterleitungen (HTTP-Pakete mit Statuscodes im Bereich 300-399).

Mit der Option L.

können Sie Umleitungen vermeiden
curl -L  http://www.google.com

11. Authentifizierung

Wenn der Server so konfiguriert ist, dass er nur bestimmten Personen mit Anmeldeinformationen dient, werden ihnen Benutzername und Passwort bereitgestellt. Man kann sich mit Hilfe von -u flag einloggen.

curl -u username:password http://seeni.linuxhandbook.org/files/tasks.txt

12. Datenübertragung einschränken

Wenn Sie ein Datenübertragungslimit festlegen möchten, verwenden Sie das Flag –limit-rate. Der folgende Befehl versucht, die Datei mit einer Ratenbegrenzung von 10 KB herunterzuladen.

curl --limit-rate 10K http://seeni.linuxhandbook.org/files/logoDetails.tgz

13. Übertragungsstatus anzeigen/ausblenden

Wenn die Antwort vom Terminal umgeleitet wird, z. B. Herunterladen, Hochladen, dann zeigt curl automatisch die Status-/Fortschrittsanzeige für die Übertragung an.

Wenn Sie die Fortschrittsanzeige nicht sehen möchten, hängen Sie den Befehl einfach mit dem Flag -s an. Für Antworten, die an das Terminal gerichtet sind, wird kein Fortschritt angezeigt.

14. SSL-Zertifikate ignorieren

Erinnern Sie sich an die Situationen, in denen Sie dem Sicherheitszertifikat eine Ausnahme gewähren müssen, um einige Websites zu besuchen? Wenn Sie den Quellen vertrauen und eine Datenübertragung durchführen möchten, können Sie die SSL-Zertifikatsvalidierung ignorieren, indem Sie das Flag -k verwenden.

curl -k https://notSoSecure.org/files/logoDetails.tgz

15. Holen Sie sich auch Header-Informationen

Um die Header-Informationen zusammen mit den übertragenen Daten anzuzeigen, verwenden Sie das Flag -i.

curl -i http://www.google.com/robots.txt

16. Nur Header-Informationen abrufen

Wenn Sie nur die Header und nicht die Daten wollen, verwenden Sie das Flag -I

curl -I http://www.google.com/robots.txt

17. User-Agent ändern

Einige Websites und Server erlauben bestimmten Arten von Geräten nicht, auf ihre Systeme zuzugreifen. Aber woher wissen sie, dass wir eine bestimmte Art von Gerät verwenden? Dies liegt am User-Agent-HTTP-Header-Feld. Wir können diesen User Agent mit dem Flag -A ändern.

curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png

18. Senden von Daten an den Server

Wenn der Server einige Daten wie Token oder API-Schlüssel benötigt, verwenden Sie das Flag -d, um die Daten zu senden. Daten, die gesendet werden müssen, sollten dem Flag im Befehl folgen. Man kann „&“ verwenden, um mehrere Daten zu kombinieren. Dies geschieht normalerweise durch GET- und POST-Anforderungen in Browsern. Dies ist eine der Möglichkeiten, wie Sie Ihre Formularinformationen senden können.

curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent

19. Cookies in eine Datei schreiben

Cookies sind einige kleine Informationen, die es ermöglichen, eine Sitzung mit einem zustandslosen HTTP-Protokoll aufrechtzuerhalten. Wenn Sie mehr über Cookies erfahren möchten, lesen Sie diese großartige Ressource.

Um Cookies in eine Datei zu schreiben, sollte das Flag -c gefolgt vom Dateinamen des Cookies verwendet werden.

curl -c googleCookie.txt http://www.google.com/files

20. Lesen von Cookies aus einer Datei

Um ein Cookie aus der Datei zu lesen, kann das Flag -b gefolgt vom Cookie-Dateinamen verwendet werden.

curl -b googleCookie.txt http://www.google.com/files

Beachten Sie, dass das Flag -b nur das Cookie aus der Datei liest. Wenn der Server also ein weiteres Cookie sendet, müssen Sie möglicherweise die Option -c verwenden, um sie zu schreiben.

21. Starten Sie eine neue Sitzung

Wenn Sie eine neue Sitzung starten möchten, indem Sie die Cookies verwerfen, verwenden Sie das Flag -j. Es startet eine neue Sitzung, auch wenn Sie die Cookie-Datei zum Lesen mit dem Flag -b angegeben haben.

curl -b googleCookie.txt http://www.google.com/files -j

Herzliche Glückwünsche! Du hast es bis zum Ende geschafft. Wenn Sie diesen Artikel nützlich finden, teilen Sie ihn mit Ihren Freunden und folgen Sie uns in den sozialen Medien. Wenn Sie Vorschläge zu diesem Artikel oder einem anderen Thema haben, können Sie diese gerne unten hinterlassen.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Verwendung von IP Command unter Linux mit Beispielen

  3. Linux-Alias-Befehl:Verwendung mit Beispielen

  4. Sortierbefehl in Linux mit Beispielen

  5. chattr-Befehl unter Linux mit Beispielen

Linux-WC-Befehl mit Beispielen

Lernen Sie mit diesen Beispielen, den Chmod-Befehl zu verwenden

Verwendung des Linux-mv-Befehls mit Beispielen

Linux-Mount-Befehl mit Beispielen

gawk Linux-Befehl mit Beispielen

Linux-make-Befehl mit Beispielen