logo

Curl Command i Linux med eksempler

Linux curl-kommando brukes til å laste ned eller laste opp data til en server via støttede protokoller som HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP, etc. Det er et eksternt verktøy, så det fungerer uten brukerinteraksjon.

Dataoverføring fra ett sted til et annet er en av de vitale og mest brukte oppgavene til et datasystem. Imidlertid er det mange GUI-verktøy tilgjengelig for dataoverføring. Men når du jobber på kommandolinjen, blir det litt komplisert. Curl-verktøyet lar oss overføre data via kommandolinjen.

Curl er et kommandolinjeverktøy for å hente og sende data som filer med URL-syntaks. Den støtter alle protokoller som støttes av libcurl fordi den bruker libcurl. Curl gir sin støtte for HTTPS og implementerer SSL-sertifikatverifisering når en sikker protokoll er nevnt som standard, som HTTPS. Curl vil ta med det eksterne serversertifikatet og sjekke CA-sertifikatet for å lagre den eksterne serverens gyldighet fra å garantere at den eksterne serveren er den den ber om å være når curl kobler til en ekstern server med HTTPS.

Det er mange alternativer for å definere et CA-sertifikat, som --kapat og --cacert . Alternativet, dvs. --cacert, kan brukes for å spesifisere plasseringen av filen til CA-sertifikatlageret. Hvis en CA-sertifikatfil ikke er tilgjengelig på Windows-plattformen, vil curl søke etter 'curl-ca-bundle.crt' CA-sertifikatfilnavnet i sekvensen nedenfor:

  • Katalog der curl-programmet er til stede.
  • Gjeldende arbeidskatalog.
  • Systemkatalog (Windows).
  • Katalog (Windows).
  • Kataloger er nevnt i miljøvariablene %PATH%.

Curl vil gi en feilmelding når den eksterne serveren bruker et selvsignert sertifikat eller når det eksterne serversertifikatet ikke er signert via en CA nevnt i CA-sertfilen. --insecure eller -k alternativet kan brukes for å hoppe over sertifikatverifisering. Det eksterne CA-sertifikatet kan alternativt inkluderes i CA-sertifikatlagerfilen hvis den eksterne serveren er gyldig.

Curl gir en busslast med nyttige triks som CV for filoverføring, informasjonskapsler, SSL-tilkoblinger, HTTP-innlegg, FTP-opplasting, brukerautentisering, proxy-støtte og mer. Curl er mekanisert av libcurl for alle overføringsrelaterte aspekter.

Hva er libcurl?

libcurl er et gratis URL-overføringsbibliotek på klientsiden. Den stø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 informasjonskapsler. Biblioteket støtter også autentisering av bruker-pluss-passord, proxyer, LDAPS, HTTPS-sertifikater, HTTP-skjemabasert opplasting, FTP-opplasting, gjenoppta filoverføring, TFTP, Telnet, SFTP og fil-URL-skjema.

libcurl er kompakt. Den lager identisk og fungerer på flere plattformer, inkludert 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å tilgjengelig for 50+ språk, inkludert Python, PHP, Java og C/C++.
Libcurl-biblioteket støtter SChannel, gskit på IBM i, NSS, mbed TLS, GnuTLS på Windows, Secure Trasport på iOS og macOS, TLS/SSL gjennom OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl og Boringssl.

Syntaks:

Den grunnleggende syntaksen for bruk av curl er som følger:

 curl [options] [URL...] 

Fra syntaksen ovenfor,

URL:

URL-syntaksen er en generell protokollavhengig URL. Vi kan spesifisere flere nettadresser som følger:

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

Alternativer:

Curl-kommandoen støtter følgende kommandolinjealternativer:

--abstract-unix-socket: Den brukes til å koble til via abstrakt Unix-domenekontakt i stedet for et nettverk.

--anyauth: Den brukes til å kommandere curl for å autentisere metoden i seg selv for å bruke den sikreste metoden. Dette verktøyet er et valgfritt verktøy '--basic, --digest, --ntlm, and negotiate,' som brukes til å angi en spesifikk autentiseringsmetode.

-a, --legg til: Den brukes til å laste opp filer. Den legger til filen i stedet for å overskrive den. Hvis den gitte filen ikke finnes på serveren, vil den opprette en.

aryan khan

-- grunnleggende: Den spesifiserer bruken av grunnleggende HTTP-autentisering. Det er standardalternativet for curl-kommandoen. Det er nyttig for å overstyre de tidligere innstillingene.

--cacert: Det er spesifisert for å bruke den bestemte sertifikatfilen for å bekrefte peeren. Filene kan ha flere CA-sertifikater. Standardformatet for sertifikatene er PEM, så alle sertifikatene må være i det.

--kapat: Det er spesifisert for å bruke den bestemte katalogen for å bekrefte peeren. Vi kan spesifisere flere baner ved å skille dem med et kolon (:) slik som 'bane: sti2:bane3'. Standardformatet for sertifikatene er PEM, så alle sertifikatene må være i det.

