Zoeken op website

15 tips voor het gebruik van de 'Curl'-opdracht in Linux


Halverwege de jaren negentig, toen het internet nog in de kinderschoenen stond, startte een Zweedse programmeur genaamd Daniel Stenberg een project dat uiteindelijk uitgroeide tot wat we vandaag de dag kennen als curl.

Aanvankelijk wilde hij een bot ontwikkelen die periodiek wisselkoersen van een webpagina zou downloaden en Zweedse kronen-equivalenten in Amerikaanse dollars aan IRC-gebruikers zou verstrekken.

Om een lang verhaal kort te maken: het project bloeide en er werden gaandeweg verschillende protocollen en functies aan toegevoegd – en de rest is geschiedenis. Laten we er nu met beide voeten in duiken en leren hoe we curl kunnen gebruiken om gegevens en meer over te dragen in Linux!

We hebben de volgende lijst met 15 curl-opdrachten voor u samengesteld.

1. Bekijk de curl-versie

De opties -V of --version retourneren niet alleen de versie, maar ook de ondersteunde protocollen en functies in uw huidige versie.

curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. Download een bestand

Als je een bestand wilt downloaden, kun je curl gebruiken met de opties -O of -o. De eerste zal het bestand opslaan in de huidige werkmap met dezelfde naam als op de externe locatie, terwijl de laatste u de mogelijkheid biedt een andere bestandsnaam en/of locatie op te geven.

curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. Hervat een onderbroken download

Als een download om een of andere reden werd onderbroken (bijvoorbeeld door Ctrl + c te gebruiken), kunt u deze heel gemakkelijk hervatten. Het gebruik van -C – (streepje C, spatiestreepje) vertelt curl om de download te hervatten en te beginnen waar deze was gebleven.

curl -C - -O http://yourdomain.com/yourfile.tar.gz

4. Download meerdere bestanden

Met de volgende opdracht downloadt u info.html en about.html van http://uwsite.com en http:// /mijnsite.com in één keer.

curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. Download URL's uit een bestand

Als je curl combineert met xargs, kun je bestanden downloaden uit een lijst met URL's in een bestand.

xargs -n 1 curl -O < listurls.txt

6. Gebruik een proxy met of zonder authenticatie

Als u achter een proxyserver zit die luistert op poort 8080 op proxy.uwdomein.com, doe dat dan.

curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

waar u -U user:password kunt overslaan als uw proxy geen authenticatie vereist.

7. Vraag HTTP-headers op

Met HTTP headers kan de externe webserver aanvullende informatie over zichzelf verzenden samen met het daadwerkelijke verzoek. Dit geeft de klant informatie over de manier waarop het verzoek wordt afgehandeld.

Om de HTTP-headers van een website op te vragen, doet u het volgende:

curl -I linux-console.net

Deze informatie is ook beschikbaar in de ontwikkelaarstools van uw browser.

8. Maak een POST-verzoek met parameters

Met het volgende commando worden de parameters voornaam en achternaam, samen met de bijbehorende waarden, verzonden naar https://uwdomein.com/info.php .

curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

U kunt deze tip gebruiken om het gedrag van een gewoon HTML-formulier te simuleren.

9. Download bestanden van een FTP-server met of zonder authenticatie

Als een externe FTP-server verbindingen verwacht op ftp://uwftpserver, zal de volgende opdracht uwbestand.tar.gz downloaden naar de huidige werkmap.

curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

waar u -u gebruikersnaam:wachtwoord kunt overslaan als de FTP-server anonieme aanmeldingen toestaat.

10. Upload bestanden naar een FTP-server met of zonder authenticatie

Om een lokaal bestand met de naam mylocalfile.tar.gz te uploaden naar ftp://yourftpserver met behulp van curl, doe je het volgende:

curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. Geef User-agent op

De user-agent maakt deel uit van de informatie die samen met een HTTP-verzoek wordt verzonden. Dit geeft aan welke browser de client heeft gebruikt om het verzoek te doen. Laten we eens kijken wat onze huidige curl-versie standaard gebruikt, en laten we dit later wijzigen in “Ik ben een nieuwe webbrowser”:

curl -I http://localhost --user-agent "I am a new web browser"

12. Websitecookies opslaan

Wilt u zien welke cookies naar uw computer worden gedownload wanneer u naar https://www.cnn.com surft? Gebruik de volgende opdracht om ze op te slaan in cnncookies.txt. U kunt vervolgens de cat-opdracht gebruiken om het bestand te bekijken.

curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. Websitecookies verzenden

De cookies uit de laatste tip kunt u gebruiken bij volgende verzoeken aan dezelfde site.

curl --cookie cnncookies.txt https://www.cnn.com

14. Wijzig de naamomzetting

Als u een webontwikkelaar bent en een lokale versie van uwdomein.com wilt testen voordat u deze live zet, kunt u curl op http://www.uwdomein.com instellen > naar je localhost als volgt:

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

De zoekopdracht naar http://www.uwdomein.com zal dus aan curl vertellen dat hij de site moet opvragen bij localhost in plaats van DNS of het /etc/hosts bestand te gebruiken.

15. Beperk de downloadsnelheid

Om te voorkomen dat curl uw bandbreedte in beslag neemt, kunt u de downloadsnelheid als volgt beperken tot 100 KB/s.

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Samenvatting

In dit artikel hebben we een korte geschiedenis van de oorsprong van krul gedeeld en uitgelegd hoe je deze kunt gebruiken aan de hand van 15 praktische voorbeelden.

Kent u nog andere krulopdrachten die we mogelijk in dit artikel hebben gemist? Deel ze gerust met onze community in de reacties! Ook als u vragen heeft, kunt u ons dit laten weten. Wij horen graag van u!