logo

Curl Command i Linux med eksempler

Linux curl-kommando bruges til at downloade eller uploade data til en server via understøttede protokoller såsom HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP osv. Det er et fjernværktøj, så det fungerer uden brugerinteraktion.

Dataoverførsel fra et sted til et andet er en af ​​de vitale og mest brugte opgaver i et computersystem. Der er dog mange GUI-værktøjer tilgængelige til dataoverførsel. Men når du arbejder på kommandolinjen, bliver det en smule kompliceret. Curl-værktøjet giver os mulighed for at overføre data via kommandolinjen.

Curl er et kommandolinjeværktøj til at hente og sende data såsom filer med URL-syntaks. Den understøtter alle protokoller, der understøttes af libcurl, fordi den bruger libcurl. Curl understøtter HTTPS og implementerer SSL-certifikatbekræftelse, når en sikker protokol er nævnt som standard, såsom HTTPS. Curl vil bringe fjernservercertifikatet og kontrollere CA-certifikatet for at gemme fjernserverens gyldighed fra at garantere, at fjernserveren er den, den anmoder om at være, når curl linker til en fjernserver via HTTPS.

Der er mange muligheder for at definere et CA-certifikat, f.eks --kapat og --cacert . Indstillingen, dvs. --cacert, kan bruges til at specificere placeringen af ​​filen i CA-certifikatlageret. Hvis en CA-certifikatfil ikke er tilgængelig på Windows-platformen, vil curl søge efter 'curl-ca-bundle.crt' CA-certifikatfilnavnet i nedenstående rækkefølge:

  • Directory, hvor curl-programmet er til stede.
  • Aktuel arbejdsmappe.
  • Systemmappe (Windows).
  • Directory (Windows).
  • Mapper er nævnt i %PATH% miljøvariablerne.

Curl vil give en fejlmeddelelse, når fjernserveren bruger et selvsigneret certifikat, eller når fjernservercertifikatet ikke er underskrevet via et CA nævnt i CA-certifikatfilen. --insecure eller -k mulighed kan bruges til at springe certifikatbekræftelse over. Det eksterne CA-certifikat kan alternativt inkluderes i CA-certifikatlagerfilen, hvis fjernserveren er gyldig.

Curl giver en busload af nyttige tricks som filoverførsel CV, cookies, SSL-forbindelser, HTTP post, FTP upload, brugergodkendelse, proxy support og mere. Curl er mekaniseret af libcurl for alle overførselsrelaterede aspekter.

Hvad er libcurl?

libcurl er et gratis URL-overførselsbibliotek på klientsiden. Det understøtter SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP proxy tunneling, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT og cookies. Biblioteket understøtter også bruger-plus-adgangskode-godkendelse, proxyer, LDAPS, HTTPS-certifikater, HTTP-formularbaseret upload, FTP-upload, filoverførselsresume, TFTP, Telnet, SFTP og fil-URL-skema.

libcurl er kompakt. Det skaber identisk og fungerer på flere platforme, herunder 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 og AIX.

Libcurl-biblioteket er IPv6-kompatibelt, trådsikkert og gratis. Bindinger er også tilgængelige for 50+ sprog, inklusive Python, PHP, Java og C/C++.
Libcurl-biblioteket understøtter SChannel, gskit på IBM i, NSS, mbed TLS, GnuTLS på Windows, Secure Trasport på iOS og macOS, TLS/SSL gennem OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl og Boringssl.

Syntaks:

Den grundlæggende syntaks for brug af curl er som følger:

 curl [options] [URL...] 

Fra ovenstående syntaks,

URL:

URL-syntaksen er en generel protokolafhængig URL. Vi kan angive flere URL'er som følger:

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

Muligheder:

Curl-kommandoen understøtter følgende kommandolinjeindstillinger:

--abstract-unix-socket: Det bruges til at oprette forbindelse via abstrakt Unix-domæne-socket i stedet for et netværk.

--anyauth: Det bruges til at kommandere curl for at godkende metoden i sig selv for at bruge den mest sikre metode. Dette værktøj er et valgfrit værktøj '--basic, --digest, --ntlm, and negotiate', som bruges til at indstille en specifik godkendelsesmetode.

-a, --tilføj: Det bruges til at uploade filer. Det tilføjer filen i stedet for at overskrive den. Hvis den givne fil ikke findes på serveren, vil den oprette en.

cout

--grundlæggende: Det specificerer brugen af ​​HTTP grundlæggende godkendelse. Det er standardindstillingen for curl-kommandoen. Det er nyttigt til at tilsidesætte de tidligere indstillinger.

--cacert: Det er specificeret til brug af den bestemte certifikatfil til at verificere peeren. Filerne kan have flere CA-certifikater. Standardformatet for certifikaterne er PEM, så alle certifikaterne skal være i det.

--kapat: Det er specificeret til at bruge den bestemte mappe til at bekræfte peeren. Vi kan angive flere stier ved at adskille dem med et kolon (:) såsom 'sti: sti2:sti3'. Standardformatet for certifikaterne er PEM, så alle certifikaterne skal være i det.