--sert-status: Den brukes til å bekrefte statusen til serversertifikatet. Den bruker sertifikatstatusforespørsel eller OCSP-stifting TLS.

--sert-type: Den spesifiserer den angitte typen krøllsertifikat. Disse sertifikatene kan være i PEM-, DER- og ENG-format. Standardverdien er PEM. Hvis det er spesifisert flere ganger, vil den siste verdien bli tatt av krøllen.

-E, --cert: Det er spesifisert for bruk av klientsertifikatfilen når du henter en fil via en hvilken som helst SSL-basert protokoll som HTTPS, FTPS, etc.

--siffer: Den brukes til å velge chifferene som skal brukes i forbindelsen.

--komprimert-ssh: Den brukes til å aktivere innebygd SSH-komprimering. Dette alternativet vil ta som en forespørsel fra serveren, så serveren kan eller ikke kan godta det.

--komprimert: Den brukes til å be om et komprimert svar ved å bruke krøllealgoritmene og lagrer det ukomprimerte dokumentet. Dette alternativet vil sende en rapport for ustøttet kodingskurl.

-K, --config: Den brukes til å beskrive en tekstfil for lesing av krølleargumenter. Krøllen vil bruke kommandolinjeargumentene fra tekstfilen.

--connect-timeout: Den brukes til å angi maksimal tid i sekunder for tidsavbrudd for krølltilkobling.

--koble til : Den brukes til å opprette en forespørsel til det gitte paret av vert og port; ellers kobles den til neste par. Dette alternativet er et hendig verktøy for å gjøre direkte forespørsler på en bestemt server.

-C, --fortsett-ved: Den brukes til å fortsette eller gjenoppta en tidligere filoverføring ved gitt forskyvning.

-c, --kakeboks: Den brukes til å spesifisere en bestemt fil som vi ønsker å skrive alle informasjonskapsler til etter en vellykket operasjon.

-b, --informasjonskapsel: Den brukes til å videresende data til HTTP-serveren i informasjonskapseloverskriften.

--create-dirs: Den brukes sammen med '-o? alternativet, vil det opprette det nødvendige lokale kataloghierarkiet.

--crlf (FTP SMTP): Den brukes til å konvertere LF til CRLF i opplastingen. Det er et hendig verktøy for MVS (OS/390).

--crlfile: Den brukes til å spesifisere (i PEM-format) med en sertifikatopphevelsesliste.

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

--delegasjon: Den brukes til å sette LEVEL for å anerkjenne serveren hva den er tillatt å delegere når det gjelder brukerlegitimasjon.

--fordøye: Den brukes til å aktivere HTTP Digest-autentisering.

-q, --deaktiver: Hvis det brukes som det første argumentet, vil det ignorere curlrc-konfigurasjonsfilen.

--dns-grensesnitt: Den brukes til å bekrefte at serveren sender utgående DNS-forespørsler.

--dns-servere: Den brukes til å spesifisere DNS-servere i stedet for standardservere.

-f, --fail: Den brukes til å få krøllen til å feile stille ved serverfeil.

-F, --form: Det brukes etterligne et utfylt skjema sendt inn av brukeren.

-P, --ftp-port: Den brukes til å reversere standard lytterroller når du kobler til FTP.

--ftp-ssl-ccc-modus: Den brukes til å stille inn CCC-modus.

-G, --få: Den brukes til å spesifisere data med ?-d? alternativet som skal brukes i en HTTP GET-forespørsel i stedet for POST-forespørsel.

-h, --hjelp: Den brukes til å vise hjelpemanualen med en kort beskrivelse av bruken og støttealternativene.

-0, --http1.0: Den er spesifisert for bruk av HTTP-versjon 1.0.

--ignorer-content-length: Den brukes til å ignorere Content-Length-overskriften.

-i, --inkluderer: Den brukes til å inkludere HTTP-svarhodene.

-4, --ipv4: Den brukes til å løse navn til IPv4-adresser.

-6, --ipv6: Den brukes til å løse navn til Ipv6-adresser.

Protokoller av krøll

