logo

Curl Commando in Linux met voorbeelden

De Linux curl-opdracht wordt gebruikt om gegevens te downloaden of te uploaden naar een server via ondersteunde protocollen zoals HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP, enz. Het is een hulpprogramma op afstand, dus het werkt zonder gebruikersinteractie.

De gegevensoverdracht van de ene plaats naar de andere is een van de vitale en meest gebruikte taken van een computersysteem. Er zijn echter veel GUI-tools beschikbaar voor gegevensoverdracht. Maar als je op de opdrachtregel werkt, wordt het een beetje ingewikkeld. Met het curl-hulpprogramma kunnen we gegevens overbrengen via de opdrachtregel.

Curl is een opdrachtregelhulpmiddel om gegevens, zoals bestanden met URL-syntaxis, op te halen en te verzenden. Het ondersteunt alle protocollen die door libcurl worden ondersteund, omdat het libcurl gebruikt. Curl biedt ondersteuning voor HTTPS en implementeert SSL-certificaatverificatie wanneer standaard een veilig protocol wordt vermeld, zoals HTTPS. Curl zal het externe servercertificaat meenemen en het CA-certificaat controleren om de geldigheid van de externe server te voorkomen en te garanderen dat de externe server de server is waarnaar gevraagd wordt wanneer curl via HTTPS naar een externe server linkt.

Er zijn veel opties om een ​​CA-certificaat te definiëren, zoals --kapath En --cacert . De optie, d.w.z. --cacert, kan worden gebruikt voor het specificeren van de locatie van het bestand van het CA-certificaatarchief. Als er geen CA-certificaatbestand beschikbaar is op het Windows-platform, zoekt curl naar de 'curl-ca-bundle.crt' CA-certificaatbestandsnaam in de onderstaande volgorde:

  • Directory waarin het curl-programma aanwezig is.
  • Huidige werkmap.
  • Systeemmap (Windows).
  • Directory (Windows).
  • Mappen worden vermeld in de %PATH% omgevingsvariabelen.

Curl geeft een foutmelding wanneer de externe server een zelfondertekend certificaat gebruikt of wanneer het externe servercertificaat niet is ondertekend via een CA die wordt vermeld in het CA-certificaatbestand. --insecure of -k optie kan worden gebruikt om certificaatverificatie over te slaan. Het externe CA-certificaat kan als alternatief worden opgenomen in het CA-certificaatarchiefbestand als de externe server geldig is.

Curl biedt een hele reeks handige trucs, zoals het hervatten van bestandsoverdracht, cookies, SSL-verbindingen, HTTP-post, FTP-upload, gebruikersauthenticatie, proxy-ondersteuning en meer. Curl wordt door libcurl gemechaniseerd voor elk transfergerelateerd aspect.

Wat is libcurl?

libcurl is een gratis URL-overdrachtsbibliotheek aan de clientzijde. Het ondersteunt SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP-proxytunneling, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT en cookies. De bibliotheek ondersteunt ook gebruiker-plus-wachtwoord-authenticatie, proxy's, LDAPS, HTTPS-certificaten, op HTTP-formulieren gebaseerde uploads, FTP-uploads, hervatting van bestandsoverdracht, TFTP, Telnet, SFTP en bestands-URL-schema.

libcurl is compact. Het creëert en werkt op identieke wijze op verschillende platforms, waaronder Microsoft Windows, UnixWare, Ultrix, Tru64, Symbian, Solaris, RISC OS, QNX Neutrino, OS/2, OpenBSD, NetWare, NetBSD, macOS, Linux, IRIX, iOS, HURD, HP -UX, FreeBSD, DOS, Darwin, OpenVMS, BlackBerry 10, BlackBerry Tablet OS, BeOS, Android, AmigaOS en AIX.

De libcurl-bibliotheek is IPv6-compatibel, thread-safe en gratis. Bindingen zijn ook beschikbaar voor meer dan 50 talen, waaronder Python, PHP, Java en C/C++.
De libcurl-bibliotheek ondersteunt SChannel, gskit op IBM i, NSS, mbed TLS, GnuTLS op Windows, Secure Trasport op iOS en macOS, TLS/SSL via OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl en Boringssl.

Syntaxis:

De basissyntaxis voor het gebruik van curl is als volgt:

 curl [options] [URL...] 

Uit de bovenstaande syntaxis,

