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:
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:
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:
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:
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:
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: