Linux curl Command Tutorial voor Beginners (5 Voorbeelden)

Hoewel webbrowsers het primaire medium zijn waarmee gebruikers dingen van het Internet downloaden, zijn er enkele Linux commando’s waarmee je dit ook kunt doen. Deze hulpmiddelen komen van pas op headless systemen waar geen GUI is.

In deze handleiding bespreken we zo’n commando – curl – waarmee je onder andere dingen van het Web kunt downloaden. Merk op dat de voorbeelden die in dit artikel besproken worden getest zijn op Ubuntu 16.04 LTS.

Linux commando curl

Met het curl commando kun je in Linux zowel gegevens downloaden als uploaden via de commandoregel. Hieronder volgt de syntaxis ervan:

curl [options] [URL...]

En hier is wat de man pagina over dit commando zegt:

 curl is a tool to transfer data from or to a server, using one of the
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,
TELNET and TFTP). The command is designed to work without user inter?
action.

curl offers a busload of useful tricks like proxy support, user authen?
tication, FTP upload, HTTP post, SSL connections, cookies, file trans?
fer resume, Metalink, and more. As you will see below, the number of
features will make your head spin!

curl is powered by libcurl for all transfer-related features. See
libcurl(3) for details.

Hieronder volgen enkele vraag-antwoord-achtige voorbeelden die je een beter idee moeten geven over hoe curl werkt.

Q1. Hoe werkt het commando curl?

Het basisgebruik is vrij eenvoudig – geef gewoon de URL als invoer door aan het curl commando, en stuur de uitvoer door naar een bestand.

Bijvoorbeeld:

curl http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent > test.torrent

Merk op dat je hier ook de -o optie kunt gebruiken.

-o, --output <file>
Write output to <file> instead of stdout.

Terugkomend op ons voorbeeld: terwijl de gegevens op mijn systeem gedownload werden in het ‘test.torrent’ bestand, werd op de commandoregel de volgende uitvoer geproduceerd:

Hoe het curl commando werkt

Hier is wat de man pagina zegt over deze voortgangsmeter die in de uitvoer getoond wordt:

 curl normally displays a progress meter during operations, indicating
the amount of transferred data, transfer speeds and estimated time
left, etc.

curl displays this data to the terminal by default, so if you invoke
curl to do an operation and it is about to write data to the terminal,
it disables the progress meter as otherwise it would mess up the output
mixing progress meter and response data.

If you want a progress meter for HTTP POST or PUT requests, you need to
redirect the response output to a file, using shell redirect (>), -o
[file] or similar.

It is not the same case for FTP upload as that operation does not spit
out any response data to the terminal.

If you prefer a progress "bar" instead of the regular meter, -# is your
friend.

Q2. Hoe kan ik curl dezelfde download bestandsnaam laten gebruiken?

In het vorige voorbeeld zie je dat we de gedownloade bestandsnaam expliciet moesten opgeven. Als je wilt, kun je curl echter dwingen de naam van het bestand dat gedownload wordt te gebruiken als de lokale bestandsnaam. Dit kun je doen met de -O commandolijn optie.

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

In dit geval werd dus een bestand met de naam ‘ubuntu-18.04-desktop-amd64.iso.torrent’ geproduceerd in de uitvoer op mijn systeem.

Q3. Hoe meerdere bestanden downloaden met curl?

Ook dit is niet ingewikkeld – geef gewoon de URL’s op de volgende manier door:

curl -O [URL1] -O [URL2] -O [URL3] ...

Bijvoorbeeld:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso.torrent

Hier zie je het bovenstaande commando in actie:

Hoe meerdere bestanden downloaden met curl

Zo zie je dat de voortgang van het downloaden voor beide URL’s in de uitvoer getoond werd.

Q4. Hoe los je het ‘verplaatst’ probleem op?

Soms krijg je, als je een URL doorgeeft aan het curl commando, fouten als “Moved” of “Moved Permanently”. Dit gebeurt meestal als de ingevoerde URL doorverwijst naar een andere URL. Bijvoorbeeld, je opent een website zeg oneplus.com, en die verwijst door naar een URL voor je thuisland (zoals oneplus.in), zodat je een fout krijgt als de volgende:

Hoe het 'verhuisd' probleem op te lossen

Wil je dat curl de omleiding volgt, gebruik dan in plaats daarvan de -L commandoregel optie.

curl -L http://www.oneplus.com

Q5. Hoe kan ik een download hervatten vanaf het punt van onderbreking?

Soms wordt een download tussendoor onderbroken. Om tijd en gegevens te besparen wil je natuurlijk dat, als je het opnieuw probeert,. het begint vanaf het punt waarop het onderbroken werd. Curl staat je toe dit te doen met de -C commandoregel optie.

Bijvoorbeeld:

 curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

De volgende schermafbeelding toont het curl commando dat de download hervat nadat hij onderbroken was.

Hoe een download hervatten vanaf het punt van onderbreking

Conclusie

Zo zie je maar, het curl commando is een handig hulpmiddel als je graag dingen downloadt via de commandoregel. We hebben hier nog maar aan de oppervlakte gekrast, want het gereedschap biedt nog veel meer mogelijkheden. Als je klaar bent met het oefenen van de commandoregel opties die in deze leerprogramma’s besproken zijn, kun je naar curl’s handleiding pagina gaan om er meer over te weten te komen.