Curl støtter flere protokoller:

    DICT:Det gjør oss i stand til å slå opp ord med kun ordbøker.FTP (S):Curl støtter FTP-protokollen ved å bruke mange spaker og justeringer. Med eller uten TLS.FIL:Den lar oss skrive og lese den lokale filen. Curl tillater ikke ekstern tilgang til file://URL, men den vil fungere når den er aktiv på Microsoft Windows med den opprinnelige UNC-tilnærmingen.GOPHER (S):Den henter filer.HTTP (S):Curl støtter HTTP ved å bruke en rekke varianter og alternativer. Den kan snakke HTTP-versjonene 0.9, 1.0, 1.1, 2 og 3, avhengig av nøyaktig kommandolinje og byggealternativer.IMAP (S):Curl laster ned e-poster for oss med e-postleseprotokollen. Med eller uten TLS.LDAP (S):Curl kan implementere katalogoppslag for oss med eller uten bruk av TLS.MQTT:Curl støtter 3-versjonen av MQTT. Nedlasting på MQTT er det samme som 'abonnere' til ethvert emne, og posting/opplasting er det samme som 'publisere' om ethvert emne. Over TLS støttes ikke MQTT.POP3 (S):Nedlasting gjennom en pop3-server representerer mottak av e-post uten eller med TLS.RTMP (S):RTMP eller Realtime Messaging Protocol brukes hovedsakelig for serverstrømming av media.RTSP:Curl støtter 1.0-nedlastinger av RTSP.SCP:Curl støtter to scp-overføringsversjonen av SCP.SFTP:Curl støtter SFTP over 2-versjonen av SSH.SMB (S):Curl støtter 1 versjon av SMB for nedlasting og opplasting.SMTP (S):Å laste opp innhold til en hvilken som helst SMTP-server betyr å overføre en e-post uten eller med TLS.TELNET:Å informere curl om å ta med en telnet-URL starter en interaktiv økt der den overfører det den leser over stdin og resulterer i det serveren overfører den.TFTP:Curl kan implementere TFTP-opplastinger og -nedlastinger.

Installasjon av curl Command

Curl-kommandoen følger med det meste Linux distribusjoner. Men hvis systemet ikke bærer krøllen som standard. Du må installere den manuelt. For å installere krøllen, kjør følgende kommandoer:

Oppdater systemet ved å utføre følgende kommandoer:

 sudo apt update sudo apt upgrade 

Installer nå curl-verktøyet ved å utføre kommandoen nedenfor:

 sudo apt install curl 

Bekreft installasjonen ved å utføre kommandoen nedenfor:

 curl -version 

Kommandoen ovenfor viser den installerte versjonen av curl-kommandoen.

Hent innholdet i den angitte nettadressen

For å hente innholdet til en bestemt URL , utfør curl-kommandoen, etterfulgt av URL-en. Tenk på kommandoen nedenfor:

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

Kommandoen ovenfor vil hente sidedataene til den angitte siden. Tenk på bildet nedenfor av utgangen:

Linux Curl Command

Fra utdataene ovenfor kan vi se sidedataene til den gitte nettadressen blir hentet. For å stoppe kjøringen, trykk på CTRL+C-tastene.

Lagre data i en bestemt fil

For å lagre dataene i en spesifikk fil, send '-o'-alternativet etterfulgt av katalog, filnavn og URL som følger:

 curl -o / 

Tenk på kommandoen nedenfor:

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

Kommandoen ovenfor vil lagre sidedataene i 'linux.html'-filen under ' /home/javatpoint/Documents/'-katalogen. Tenk på utgangen nedenfor:

Linux Curl Command

Fra kommandoen ovenfor kan vi se den totale mengden nedlastede data, mottatte data, gjennomsnittlig tid og annen statistikk om dataene.

For å bekrefte de nedlastede dataene, åpne filen ved å utføre cat-kommandoen

 cd Documents cat linux.html 

Vurder utdatabildet nedenfor:

Linux Curl Command

Last ned en fil fra nettet

En av de interessante og fascinerende bruksområdene til curl er at vi kan laste ned en fil fra nettet. For å laste ned en fil fra nettet, kopier nedlastingslenken og lim den inn med curl-kommandoen. Vi kan også føre andre argumenter for å gjøre det mer spesifikt. For eksempel, last ned den nyeste versjonen av ubuntu, kopier nedlastingslenke av ubuntu fra den offisielle nettsiden og lim den inn 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 

Kommandoen ovenfor vil laste ned Ubuntu 20.04 til den angitte katalogen. Oppgi riktig filtype; ellers vil den laste ned filen i et annet format. Tenk på utgangen nedenfor:

Linux Curl Command

Fra utgangen ovenfor lastes filen ubuntu.iso ned. Vi kan se nedlastingstid, filstørrelse, nedlastingshastighet og annen statistikk. For å stoppe kjøringen, trykk når som helst på CTRL+D-tastene.

Gjenoppta de avbrutte nedlastingene

Det kan være en sjanse for at nedlastingene kan bli avbrutt av en eller annen grunn. Vi kan gjenoppta nedlastinger ved å bruke curl-kommandoen. For å gjenoppta den avbrutte filen, send '-C'-alternativet med curl-kommandoen som følger:

 curl -C 

Kommandoen ovenfor vil gjenoppta nedlastingen av den angitte URL-en.

Last ned flere filer

For å laste ned flere filer, spesifiser de flere nettadressene atskilt med mellomrom som følger:

 curl -O 

Kommandoen ovenfor vil laste ned dataene fra henholdsvis begge URL-ene.

Spørr HTTP-hoder

HTTP-hodene inneholder tilleggsinformasjon; den lar webserveren laste ned denne informasjonen. For å spørre HTTP-hodene fra et nettsted, utfør kommandoen med '-I'-alternativet som følger:

 curl -I www.javatpoint.com 

Kommandoen ovenfor vil produsere følgende utgang:

Linux Curl Command