--cert-status: Det bruges til at verificere status for servercertifikatet. Den bruger Certificate Status Request eller OCSP-hæftning TLS.

--cert-type: Det specificerer den angivne krøllecertifikattype. Disse certifikater kan være i PEM-, DER- og ENG-format. Standardværdien er PEM. Hvis det er angivet flere gange, vil den sidste værdi blive taget af krøllen.

-E, --cert: Det er specificeret til brug af klientcertifikatfilen, når du henter en fil via en hvilken som helst SSL-baseret protokol såsom HTTPS, FTPS osv.

--cifre: Den bruges til at vælge de cifre, der skal bruges i forbindelsen.

--komprimeret-ssh: Det bruges til at aktivere indbygget SSH-komprimering. Denne mulighed vil tage som en anmodning fra serveren, så serveren accepterer den muligvis eller ikke.

--komprimeret: Det bruges til at anmode om et komprimeret svar ved hjælp af krøllealgoritmerne og gemmer det ukomprimerede dokument. Denne indstilling sender en rapport for ikke-understøttet kodningskrølle.

-K, --config: Det bruges til at beskrive en tekstfil til at læse krølleargumenter. Krøllen vil bruge kommandolinjeargumenterne fra tekstfilen.

--connect-timeout: Den bruges til at angive den maksimale tid i sekunder for timeout for krølleforbindelse.

--forbinde til : Det bruges til at oprette en anmodning til det givne par af vært og port; ellers vil den oprette forbindelse til det næste par. Denne mulighed er et praktisk værktøj til at lave direkte anmodninger på en bestemt server.

-C, --fortsæt-på: Den bruges til at fortsætte eller genoptage en tidligere filoverførsel ved den givne offset.

-c, --småkagekrukke : Det bruges til at angive en bestemt fil, som vi ønsker at skrive alle cookies til efter en vellykket operation.

-b, --cookie: Det bruges til at videresende data til HTTP-serveren i Cookie-headeren.

--create-dirs: Det bruges sammen med '-o? mulighed, vil det skabe det nødvendige lokale bibliotekshierarki.

--crlf (FTP SMTP): Det bruges til at konvertere LF til CRLF i upload. Det er et praktisk værktøj til MVS (OS/390).

--crlfile: Den bruges til at specificere (i PEM-format) med en Certificate Revocation List.

--data-ascii: Det er et alias for ?-d? mulighed.

--delegation: Det bruges til at indstille LEVEL til at anerkende serveren, hvad den har tilladelse til at uddelegere, når det kommer til brugerlegitimationsoplysninger.

--fordøje: Det bruges til at aktivere HTTP Digest-godkendelse.

-q, --deaktiver: Hvis det bruges som det første argument, vil det ignorere curlrc-konfigurationsfilen.

--dns-grænseflade: Den bruges til at bekræfte, at serveren sender de udgående DNS-anmodninger.

--dns-servere: Det bruges til at angive DNS-servere i stedet for standardservere.

-f, --fail: Det bruges til at få krøllen til lydløst at fejle ved serverfejl.

-F, --form: Det bruges efterligne en udfyldt formular indsendt af brugeren.

-P, --ftp-port: Det bruges til at vende standardlytterrollerne, når der oprettes forbindelse til FTP.

--ftp-ssl-ccc-tilstand: Den bruges til at indstille CCC-tilstand.

-G, --få: Det bruges til at specificere data med ?-d? mulighed for at blive brugt i en HTTP GET-anmodning i stedet for POST-anmodning.

-h, --hjælp: Den bruges til at vise hjælpemanualen med en kort beskrivelse af brugen og supportmulighederne.

-0, --http1.0: Det er specificeret til brug af HTTP-version 1.0.

--ignorer-content-length: Det bruges til at ignorere Content-Length-headeren.

-i, --inkluderer: Det bruges til at inkludere HTTP-svar-headerne.

-4, --ipv4: Det bruges til at løse navne til Ipv4-adresser.

-6, --ipv6: Det bruges til at løse navne til Ipv6-adresser.

Protokoller af krølle