URL:

De URL-syntaxis is een algemene protocolafhankelijke URL. We kunnen als volgt meerdere URL's opgeven:

 http://site.{one,two,three}.com 

Opties:

De opdracht curl ondersteunt de volgende opdrachtregelopties:

--abstract-unix-socket: Het wordt gebruikt om verbinding te maken via een abstracte Unix-domeinsocket in plaats van een netwerk.

--anyauth: Het wordt gebruikt om curl te bevelen voor het authenticeren van de methode op zichzelf voor het gebruik van de veiligste methode. Dit hulpprogramma is een optioneel hulpprogramma '--basic, --digest, --ntlm, and onderhandelen', dat wordt gebruikt om een ​​specifieke authenticatiemethode in te stellen.

-a, --toevoegen: Het wordt gebruikt om bestanden te uploaden. Het voegt het bestand toe in plaats van het te overschrijven. Als het opgegeven bestand niet op de server bestaat, wordt er een aangemaakt.

cm naar voet en inch

--basis: Het specificeert het gebruik van HTTP-basisauthenticatie. Het is de standaardoptie van de curl-opdracht. Het is handig om de vorige instellingen te overschrijven.

--cacert : Het is gespecificeerd voor het gebruik van het specifieke certificaatbestand om de peer te verifiëren. De bestanden kunnen meerdere CA-certificaten hebben. Het standaardformaat voor de certificaten is PEM, dus alle certificaten moeten erin staan.

--kapath: Het is gespecificeerd voor het gebruik van de specifieke map om de peer te verifiëren. We kunnen meerdere paden opgeven door ze te scheiden door een dubbele punt (:), zoals 'pad: pad2:pad3'. Het standaardformaat voor de certificaten is PEM, dus alle certificaten moeten erin staan.

--cert-status: Het wordt gebruikt om de status van het servercertificaat te verifiëren. Het maakt gebruik van Certificate Status Request of OCSP-nieten TLS.

--cert-type: Het specificeert het opgegeven krulcertificaattype. Deze certificaten kunnen de indeling PEM, DER en ENG hebben. De standaardwaarde is PEM. Als het meerdere keren wordt opgegeven, wordt de laatste waarde overgenomen door de krul.

-E, --cert : Het is gespecificeerd voor het gebruik van het clientcertificaatbestand bij het ophalen van een bestand via een op SSL gebaseerd protocol zoals HTTPS, FTPS, enz.

--cijfers: Het wordt gebruikt om de cijfers te selecteren die in de verbinding moeten worden gebruikt.

--gecomprimeerd-ssh: Het wordt gebruikt om ingebouwde SSH-compressie in te schakelen. Deze optie zal een verzoek van de server aannemen, dus de server kan het wel of niet accepteren.

--gecomprimeerd: Het wordt gebruikt om een ​​gecomprimeerd antwoord aan te vragen met behulp van de curl-algoritmen en het ongecomprimeerde document op te slaan. Met deze optie wordt een rapport verzonden voor niet-ondersteunde coderingskrulling.

-K, --config: Het wordt gebruikt om een ​​tekstbestand te beschrijven voor het lezen van curl-argumenten. De curl gebruikt de opdrachtregelargumenten uit het tekstbestand.

--connect-time-out: Het wordt gebruikt om de maximale tijd in seconden op te geven voor de time-out van de curl-verbinding.

--verbinden aan : Het wordt gebruikt om een ​​verzoek te creëren voor het gegeven paar host en poort; anders zal het verbinding maken met het volgende paar. Deze optie is een handig hulpmiddel voor het doen van directe verzoeken bij een specifieke server.

-C, --vervolg-op : Het wordt gebruikt om een ​​eerdere bestandsoverdracht met de opgegeven offset voort te zetten of te hervatten.

-c, --koekjespot: Het wordt gebruikt om een ​​bepaald bestand op te geven waarnaar we na een succesvolle bewerking alle cookies willen schrijven.

-b, --cookie: Het wordt gebruikt om gegevens door te sturen naar de HTTP-server in de Cookie-header.

--create-map: Het wordt gebruikt in combinatie met de '-o? optie, het zal de vereiste lokale directoryhiërarchie creëren.

--crlf (FTP-SMTP): Het wordt gebruikt om LF tijdens het uploaden naar CRLF te converteren. Het is een handig hulpmiddel voor MVS (OS/390).

