Linux curl-kommandot används för att ladda ner eller ladda upp data till en server via protokoll som stöds som HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP, etc. Det är ett fjärrverktyg, så det fungerar utan användarinteraktion.
Dataöverföringen från en plats till en annan är en av de vitala och mest använda uppgifterna i ett datorsystem. Det finns dock många GUI-verktyg tillgängliga för dataöverföring. Men när man arbetar på kommandoraden blir det lite komplicerat. Curl-verktyget låter oss överföra data via kommandoraden.
Curl är ett kommandoradsverktyg för att hämta och skicka data såsom filer med URL-syntax. Den stöder alla protokoll som stöds av libcurl eftersom den använder libcurl. Curl tillhandahåller sitt stöd för HTTPS och implementerar SSL-certifikatverifiering när ett säkert protokoll nämns som standard, som HTTPS. Curl tar med fjärrservercertifikatet och kontrollerar CA-certifikatet för att spara fjärrserverns giltighet från att garantera att fjärrservern är den den begär att vara när curl länkar till en fjärrserver med HTTPS.
Det finns många alternativ för att definiera ett CA-certifikat, t.ex --kapat och --cacert . Alternativet, dvs --cacert, kan användas för att specificera platsen för filen i CA-certifikatarkivet. Om en CA-certifikatfil inte är tillgänglig i Windows-plattformen kommer curl att söka efter 'curl-ca-bundle.crt' CA-certifikatfilnamnet i följande ordning:
- Katalog där curlprogrammet finns.
- Aktuell arbetskatalog.
- Systemkatalog (Windows).
- Katalog (Windows).
- Kataloger nämns i miljövariablerna %PATH%.
Curl kommer att ge ett felmeddelande när fjärrservern använder ett självsignerat certifikat eller när fjärrservercertifikatet inte är signerat via en CA som nämns i CA-certifikatfilen. Alternativet --insecure eller -k kan användas för att hoppa över certifikatverifiering. Fjärr-CA-certifikatet kan alternativt inkluderas i CA-certifikatlagringsfilen om fjärrservern är giltig.
Curl erbjuder en mängd användbara knep som CV för filöverföring, cookies, SSL-anslutningar, HTTP-inlägg, FTP-uppladdning, användarautentisering, proxystöd och mer. Curl mekaniseras av libcurl för varje överföringsrelaterad aspekt.
Vad är libcurl?
libcurl är ett gratis URL-överföringsbibliotek på klientsidan. Den stöder SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP-proxytunneling, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT och cookies. Biblioteket stöder även autentisering av användare plus-lösenord, proxyservrar, LDAPS, HTTPS-certifikat, HTTP-formulärbaserad uppladdning, FTP-uppladdning, återuppta filöverföring, TFTP, Telnet, SFTP och fil-URL-schema.
libcurl är kompakt. Den skapar identiskt och fungerar på flera plattformar, inklusive 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 och AIX.
Libcurl-biblioteket är IPv6-kompatibelt, trådsäkert och gratis. Bindningar är också tillgängliga för 50+ språk, inklusive Python, PHP, Java och C/C++.
Libcurl-biblioteket stöder SChannel, gskit på IBM i, NSS, mbed TLS, GnuTLS på Windows, Secure Trasport på iOS och macOS, TLS/SSL genom OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl och Boringssl.
Syntax:
Den grundläggande syntaxen för att använda curl är följande:
curl [options] [URL...]
Från ovanstående syntax,
URL:
URL-syntaxen är en allmän protokollberoende URL. Vi kan ange flera webbadresser enligt följande:
http://site.{one,two,three}.com
Alternativ:
Kommandot curl stöder följande kommandoradsalternativ:
--abstract-unix-socket: Den används för att ansluta via abstrakt Unix-domänuttag istället för ett nätverk.
--anyauth: Den används för att kommandot curl för att autentisera metoden själv för att använda den säkraste metoden. Det här verktyget är ett valfritt verktyg '--basic, --digest, --ntlm och negotiate' som används för att ställa in en specifik autentiseringsmetod.
-a, --lägg till: Den används för att ladda upp filer. Den lägger till filen istället för att skriva över den. Om den givna filen inte finns på servern kommer den att skapa en.
namn
--grundläggande: Den specificerar användningen av grundläggande HTTP-autentisering. Det är standardalternativet för curl-kommandot. Det är användbart för att åsidosätta tidigare inställningar.
--cacert: Den är specificerad för att använda den specifika certifikatfilen för att verifiera peer. Filerna kan ha flera CA-certifikat. Standardformatet för certifikaten är PEM, så alla certifikat måste finnas i det.
--kapat: Den är specificerad för att använda den specifika katalogen för att verifiera peer. Vi kan specificera flera sökvägar genom att separera dem med ett kolon (:) såsom 'sökväg: sökväg2:väg3'. Standardformatet för certifikaten är PEM, så alla certifikat måste finnas i det.
--cert-status: Det används för att verifiera statusen för servercertifikatet. Den använder Certificate Status Request eller OCSP-häftnings-TLS.
--cert-typ: Den anger den angivna typen av curlcertifikat. Dessa certifikat kan vara i PEM-, DER- och ENG-format. Standardvärdet är PEM. Om det anges flera gånger kommer det sista värdet att tas av curlen.
-E, --cert: Den är specificerad för att använda klientcertifikatfilen när du hämtar en fil via något av SSL-baserade protokoll som HTTPS, FTPS, etc.
--chiffer: Den används för att välja de chiffer som ska användas i anslutningen.
--komprimerad-ssh: Den används för att aktivera inbyggd SSH-komprimering. Det här alternativet kommer att tas som en begäran från servern, så servern kan eller kanske inte accepterar det.
--komprimerad: Den används för att begära ett komprimerat svar med hjälp av curl-algoritmerna och sparar det okomprimerade dokumentet. Det här alternativet skickar en rapport för kodningscurl som inte stöds.
-K, --config: Den används för att beskriva en textfil för att läsa curl-argument. Curl kommer att använda kommandoradsargumenten från textfilen.
--connect-timeout: Den används för att ange den maximala tiden i sekunder för curl-anslutningens timeout.
--koppla till : Den används för att skapa en begäran till det givna paret av värd och port; annars kommer den att ansluta till nästa par. Det här alternativet är ett praktiskt verktyg för att göra direkta förfrågningar på en specifik server.
-C, --fortsätt-vid: Den används för att fortsätta eller återuppta en tidigare filöverföring vid den givna förskjutningen.
-c, --kakburk: Den används för att specificera en viss fil till vilken vi vill skriva alla cookies efter en lyckad operation.
-b, --cookie: Den används för att vidarebefordra data till HTTP-servern i Cookie-huvudet.
--create-dirs: Det används i kombination med '-o? alternativet kommer det att skapa den lokala kataloghierarkin som krävs.
--crlf (FTP SMTP): Den används för att konvertera LF till CRLF i uppladdningen. Det är ett praktiskt verktyg för MVS (OS/390).
--crlfile: Den används för att specificera (i PEM-format) med en Certificate Revocation List.
--data-ascii: Det är ett alias för ?-d? alternativ.
--delegation : Den används för att ställa in LEVEL för att bekräfta servern vad den är tillåten att delegera när det kommer till användaruppgifter.
--smälta: Den används för att aktivera HTTP Digest-autentisering.
-q, --disable: Om det används som det första argumentet, kommer det att ignorera curlrc-konfigurationsfilen.
--dns-gränssnitt: Den används för att bekräfta att servern skickar utgående DNS-förfrågningar.
--dns-servrar: Den används för att ange DNS-servrarna istället för standardservrar.
-f, --misslyckas: Den används för att få krullen att tyst misslyckas vid serverfel.
-F, --form: Det används efterlikna ett ifyllt formulär som skickats av användaren.
-P, --ftp-port: Den används för att vända på standardavlyssnarrollerna vid anslutning till FTP.
--ftp-ssl-ccc-läge: Den används för att ställa in CCC-läget.
-G, --få: Den används för att specificera data med ?-d? alternativet som ska användas i en HTTP GET-begäran istället för POST-begäran.
-h, --hjälp: Den används för att visa hjälpmanualen med en kort beskrivning av användningen och supportalternativen.
-0, --http1.0: Den är specificerad för användning av HTTP-version 1.0.
--ignore-content-length: Den används för att ignorera Content-Length-huvudet.
-i, --inkludera: Den används för att inkludera HTTP-svarshuvuden.
-4, --ipv4: Det används för att lösa namn till IPv4-adresser.
-6, --ipv6: Det används för att lösa namn till Ipv6-adresser.
Protokoll av curl
Curl stöder flera protokoll:
Installation av curl Command
Curl-kommandot kommer med det mesta Linux distributioner. Men om systemet inte bär krullen som standard. Du måste installera den manuellt. För att installera curl, kör följande kommandon:
Uppdatera systemet genom att utföra följande kommandon:
sudo apt update sudo apt upgrade
Installera nu curl-verktyget genom att utföra kommandot nedan:
sudo apt install curl
Verifiera installationen genom att utföra följande kommando:
curl -version
Kommandot ovan visar den installerade versionen av curl-kommandot.
Hämta innehållet i den angivna webbadressen
För att hämta innehållet i en specifik URL, kör curl-kommandot, följt av URL:en. Tänk på kommandot nedan:
curl https://www.javatpoint.com/linux-tutorial
Kommandot ovan kommer att hämta siddata för den angivna sidan. Tänk på bilden nedan av utgången:
Från ovanstående utdata kan vi se siddata för den givna webbadressen hämtas. För att stoppa exekveringen, tryck på tangenterna CTRL+C.
Spara data i en specifik fil
För att spara data i en specifik fil, skicka alternativet '-o' följt av katalog, filnamn och URL enligt följande:
curl -o /
Tänk på kommandot nedan:
curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial
Kommandot ovan sparar siddata i filen 'linux.html' under katalogen ' /home/javatpoint/Documents/'. Tänk på följande utdata:
Från kommandot ovan kan vi se den totala mängden nedladdad data, mottagen data, genomsnittlig tid och lite annan statistik om data.
För att verifiera den nedladdade datan, öppna filen genom att utföra cat-kommandot
cd Documents cat linux.html
Tänk på bilden nedan för utdata:
Ladda ner en fil från webben
En av de intressanta och fascinerande användningsområdena för curl är att vi kan ladda ner en fil från webben. För att ladda ner en fil från webben, kopiera nedladdningslänken och klistra in den med curl-kommandot. Vi kan framföra andra argument också för att göra det mer specifikt. Till exempel, ladda ner den senaste versionen av ubuntu, kopiera nedladdningslänk av ubuntu från dess officiella webbplats och klistra in den med curl-kommandot enligt följande:
curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64
Ovanstående kommando kommer att ladda ner Ubuntu 20.04 till den angivna katalogen. Ange rätt filtillägg; annars laddas filen ned i ett annat format. Tänk på följande utdata:
Från ovanstående utdata laddas filen ubuntu.iso ned. Vi kan se nedladdningstid, filstorlek, nedladdningshastighet och annan statistik. För att stoppa exekveringen, tryck när som helst på tangenterna CTRL+D.
Återuppta de avbrutna nedladdningarna
Det kan finnas en chans att nedladdningarna kan avbrytas av någon anledning. Vi kan återuppta nedladdningar genom att använda curl-kommandot. För att återuppta den avbrutna filen, skicka alternativet '-C' med curl-kommandot enligt följande:
curl -C
Ovanstående kommando kommer att återuppta nedladdningen av den angivna URL:en.
Ladda ner flera filer
För att ladda ner flera filer, ange flera webbadresser separerade med mellanslag enligt följande:
curl -O
Ovanstående kommando kommer att ladda ner data från båda webbadresserna.
Fråga HTTP-huvuden
HTTP-huvudena innehåller ytterligare information; det tillåter webbservern att ladda ner denna information. För att fråga HTTP-rubriker från en webbplats, kör kommandot med alternativet '-I' enligt följande:
curl -I www.javatpoint.com
Kommandot ovan kommer att producera följande utdata: