Holen Sie sich cURLy: 10 nützliche Dinge, die Sie mit cURL tun können

Holen Sie sich cURLy: 10 nützliche Dinge, die Sie mit cURL tun können

Wenn wir anfangen, etwas über Befehlszeilentools zu lernen, neigen wir dazu, sie als einen einzigen Zweck zu betrachten. Das hat man dir beigebracht





cat

druckt Dateiinhalte,





ls

listet alle Elemente in einem Verzeichnis auf, und





du

zeigt die Speicherplatznutzung an. Viele Befehlszeilentools haben jedoch Dutzende von Optionen, die alle in ihren

man

Dateien. Einige von ihnen können Wunder bewirken, wenn sie mit anderen Befehlen kombiniert werden.



Natürlich ist es unvernünftig zu erwarten, dass sich jeder an jede einzelne Option erinnern sollte. In diesem Sinne ist es gut, unsere gelegentlich aufzufrischen Kenntnisse der Linux-Befehle , weil Sie möglicherweise neue Verwendungsmöglichkeiten für sie entdecken.

Dieses Mal konzentrieren wir uns auf cURL , ein Tool zum Übertragen von Daten über eine Reihe von Internetprotokollen wie HTTP(S), FTP, Telnet, LDAP, IMAP, POP3, SMTP und mehr.





Vereinfacht gesagt führt cURL verschiedene Anfragen von einem Client an einen Server aus und stellt eine Verbindung zwischen ihnen über ein bestimmtes Protokoll und die dazugehörigen Methoden her. Als HTTP-Client kann cURL beispielsweise eine Anforderung zum Anzeigen oder Herunterladen von Inhalten (GET-Anforderungsmethode) oder zum Posten von Inhalten über ein Formular auf einer Website (POST-Anforderungsmethode) senden. Viele Webanwendungen und Dienste ermöglichen es cURL, mit ihren APIs (Application Programming Interface) zu interagieren.

Da sich ihre Funktionalität teilweise überschneidet, werden cURL und wget oft miteinander verglichen. Beide Tools können Inhalte aus dem Internet herunterladen, aber wget unterstützt rekursive Downloads, Web-Scraping und fühlt sich im Allgemeinen einfacher an. Wenn Sie nur Dateien vom Terminal herunterladen möchten, ist wget wahrscheinlich die bessere Wahl.





Auf der anderen Seite, wenn Sie erweiterte HTTP-Authentifizierungsmethoden benötigen und Dateien hochladen und herunterladen möchten, lohnt es sich, cURL zu lernen. Außerdem unterstützt wget nur HTTP(S) und FTP, während cURL eine Vielzahl von Protokollen abdeckt. Das bedeutet, dass cURL mehr coole Sachen machen kann – und hier sind zehn Beispiele, um dies zu beweisen.

1. Holen Sie sich den Wetterbericht

Wenn Ihnen jemand sagt, Sie sollen das Wetter vom Terminal aus überprüfen, erwarten Sie langweilige Zahlen. Nicht mit diesem Befehl.

curl http://wttr.in/LOCATION

Die Informationen werden von einer CLI-Anwendung namens . bereitgestellt wir gehen , aber wenn Sie es nicht installieren möchten, kann cURL die Vorhersage von seinem Web-Frontend wttr.in abrufen. Sie benötigen lediglich den Ort, für den Sie die Vorhersage wünschen. Geben Sie einfach den Namen einer Stadt, ihren Flughafencode oder Ihre aktuelle IP-Adresse ein. Eine neue Funktion zeigt die Informationen zu den Mondphasen an, wenn Sie Folgendes eingeben:

curl wttr.in/Moon

2. Dateien herunterladen und Downloads fortsetzen

Das Herunterladen von Dateien erfolgt normalerweise im Browser. Manchmal möchten Sie einen Download-Manager verwenden; B. beim gleichzeitigen Herunterladen mehrerer Dateien oder wenn Sie Downloads anhalten möchten. Obwohl cURL keine beliebte Wahl für gleichzeitige Downloads ist (wget wird stattdessen empfohlen), können Sie es dennoch für diesen Zweck verwenden, indem Sie seine leistungsstarken Optionen (Switches) kombinieren. Zuerst benötigen Sie einen direkten Link zu der Datei. In diesem Beispiel verwenden wir ein PDF des Linux Voice-Magazins.

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