--crlbestand: Het wordt gebruikt om (in PEM-formaat) een certificaatintrekkingslijst op te geven.

--data-ascii : Het is een alias voor de ?-d? keuze.

--delegatie: Het wordt gebruikt om LEVEL in te stellen om de server te erkennen wat deze mag delegeren als het gaat om gebruikersreferenties.

--verteren: Het wordt gebruikt om HTTP Digest-authenticatie in te schakelen.

-q, --uitschakelen: Indien gebruikt als het eerste argument, zal het het curlrc-configuratiebestand negeren.

--dns-interface: Het wordt gebruikt om de server te bevestigen voor het verzenden van de uitgaande DNS-verzoeken.

--dns-servers: Het wordt gebruikt om de DNS-servers op te geven in plaats van standaardservers.

-f, --mislukt: Het wordt gebruikt om de krul stil te laten mislukken bij serverfouten.

-F, --vorm: Het wordt gebruikt om een ​​ingevuld formulier te emuleren dat door de gebruiker is ingediend.

-P, --ftp-poort: Het wordt gebruikt om de standaard luisteraarrollen om te keren bij verbinding met FTP.

--ftp-ssl-ccc-modus: Het wordt gebruikt om de CCC-modus in te stellen.

-G, --krijg: Het wordt gebruikt om gegevens op te geven met ?-d? optie die kan worden gebruikt in een HTTP GET-verzoek in plaats van een POST-verzoek.

-h, --help: Het wordt gebruikt om de helphandleiding weer te geven met een korte beschrijving van de gebruiks- en ondersteuningsopties.

-0, --http1.0: Het is gespecificeerd voor het gebruik van HTTP-versie 1.0.

--negeer-inhoud-lengte: Het wordt gebruikt om de Content-Length-header te negeren.

-i, --include: Het wordt gebruikt om de HTTP-antwoordheaders op te nemen.

-4, --ipv4: Het wordt gebruikt om namen om te zetten in IPv4-adressen.

-6, --ipv6: Het wordt gebruikt om namen om te zetten in IPv6-adressen.

Protocollen van krul

Curl ondersteunt verschillende protocollen:

    DICT:Het stelt ons in staat woorden op te zoeken met alleen woordenboeken.FTP (S):Curl ondersteunt het FTP-protocol met behulp van veel hendels en aanpassingen. Met of zonder TLS.BESTAND:Hiermee kunnen we het lokale bestand schrijven en lezen. Curl staat geen externe toegang toe tot file://URL, maar het werkt wel als het actief is op Microsoft Windows met de native UNC-aanpak.GOPHER (S):Het haalt bestanden op.HTTP(S):Curl ondersteunt HTTP met behulp van talloze variaties en opties. Het kan de HTTP-versies 0.9, 1.0, 1.1, 2 en 3 uitspreken, afhankelijk van de nauwkeurige opdrachtregel en build-opties.IMAP (S):Curl downloadt e-mails voor ons met het mailleesprotocol. Met of zonder TLS.LDAP (S):Curl kan het opzoeken van directory's voor ons implementeren, met of zonder gebruik van TLS.MQTT:Curl ondersteunt de 3e versie van MQTT. Downloaden op MQTT is hetzelfde als 'abonneren' op elk onderwerp, en posten/uploaden is hetzelfde als 'publiceren' over welk onderwerp dan ook. Via TLS wordt MQTT niet ondersteund.POP3 (S):Downloaden via een pop3-server betekent het ontvangen van e-mail zonder of met TLS.RTMP (S):Het RTMP of Realtime Messaging Protocol wordt voornamelijk gebruikt voor serverstreamingmedia.RTSP:Curl ondersteunt de 1.0-downloads van RTSP.SCP:Curl ondersteunt de twee scp-overdrachtsversie van SCP.SFTP:Curl ondersteunt SFTP via de tweede versie van SSH.MKB (S):Curl ondersteunt de 1-versie van SMB voor downloaden en uploaden.SMTP(S):Het uploaden van inhoud naar een SMTP-server betekent het overbrengen van een e-mail zonder of met TLS.TELNET:Door Curl te informeren om een ​​telnet-URL te brengen, wordt een interactieve sessie gestart waarin het overdraagt ​​wat het leest via stdin en resulteert in wat de server het overdraagt.TFTP:Curl kan TFTP-uploads en -downloads implementeren.