Curl understøtter flere protokoller:

    DICT:Det gør os i stand til at slå ord op med kun ordbøger.FTP (S):Curl understøtter FTP-protokol ved hjælp af en masse håndtag og tweaks. Med eller uden TLS.FIL:Det giver os mulighed for at skrive og læse den lokale fil. Curl tillader ikke fjernadgang til file://URL, men det fungerer, når det er aktivt på Microsoft Windows med den oprindelige UNC-tilgang.GOPHER (S):Det henter filer.HTTP (S):Curl understøtter HTTP ved hjælp af adskillige variationer og muligheder. Den kan tale HTTP-versionerne 0.9, 1.0, 1.1, 2 og 3 afhængigt af den nøjagtige kommandolinje og byggemuligheder.IMAP (S):Curl downloader e-mails til os med e-mail-læseprotokollen. Med eller uden TLS.LDAP (S):Curl kan implementere mappeopslag for os med eller uden brug af TLS.MQTT:Curl understøtter 3-versionen af ​​MQTT. Download på MQTT er det samme som 'abonner' til ethvert emne, og opslag/upload er det samme som 'offentliggøre' om ethvert emne. Over TLS understøttes MQTT ikke.POP3 (S):At downloade gennem en pop3-server repræsenterer modtagelse af mail uden eller med TLS.RTMP (S):RTMP eller Realtime Messaging Protocol bruges hovedsageligt til serverstreamingmedier.RTSP:Curl understøtter 1.0 downloads af RTSP.SCP:Curl understøtter to scp-overførselsversionen af ​​SCP.SFTP:Curl understøtter SFTP over 2-versionen af ​​SSH.SMB (S):Curl understøtter 1 version af SMB til download og upload.SMTP (S):At uploade indhold til enhver SMTP-server betyder at overføre en e-mail uden eller med TLS.TELNET:At informere curl om at bringe en telnet-URL starter en interaktiv session, hvor den overfører, hvad den læser over stdin og resulterer i, hvad serveren overfører den.TFTP:Curl kan implementere TFTP-uploads og -downloads.

Installation af curl Command

Curl-kommandoen følger med det meste Linux distributioner. Men hvis systemet ikke bærer krøllen som standard. Du skal installere det manuelt. For at installere krøllen skal du udføre følgende kommandoer:

Opdater systemet ved at udføre følgende kommandoer:

 sudo apt update sudo apt upgrade 

Installer nu curl-værktøjet ved at udføre nedenstående kommando:

 sudo apt install curl 

Bekræft installationen ved at udføre nedenstående kommando:

 curl -version 

Ovenstående kommando viser den installerede version af curl-kommandoen.

Hent indholdet af den angivne URL

For at hente indholdet af en specifik URL skal du udføre curl-kommandoen efterfulgt af URL'en. Overvej nedenstående kommando:

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

Ovenstående kommando vil hente sidedataene for den angivne side. Overvej nedenstående snap af output:

Linux Curl Command

Fra ovenstående output kan vi se sidedataene for den givne URL hentes. For at stoppe udførelsen skal du trykke på tasterne CTRL+C.

Gem data i en bestemt fil

For at gemme dataene i en specifik fil skal du sende '-o'-indstillingen efterfulgt af mappe, filnavn og URL som følger:

 curl -o / 

Overvej nedenstående kommando:

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

Ovenstående kommando gemmer sidedataene i 'linux.html'-filen under ' /home/javatpoint/Documents/'-mappen. Overvej nedenstående output:

Linux Curl Command

Fra ovenstående kommando kan vi se den samlede mængde af downloadede data, modtagne data, gennemsnitstid og nogle andre statistikker om dataene.

For at bekræfte de downloadede data skal du åbne filen ved at udføre kat-kommandoen

 cd Documents cat linux.html 

Overvej nedenstående snap af output:

Linux Curl Command

Download en fil fra internettet

En af de interessante og fascinerende anvendelser af curl er, at vi kan downloade en fil fra nettet. For at downloade en fil fra nettet skal du kopiere downloadlinket og indsætte det med curl-kommandoen. Vi kan også fremføre andre argumenter for at gøre det mere specifikt. Download for eksempel den nyeste version af ubuntu, kopier download link af ubuntu fra dens officielle hjemmeside og indsæt den med curl-kommandoen som følger:

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

Ovenstående kommando vil downloade Ubuntu 20.04 til den angivne mappe. Angiv den korrekte filtypenavn; ellers vil den downloade filen i et andet format. Overvej nedenstående output:

Linux Curl Command

Fra ovenstående output downloades filen ubuntu.iso. Vi kan se downloadtiden, filstørrelsen, downloadhastigheden og andre statistikker. For at stoppe udførelsen skal du til enhver tid trykke på CTRL+D-tasterne.

Genoptag de afbrudte downloads

Der kan være en chance for, at downloads af en eller anden grund kan blive afbrudt. Vi kan genoptage downloads ved at bruge curl-kommandoen. For at genoptage den afbrudte fil skal du sende '-C'-indstillingen med curl-kommandoen som følger:

 curl -C 

Ovenstående kommando vil genoptage download af den angivne URL.

Download flere filer

For at downloade de flere filer skal du angive de flere URL'er adskilt med mellemrum som følger:

 curl -O 

Ovenstående kommando vil downloade dataene fra henholdsvis begge URL'er.

Forespørg på HTTP-headere

HTTP-headerne indeholder yderligere information; det giver webserveren mulighed for at downloade disse oplysninger. For at forespørge HTTP-headerne fra et websted skal du udføre kommandoen med '-I' som følger:

 curl -I www.javatpoint.com 

Ovenstående kommando vil producere nedenstående output:

Linux Curl Command