Der Schalter O in Großbuchstaben (-O) bewirkt, dass cURL die Datei mit dem Standarddateinamen speichert (normalerweise der aus dem Link selbst). Wenn Sie es unter einem anderen Namen speichern möchten, verwenden Sie Kleinbuchstaben o gefolgt vom neuen Namen:

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

Standardmäßig werden die Dateien im aktuellen Verzeichnis gespeichert (überprüfen Sie es mit dem

pwd

Befehl). Um sie an anderer Stelle zu speichern, geben Sie den Pfad nach dem Schalter -o an. Der Schalter -C - ermöglicht es cURL, den Download fortzusetzen. Sie würden es anhalten, indem Sie im Terminal Strg + C drücken, und fortfahren, indem Sie denselben Download-Befehl erneut ausführen:

cURL zeigt den Download-Fortschritt in einem tabellenähnlichen Format an, mit Spalten, die Informationen über Download-Geschwindigkeit, Gesamtdateigröße, verstrichene Zeit und mehr enthalten. Wenn Ihnen dies nicht gefällt, können Sie sich für einen einfacheren Fortschrittsbalken entscheiden, indem Sie Ihrem cURL-Befehl -# oder --progress-bar hinzufügen.

Um mehrere Dateien gleichzeitig herunterzuladen, listen Sie einfach die Links nacheinander auf:

curl -O file1.txt -O file2.pdf -O file3.zip

Mit Hilfe anderer Befehlszeilentools können wir alle PNG- und JPG-Bilder aus einem Tumblr-Blog stapelweise herunterladen:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

In diesem Fall,

cut

und

grep

sammelt Informationen über Dateinamen und formatiert sie so, dass nur Dateien mit den angegebenen Erweiterungen angezeigt werden. Wenn Sie den Befehl ohne die letzte Pipe ausführen:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

Sie erhalten lediglich eine Liste der Dateien, die unseren Kriterien entsprechen, werden jedoch nicht heruntergeladen. cURL kann eine Liste von Bildern von einer Reihe von Seiten abrufen, vorausgesetzt, der Blog verwendet die Standard-Paginierung:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

Sie können den Bereich ändern, indem Sie die Zahlen in eckigen Klammern ändern. Auch hier würde dieser Befehl nur die Bilder auflisten; Um sie herunterzuladen, führen Sie den vollständigen Befehl in dem Verzeichnis aus, in dem Sie die Bilder speichern möchten:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

Wenn du dich gut auskennst Reguläre Ausdrücke , können Sie das Aussehen und die Effizienz dieses Befehls verbessern und das Ergebnis in den Kommentaren teilen.

3. Dateien auf einem FTP-Server verwalten

Heutzutage hört man nicht viel über FTP, aber das bedeutet nicht, dass es veraltet ist. Tatsächlich teilen viele Open-Source-Projekte und Linux-Distributionen ihre Software auf FTP-Servern. Da FTP von cURL unterstützt wird, können Sie es als einfachen FTP-Client zum Hoch- und Herunterladen von Dateien verwenden. Sie können die Dateien auf einem FTP-Server durchsuchen, indem Sie auf die Verzeichnisse zugreifen:

curl ftp://ftp.debian.org/debian/

Um ein Unterverzeichnis einzugeben, geben Sie seinen Namen gefolgt von einem Schrägstrich (/) ein.

Das Herunterladen von Dateien ähnelt den im vorherigen Abschnitt beschriebenen HTTP-Downloads. Sie können entweder -o oder -O verwenden und -C - hinzufügen, wenn Sie Downloads anhalten möchten.

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

Obwohl cURL keine rekursiven Downloads unterstützt (denken Sie daran, wget tut dies!), kann es dennoch eine Reihe von Dateien gleichzeitig herunterladen. Einzige Bedingung ist, dass die Dateinamen einem Muster folgen. Zum Beispiel könnten wir von einem Wallpaper-Hosting-Server herunterladen, auf dem die Wallpaper alle 'wallpaperNUMBER' heißen:

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

Einige FTP-Server erfordern eine Authentifizierung, bevor Sie Dateien herunterladen können. Mit cURL können Sie sich mit der Option -u (Benutzer) anmelden:

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

Sie können Dateien auch mit der Option -T (Übertragung) auf einen FTP-Server hochladen:

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

Hier können Sie auch mehrere Dateien als Bereich definieren. Diese Funktion wird manchmal als „globbing“ bezeichnet. Wenn die Dateinamen keinem Muster folgen, listen Sie sie einfach in geschweiften Klammern auf (

-T '{file1.txt,image27.jpg}'

). Umgekehrt, wenn sie ähnliche Namen haben, wenden Sie die gleiche Logik aus dem Tumblr-Download-Beispiel an und verwenden Sie eckige Klammern (

-T 'photo[1-50].jpg'

). Stellen Sie sicher, dass Sie den vollständigen Pfad zu den Dateien angeben, wenn sie sich nicht in Ihrem aktuellen Verzeichnis befinden.

4. Überprüfen Sie, ob eine Website ausgefallen ist

Das haben wir alle schon durchgemacht. Eine Website, die Sie unbedingt brauchen, funktioniert plötzlich nicht mehr. Dann wird Facebook nicht geladen. Was tun Sie, wenn Sie mit einem echten First-World-Problem konfrontiert sind?

Sie können es googeln, einen Freund bitten, es für Sie zu testen, oder eine dieser Single-Serving-Sites verwenden, die Ihnen mitteilen, ob eine Website ausgefallen ist. Oder Sie könnten einfach das Terminal starten und cURL ausführen:

curl -Is https://www.twitter.com -L | grep HTTP/

Der Schalter für Großbuchstaben I (-I) überprüft den HTTP-Header einer Webseite, und die Option -L (Standort) wird hinzugefügt, damit cURL Umleitungen folgt. Das bedeutet, dass Sie nicht die vollständige Facebook-URL eingeben müssen. einfach schreiben facebook.com und cURL kümmert sich dank -L um den Rest. Wenn Umleitungen vorhanden sind, werden diese mit ihrem eigenen HTTP-Status angezeigt.

Die Nachricht, die uns interessiert, ist '200 OK', was bedeutet, dass mit der Website alles in Ordnung ist. Wenn es tatsächlich unten ist, sehen Sie etwa Folgendes:

HTTP-Statuscodes sind nur so informativ, wie es Ihr Verständnis zulässt. Diese Methode ist nicht ganz zuverlässig, da eine Website möglicherweise einen Statuscode zurückgibt, der auf eine erfolgreich verarbeitete Anfrage hinweist, diese jedoch leer ist, wenn Sie sie im Browser öffnen. Dennoch sollte es in den meisten Fällen der realen Situation entsprechen und Sie wissen lassen, was oben – oder unten – ist.

5. Erweitern Sie verkürzte URLs

Gekürzte URLs sind nicht von Natur aus schlecht. Ohne sie wäre es schwierig, Links auf Twitter und anderen zeichenbegrenzten sozialen Netzwerken zu teilen. Einige Dienste zur URL-Kürzung bieten auch nützliche Analysen. Aber es besteht immer das Risiko, dass jemand versucht, schädliche Inhalte hinter einer verkürzten URL zu verbergen, oder dass ein Troll einen Rickroll (oder etwas viel, viel Schlimmeres) maskiert. Wenn Sie aus irgendeinem Grund jemals Verdacht auf eine verkürzte URL haben, kann cURL Ihnen helfen, sie zu erweitern und herauszufinden, wohin sie genau führt:

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

oder

curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';

Sie können cURL kombinieren mit

grep

oder

sed

; Der Hauptunterschied liegt in der Formatierung. Sed ist eines dieser Tools, die jeder Linux-Benutzer kennen sollte, und es ergänzt cURL in diesem und einigen anderen Anwendungsfällen. Vergessen wir nicht, dass cURL Dateien von einer verkürzten URL herunterladen kann (vorausgesetzt, die URL verweist tatsächlich auf eine Datei):

curl -L -o filename.txt http://short.url

Die Syntax ist dieselbe wie bei anderen cURL-Downloads, und die Option -L sorgt für die Umleitung von einer verkürzten URL auf die ursprüngliche.

6. Zeigen Sie Ihre Wertschätzung für ASCII-Kunst

Zugegeben, das ist nicht besonders nützlich, aber es sieht cool aus. Mit der Hilfe von

pv

, ein Dienstprogramm zur Überwachung des Datenfortschritts, kann cURL ASCII-Animationen im Terminal anzeigen.

curl -s http://artscene.textfiles.com/vt100/wineglas.vt | pv -L9600 -q