Installatie van het curl-commando

De opdracht curl wordt bij de meeste Linux distributies. Maar als het systeem de krul niet standaard draagt. U moet het handmatig installeren. Om de curl te installeren, voert u de volgende opdrachten uit:

Update het systeem door de volgende opdrachten uit te voeren:

 sudo apt update sudo apt upgrade 

Installeer nu het curl-hulpprogramma door de onderstaande opdracht uit te voeren:

 sudo apt install curl 

Controleer de installatie door het onderstaande commando uit te voeren:

 curl -version 

Met de bovenstaande opdracht wordt de geïnstalleerde versie van de curl-opdracht weergegeven.

Haal de inhoud van de opgegeven URL op

Om de inhoud van een specifieke URL op te halen, voert u de opdracht curl uit, gevolgd door de URL. Overweeg het onderstaande commando:

 curl https://www.javatpoint.com/linux-tutorial 

Met het bovenstaande commando worden de paginagegevens van de opgegeven pagina opgehaald. Beschouw de onderstaande module van de uitvoer:

Linux Curl-opdracht

Uit de bovenstaande uitvoer kunnen we zien dat de paginagegevens van de opgegeven URL worden opgehaald. Om de uitvoering te stoppen, drukt u op CTRL+C.

Sla gegevens op in een specifiek bestand

Om de gegevens in een specifiek bestand op te slaan, geeft u als volgt de optie '-o' door, gevolgd door map, bestandsnaam en URL:

 curl -o / 

Overweeg het onderstaande commando:

 curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial 

Met het bovenstaande commando worden de paginagegevens opgeslagen in het bestand 'linux.html' onder de map '/home/javatpoint/Documents/'. Beschouw de onderstaande uitvoer:

Linux Curl-opdracht

Met de bovenstaande opdracht kunnen we de totale hoeveelheid gedownloade gegevens, ontvangen gegevens, gemiddelde tijd en enkele andere statistieken over de gegevens zien.

Om de gedownloade gegevens te verifiëren, opent u het bestand door de cat-opdracht uit te voeren

 cd Documents cat linux.html 

Beschouw de onderstaande uitvoermodule:

Linux Curl-opdracht

Download een bestand van internet

Een van de interessante en fascinerende toepassingen van curl is dat we een bestand van internet kunnen downloaden. Om een ​​bestand van internet te downloaden, kopieert u de downloadlink en plakt u deze met de opdracht curl. We kunnen ook andere argumenten doorgeven om het specifieker te maken. Download bijvoorbeeld de nieuwste versie van ubuntu, kopieer het download link van de ubuntu vanaf de officiële website en plak deze als volgt met de curl-opdracht:

 curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64 

Met de bovenstaande opdracht wordt Ubuntu 20.04 naar de opgegeven map gedownload. Geef de juiste bestandsextensie op; Anders wordt het bestand in een ander formaat gedownload. Beschouw de onderstaande uitvoer:

Linux Curl-opdracht

Uit de bovenstaande uitvoer wordt het bestand ubuntu.iso gedownload. We kunnen de downloadtijd, bestandsgrootte, downloadsnelheid en andere statistieken zien. Om de uitvoering te stoppen, kunt u op elk gewenst moment op de toetsen CTRL+D drukken.

Hervat de onderbroken downloads

Er bestaat een kans dat de downloads om de een of andere reden worden onderbroken. We kunnen downloads hervatten met behulp van de curl-opdracht. Om het onderbroken bestand te hervatten, geeft u de optie '-C' met de opdracht curl als volgt door:

 curl -C 

Met de bovenstaande opdracht wordt het downloaden van de opgegeven URL hervat.

Meerdere bestanden downloaden

Om meerdere bestanden te downloaden, geeft u als volgt de meerdere URL's op, gescheiden door een spatie:

 curl -O 

Met de bovenstaande opdracht worden de gegevens respectievelijk van beide URL's gedownload.

HTTP-headers opvragen

De HTTP-headers bevatten aanvullende informatie; hierdoor kan de webserver deze informatie downloaden. Om de HTTP-headers van een website op te vragen, voert u de opdracht als volgt uit met de optie '-I':

 curl -I www.javatpoint.com 

Het bovenstaande commando levert de onderstaande uitvoer op:

Linux Curl-opdracht