Die Optionen -s und -q halten beide Befehle im stillen (stillen) Modus. Die Option -L bezieht sich hier auf den Befehl pv und ermöglicht Ihnen die Änderung der Datentransferrate in Bytes pro Sekunde. Mit anderen Worten, wenn sich die Animation zu schnell oder zu langsam bewegt, versuchen Sie, mit dieser Zahl zu spielen. Abgesehen von Animationen kann cURL einfache, statische ASCII-Kunst anzeigen:

Das Web hat viele Websites mit allen Arten von ASCII-Kunst: von erstaunlich detaillierten, hochwertigen Stücken bis hin zu seltsamem, albernem und sogar NSFW-Material. Diese digitale Kunsttechnik stammt aus den 1960er Jahren und ist heute Teil der Internetkultur und -geschichte, die in zahlreichen Sammlungen und Werkzeugen am Leben gehalten werden, die es Ihnen ermöglichen Konvertieren von Text und Bildern in ASCII-Grafiken . Sie können es verwenden, um Ihr Terminal zu dekorieren oder Ihren Freunden einen Streich zu spielen – was auch immer Ihr Boot schwimmt.

7. Experimentieren Sie mit Social Media

Die Nutzung sozialer Medien über das Terminal ist nichts Neues – wir haben Ihnen bereits Twitter-Befehlszeilen-Clients für Linux gezeigt. Obwohl Sie wahrscheinlich nicht zu cURL als Ihrem Online-Socializing-Tool wechseln werden, ist es gut zu wissen, dass Sie damit auf Facebook posten können, wie hier beschrieben . Sie werden feststellen, dass cURL dies technisch nicht allein tut; eine Kombination von Werkzeugen erledigt die Arbeit.

Bei Twitter war es früher möglich, es mit cURL direkt vom Terminal aus zu verwalten. Dann änderte Twitter seine API, und jetzt gibt es einen speziellen cURL-Client für Twitter namens Twurl. Es ist nicht die einfachste Methode, insbesondere für Anfänger, und erfordert eine Authentifizierung bei der Twitter-Werbeplattform. Dies ist sinnvoll, wenn Sie ein Entwickler oder ein fortgeschrittener Benutzer sind, aber nicht so sehr, wenn Sie nur über die Befehlszeile twittern möchten. Dennoch gibt es Möglichkeiten, mit Twitter Spaß zu haben. Sie können cURL verwenden, um die Anzahl der Follower eines Benutzers zu überprüfen:

curl -s https://twitter.com/username | grep -o '[0-9,]* Followers';

8. Finden Sie Ihre externe IP-Adresse

Ihre lokale IP-Adresse zu finden ist ganz einfach – führen Sie einfach aus

beste Website, um c++ zu lernen
ifconfig

oder konsultieren Sie Ihr Netzwerkverwaltungs-Applet. Für die externe IP verwenden die meisten Leute spezialisierte Websites, um diese Informationen zu erhalten. Dennoch sind einige Dinge einfach vom Terminal aus zu erledigen, und dies könnte einer davon sein. Sie können auch einen Alias ​​für den cURL-Befehl erstellen. Es gibt mehrere Online-Dienste, die mit cURL zusammenarbeiten:

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

Einige können Ihnen mehr über jede externe IP-Adresse sagen:

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

Sie müssen lediglich einen Dienst auswählen. Wenn Sie unentschlossen sind, fügen Sie sie einfach alle als Backup-Lösungen in Ihren Alias ​​ein.

9. Text einfügen und Bilder teilen

Den Arbeitsablauf zu unterbrechen ist nie gut für Produktivität und Konzentration. Wenn Sie die meiste Arbeit im Terminal erledigen, kann es unpraktisch, wenn nicht sogar ärgerlich sein, zu einem Browser zu wechseln, nur um einige Dateien zu teilen. Glücklicherweise wurden einige Pastebin- und File-Sharing-Dienste für die Arbeit mit cURL entwickelt, sodass Sie sie ohne Benutzerkonto direkt vom Terminal aus verwenden können.

Clbin und Sprunge.us haben eine ähnliche Syntax. Mit Clbin leiten Sie eine lokale Datei oder die Ausgabe eines Befehls weiter und es gibt einen Link zu Ihrem hochgeladenen Text zurück:

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

Es unterstützt auch Bild-Uploads (PNG, JPG und GIF):

curl -F 'clbin=@image.png' https://clbin.com

Wenn Sie stattdessen Sprunge.us verwenden möchten, geben Sie Folgendes ein:

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.us unterstützt derzeit keine Bild-Uploads.

Ix.io basiert auf dem gleichen Prinzip wie die beiden vorherigen Dienste, mit einigen zusätzlichen Funktionen. Geben Sie Folgendes ein, um eine Datei hochzuladen:

cat file.txt | curl -F 'f:1=<-' ix.io

oder

curl -F 'f:1=@file.txt' ix.io

Wenn Sie einen Link zum hochgeladenen Text erhalten, können Sie dessen URL ändern, um Syntaxhervorhebung anzuzeigen (mit

ix.io/yourpaste+

,

ix.io/yourpaste/

, oder

ix.io/yourpaste/language

für eine bestimmte Skript- oder Programmiersprache). Es ist auch möglich zu begrenzen, wie oft ein Link angezeigt werden kann, indem Sie die Anzahl nach dem ändern

'read:1'

Wert:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

Ix.io ist in erster Linie für textbasierte Dateien wie Quellcode oder Systemprotokolle gedacht. Wenn Sie verschiedene Dateiformate hochladen möchten, verwenden Sie Transfer.sh . Es unterstützt Bilder, Dateiverschlüsselung und hält Ihre Dateien zwei Wochen lang online. Sie können bis zu 5 GB Daten auf Transfer.sh hochladen. Hier ist wie:

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

Sie können den Namen der hochgeladenen Datei frei definieren. Um mehrere Dateien hochzuladen, listen Sie diese mit der Option -F nacheinander auf:

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10. Überprüfen Sie ungelesene E-Mails in GMail

Es gibt ein enormes Potenzial, in cURL freigeschaltet zu werden, wenn Sie bereit sind, sich mit Details zu E-Mail-bezogenen Protokollen (SMTP, POP, IMAP) zu befassen. Für einen schnellen E-Mail-Check reicht dieser Befehl. Es analysiert Ihren GMail-Feed und formatiert die Ausgabe (E-Mail-Betreff und -Absender) mit

tr

,

awk

,

sed

und/oder

grep

Befehle. Beachten Sie, dass diese Lösung äußerst unsicher ist, da Ihre Anmeldeinformationen für jeden mit Zugriff auf Ihr Terminal verfügbar sind. Die erste Version zeigt den Namen des Absenders an, während die zweite nur ungelesene E-Mail-Betreffs druckt:


curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | tr -d '
' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n 's/

curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | grep -oPm1 '(?<=)[^<]+' | sed '1d'

Was kann cURL noch tun?

cURL wird selten als eigenständiger Befehl verwendet. Die meisten Leute verwenden es als Teil eines Skripts oder einer Anwendung. Dennoch ist es möglich, mit cURL praktische Einzeiler zu erstellen, wie wir hier gezeigt haben. Viele dieser Beispiele wurden von CommandLineFu übernommen, einer fantastischen Quelle für intelligente Befehlszeilen-Hacks, und Sie sollten sie nicht als in Stein gemeißelt betrachten.

Mit genügend Wissen und Erfahrung können wir jeden Befehl modifizieren, anders formatieren oder komplett durch eine bessere Lösung ersetzen. Können Sie unsere vorgeschlagenen cURL-Befehle verbessern? Kennen Sie andere coole Anwendungen für cURL? Teile deine Tipps in den Kommentaren.

Bildnachweis: Inside Einführung in die Befehlszeile von Osama Khalid über Flickr.

Teilen Teilen Tweet Email Löschen Sie diese Windows-Dateien und -Ordner, um Speicherplatz freizugeben

Müssen Sie Speicherplatz auf Ihrem Windows-Computer freigeben? Hier sind die Windows-Dateien und -Ordner, die sicher gelöscht werden können, um Speicherplatz freizugeben.

Weiter lesen
Verwandte Themen
  • Linux
  • FTP
  • Download-Verwaltung
  • Terminal
Über den Autor Ivana Isadora Devcic(24 Artikel veröffentlicht)

Ivana Isadora ist freiberufliche Autorin und Übersetzerin, Linux-Liebhaberin und KDE-Fangirl. Sie unterstützt und fördert freie und Open-Source-Software und ist immer auf der Suche nach frischen, innovativen Apps. Finden Sie heraus, wie Sie mit uns in Kontakt treten können Hier .

Mehr von Ivana Isadora Devcic

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren