Curl-komennon käyttäminen Linuxissa

Laaja opas, joka selittää curl-komennon käytön verkkosivujen hakemiseen ja tiedostojen lataamiseen suoraan päätteestäsi

The kiemura komento on yksi mielenkiintoinen komentorivityökalu, jota Linuxilla on sinulle tarjota. kiemura komennon avulla käyttäjä voi noutaa tiedostoja palvelimelta.

kiemura on suosittu valinta sovellusten kehittäjien ja usein Linux-käyttäjien keskuudessa, koska se tukee useita protokollia, kuten RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, TIEDOSTO, GOPHER, LDAP, LDAPS, POP3, POP3S jne.

kiemura komento tekee paljon enemmän kuin vain noutaa verkkosivut puolestasi. Tämän komennon käytettävissä olevien vaihtoehtojen tunteminen tekee siitä monipuolisemman käyttöösi. Sukeltakaamme opetusohjelmaan saadaksemme hyvän käsityksen sen käytöstä kiemura komento lyhyiden esimerkkien avulla.

Asennus

Ennen kuin käytät kiemura -komentoa, tarkista, onko se jo asennettu järjestelmääsi. Käytä komentoa curl -- versio tarkistamaan jos kiemura on asennettu.

Siinä tapauksessa jos kiemura ei ole asennettu, noudata seuraavia ohjeita.

Ubuntu- ja Debian-pohjaisissa järjestelmissä käyttää:

sudo apt-get päivitys
sudo apt-get install curl

RHEL-, CentOs- ja Fedora-distroilla käyttää:

sudo yum install curl

Käytä nyt curl -- versio -komento varmistaaksesi, että se on asennettu oikein.

curl -- versio

Lähtö:

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30. 0 librtmp / 2.3 Release-Date: 24/01/2018 pöytäkirjat: dict tiedosto ftp ftp gopher http https imap IMAPS ldap LDAPs POP3 POP3S RTMP rtsp smb pk SMTP smtps telnet tftp Ominaisuudet: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-välityspalvelin PSL gaurav@ubuntu:~$ 

Nyt olemme valmiita käyttämään kiemura komento.

Vaihtoehdot saatavilla CURL-komennolla

Katsotaanpa ensin joitain näkyviä vaihtoehtoja, jotka ovat käytettävissä kiemura komento.

VaihtoehtoKuvaus
-uladataksesi tiedostoja FTP-palvelimelta
-Cjatkaaksesi keskeytettyä latausta
-otallentaaksesi tuloksen kiemura komento ennalta määritetyllä tiedostonimellä
-Minäsaadaksesi määritetyn URL-osoitteen HTTP-otsikot
-Otallentaaksesi tuloksen kiemura komento alkuperäisellä tiedostonimellä
--libcurlkäyttääksesi C-lähdekoodia libcurl määritetylle vaihtoehdolle
-xkäyttääksesi välityspalvelinta URL-osoitteen käyttämiseen
-#näyttääksesi edistymispalkin latauksen tilan näyttämiseksi

Verkkosivun hakeminen CURL:n avulla

The kiemura -komento, kun sitä käytetään ilman vaihtoehtoja, hakee komennossa määritetyn URL-osoitteen sisällön.

Syntaksi:

kihara [URL]

Esimerkki:

curl //allthings.how

Lähtö:

gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}html.i-amphtml-fie{height:100%!important;width:100%!important}html:not([amp4ads ]),html:not([amp4ads]) body{height:auto!important}html:not([amp4ads]) body{margin:0!important}body{-webkit-text-size-adjust:100%;- moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}html.i-amphtml-singledoc.i-amphtml-embedded{-ms-touch -action:pan-y;touch-action:pan-y}html.i-amphtml-fie>body,html.i-amphtml-singledoc>body{overflow:visible!important}html.i-amphtml-fie:not (.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not(.i-amphtml-inabox)>body{position:relative!important}html.i-amphtml-webview>body{overflow-x :hidden!important;overflow-y:visible!important;min-height:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over flow-y:auto!tärkeä;sijainti:absoluuttinen!tärkeä;ylä:0!tärkeä;vasen:0!tärkeä;oikea:0!tärkeä;ala:0!tärkeä;marginaali:0!tärkeä;näyttö:lohko!tärkeä} html.i-amphtml-ios-embed.i-amphtml-ios-overscroll,html.i-amphtml-ios-embed.i-amphtml-ios-overscroll>#i-amphtml-wrapper{-webkit-overflow-scrolling: touch!tärkeää}#i-amphtml-wrapper>body{position:relative!tärkeää;border-top:1px solid transparent!important}#i-amphtml-wrapper+body{visibility:visible}#i-amphtml-wrapper+body .i-amphtml-lightbox-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -element{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}amp-instagram {padding:54px 0px 0px!important;background-color:#fff}amp-iframe iframe{box-sizing:border-box!tärkeää}[amp-access][amp-access-hide]{display:none}[tilaukset -dialog],body:not(.i-amphtml-s ubs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none!important}amp-experiment,amp-live-list>[päivitys]{näyttö :none}.i-amphtml-jank-meter{position:fixed;background-color:rgba(232,72,95,0.5);bottom:0;right:0;color:#fff;font-size:16px; z-index:1000;padding:5px}amp-list[resizable-children]>.i-amphtml-loading-container.amp-hidden{display:none!important}amp-list [fetch-error],amp-list [load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list[load-more] [load-more-failed],amp-list[load -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[itsenäinen]{min-height:1px !tärkeä;näyttö:lohko!tärkeä;korkeus:100%!tärkeä;marginaali:0!tärkeä;täyte:0!tärkeä;ylivuoto:piilotettu!tärkeä;leveys:100%!tärkeää}amp-story[erillinen]{tausta- color:#202125!tärkeä;position:relative!tärkeä}amp-tarina-sivu{background-color:#757575}amp-tarina .amp-active>div,amp-tarina .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([etäisyys]):not([aktiivinen]){transform:translateY(1000vh)!tärkeää }amp-autocomplete{position:relative!tärkeää;näyttö:inline-block!tärkeää}amp-autocomplete>syöttö,amp-automaattinen täydennys>tekstialue{täyttö:0.5rem;reuna:1px solid rgba(0,0,0,0.33) }.i-amphtml-automaattinen täydennys amp-script[nodom]{position:fixed!tärkeä;yläosa:0!tärkeä;leveys:1px!tärkeä;korkeus:1px!tärkeä;ylivuoto:piilotettu!tärkeä;näkyvyys:piilotettu} 

Täällä verkkosivun sisältö haetaan suoraan päätteeseesi lähdekoodina.

Voit käyttää vaihtoehtoja -o ja -O kanssa kiemura -komento tallentaaksesi tämän sisällön tiedostoon.

Kun -o -vaihtoehtoa käytetään, URL-osoitteen sisältö tallennetaan nykyiseen hakemistoosi käyttäjän määrittelemällä tiedostonimellä.

Syntaksi:

curl -o [käyttäjän määrittämä_tiedostonimi] [URL]

Esimerkki:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Yhteensä % Vastaanotettu % Xferd Keskimääräinen nopeus Aika Aika Nykyinen lataus Lataus Yhteensä käytetty vasen nopeus 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$ 

Tässä esimerkissä URL-osoitteen allthings.how sisältö tallennetaan HTML-tiedostona nimeltä ath.html nykyiseen työhakemistooni. Kun avaat tämän HTML-tiedoston, minut ohjataan tallennetulle verkkosivulle.

Tiedostojen lataaminen CURL-komennolla

Käyttämällä -O vaihtoehto curl-komennolla tallentaa myös sisällön tai verkkosivun tai ladattavan paketin tiedostona, mutta tallentaa tämän tiedoston alkuperäisellä nimellä.

Katsotaanpa tätä esimerkin kautta:

Esimerkki:

Tässä olen käyttänyt kiemura komento kanssa -O mahdollisuus ladata Ubuntu-paketti nimeltä "kirsikkapuu_0.37.6-1.1_all.deb" Ubuntun pakettivarastosta.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Yhteensä % Vastaanotettu % Xferd Keskinopeus Aika Aika Aika Nykyinen lataus lataus yhteensä käytetty vasen nopeus 100 613 tk 100 613 tk 0 0 220 t 0 0:00:02 0:00:02 --:--:-- 220 t gaurav@ubuntu:~/työtila$

Lähtö:

trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$

Joten paketti on nyt ladattu ja tallennettu nykyiseen työhakemistoon (CWD) alkuperäisellä nimellä.

Edistymispalkin näyttäminen tiedostoa ladattaessa

Käytettävissä on vielä yksi esteettinen muutos kiemura komento ladataksesi tiedoston. Voit tarkastella tiedoston latauksen edistymistä päätelaitteen edistymispalkin muodossa. Sinun tarvitsee vain liittää -# vaihtoehto komennollasi ladataksesi tiedoston.

Katsotaanpa esimerkkiä tästä säädöstä.

Syntaksi:

curl -# -O [URL]

Esimerkki:

gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## ################################################# ################################################# ################################### 100,0% gaurav@ubuntu:~/workspace$ 

Lähtö:

gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$ 

Tässä tulosteessa voit havaita, että olen ladannut paketin nimeltä "emacs-defaults_47.0.tar.xz" CWD:ssäni ja edistymispalkki näkyy terminaalissa latauksen ollessa käynnissä.

Jatketaan keskeytettyä latausta CURL:ssä

Usein voi tapahtua tilanne, jossa sinun on ladattava suurempia tiedostoja. Joskus joistakin syistä, kuten sähkökatkosta tai verkkohäiriöstä, lataus voi keskeytyä kesken prosessin lataamatta koko tiedostoa. Vaikka painaisit Ctrl+C terminaalissa prosessi keskeytyy.

The kiemura -komento, kun sitä käytetään -C -vaihtoehto jatkaa keskeytettyä latausta.

Syntaksi:

curl -C - -O [URL]

Esimerkki:

Tässä kuvassa olen yrittänyt ladata Ubuntu 20.04 ISO -kuvan Ubuntu-verkkosivustolta.

gaurav @ ubuntu: ~ / työtila $ kiemura -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974% Yhteensä% sai% Xferd Keskinopeus Aika Aika Aika Nykyinen lataus Lataus Käytetty yhteensä vasen nopeus 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Tässä olen tietoisesti keskeyttänyt latausprosessin Ctrl+C.

Nyt käytän -C vaihtoehto kanssa kiemura komento jatkaaksesi keskeytettyä latausta samasta lähdesivustosta.

Lähtö:

gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.11884532.11884532.1188.118.1184373179.118um transfer**1709.1600251409251409225 tavun sijainti 1851392 % Yhteensä % Vastaanotettu % Xferd Keskimääräinen nopeus Aika Aika Nykyinen lataus Lataus Yhteensä käytetty Vasen nopeus 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:28 988

Lataus on poimittu kohdasta, jossa se keskeytettiin.

Tiedostojen lataaminen FTP-palvelimelta CURL:n avulla

Se on melko helppoa kanssa kiemura -komento ladataksesi tiedoston FTP-palvelimelta käyttämällä -u vaihtoehto. Sinun on annettava käyttäjätunnus ja salasana komentoon ennen URL-osoitteen syöttämistä.

Syntaksi:

curl -u [käyttäjänimi]:[salasana] [URL]

Esimerkkinä käytän julkista online-FTP:tä.

Esimerkki:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Yhteensä % Vastaanotettu % Xferd keskiarvo Nopeus Aika Aika Aika Nykyinen lataus Lataus Yhteensä käytetty jäljellä Nopeus 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Täällä olen ladannut tiedoston nimeltä "16-Sep-20-16-0-0.csv' tältä ftp-palvelimelta ja tallensin sen alkuperäisellä nimellä CWD:hen. Tarkistan ladatun tiedoston käyttämällä ls komento.

gaurav@ubuntu:~/työtila$ ls -al total 1092 drwxrwxr-x 3 gaurav gaurav 4096 16. syyskuuta 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 16. syyskuuta 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. syyskuuta 16:15 16. syyskuuta 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 16. syyskuuta 11:45 ath.html gaurav@ubuntu:~/workspace$

Useiden tiedostojen lataaminen yhdessä CURL:n avulla

Useiden tiedostojen lataaminen kerralla käyttämällä kiemura komento on hyvin yksinkertainen tehtävä. Käytät vain -O vaihtoehto kanssa kiemura komento samanlainen kuin olemme suorittaneet yllä olevissa lohkoissa.

Syntaksi:

curl -O [URL-1] -O [URL-2] -O[URL-n]

Esimerkki:

gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Yhteensä % Vastaanotettu % Xferd Keskinopeus Aika Aika Nykyinen Lataus Lataus Yhteensä käytetty vasen nopeus 100 63500 100 63500 0 0 550:580 :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/työtila $ 

Tässä esimerkissä olen ladannut kaksi eri pakettia Ubuntu-arkistosta.

Lähtö:

gaurav@ubuntu:~/työtila$ ls -al total 9596 drwxrwxr-x 3 gaurav gaurav 4096 16. syyskuuta 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 16. syyskuuta 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. syyskuuta 16:15 16. syyskuuta 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 16. syyskuuta 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 16. syyskuuta 16_29 apache.29 orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 16. syyskuuta 11:45 ath.html gaurav@ubuntu:~/workspace$ 

Molemmat paketit ladataan samanaikaisesti curl-komennolla.

Haetaan CURL-osoitteen HTTP-otsikoita

Minkä tahansa URL-osoitteen HTTP-otsikkokentät sisältävät hyödyllistä tietoa, kuten käyttäjäagentin, sisältötyypin, koodauksen jne. Nämä otsikkotiedostot tarjoavat myös tietoa viestin rungossa lähetetystä objektista. Pyynnön ja vastauksen tiedot saadaan myös näistä HTTP-otsikoista.

Voit käyttää kiemura komento kanssa -Minä vaihtoehto saada nämä URL-osoitteen HTTP-otsikot.

Syntaksi:

curl -I [URL]

Esimerkki:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP="Tämä ei ole P3P-käytäntö! Katso lisätietoja osoitteesta g.co/p3phelp." Päivämäärä: ke, 16. syyskuuta 2020 11:17:00 GMT Palvelin: gws X-XSS-suojaus: 0 X-Frame-vaihtoehdot: SAMEORIGIN-siirto-koodaus: lohkottu Vanhenee: ke, 16. syyskuuta 2020 11:17-00 GMT Hallinta: yksityinen Set-Cookie: 1P_JAR=2020-09-16-11; päättyy=pe, 16. lokakuuta 2020 11:17:00 GMT; polku=/; domain=.google.com; Secure Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; päättyy=to, 18-3-2021 11:17:00 GMT; polku=/; domain=.google.com; HttpOnly gaurav@ubuntu:~/työtila$

Tässä esimerkissä olen hakenut HTTP-otsikotwww.firefox.com‘.

C-lähdekoodin hakeminen CURL:n avulla

Käyttämällä kiemura komennon kanssa --libcurl vaihtoehto voi hakea C-lähdekoodin. Tästä ei ole merkittävää hyötyä maallikkokäyttäjille, mutta se voi osoittautua erittäin hyödylliseksi järjestelmäohjelmoijille, tietoturva-analyytikoille ja sovellusten kehittäjille.

Syntaksi:

curl [URL] > tiedostonimi --libcurl [kooditiedoston_nimi]

Esimerkki:

Tässä esimerkissä olen hakenut URL-osoitteen sisällön kaikki.miten ja tallentanut sen tiedostoon nimeltä gy_ath.html. C-lähdekoodi on tallennettu erikseen lähde.c tiedosto.

curl //www.allthings.how > gy_ath.html --libcurl source.c 

Lähtö:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Yhteensä % Vastaanotettu % Xferd Keskinopeus Aika Aika Nykyinen lataus Lataus Yhteensä käytetty vasen nopeus 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/työtila$

Tarkastetaan nyt ladatut tiedostot.

gaurav@ubuntu:~/työtila$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 16. syyskuuta 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 16. syyskuuta 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 16. syyskuuta 17:13 gy_ath.html -rw-r--r-- 1 gaurav5 gaurav 153 16. syyskuuta 17:13 source.c gaurav@ubuntu:~/workspace$

The lähde.c tiedosto sisältää lähdekoodin. Tämä voidaan näyttää päätteessä käyttämällä kissa komento. Olen laittanut muutaman rivin ulostulosta alla annettuun lohkoon.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* curl-komentorivityökalun luoma esimerkkikoodi ********* * Kaikki curl_easy_setopt()-vaihtoehdot on dokumentoitu osoitteessa: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ************************************ ****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; CURL *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, "//www.kaikki asiat.miten"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

Välityspalvelimen käyttäminen CURL:ssä URL-osoitteen käyttämiseen

Kuten johdannossa todettiin, kiemura komento tukee monenlaisia ​​protokollia, kuten FTP, SMTP, HTTPS, SOCKS jne. Joskus välityspalvelimen käyttäminen tiedostojen siirtämiseen tulee tärkeäksi, kun haluat nopeuttaa siirtoa ja myös suojata henkilöllisyyttäsi. kiemura -komentoa voidaan helposti käyttää tiedostojen siirtämiseen välityspalvelimen kautta liittämällä -x vaihtoehto sille.

Esimerkki:

curl -x [välityspalvelimen_osoite]:[portti] [URL]

Yllä olevassa esimerkissä olen olettanut, että välityspalvelimesi ei vaadi todennusta. Jos välityspalvelin vaatii todennuksen siirron aloittamiseksi, voit käyttää seuraavaa komentoa.

curl -u [käyttäjänimi]:[salasana] -x [välityspalvelimen_osoite]:[portti] [URL]

Tällä yksinkertaisella menetelmällä voimme siirtää tiedostoja välityspalvelimen kautta vaihtoehdolla -x käytetty kanssa kiemura komento.

Johtopäätös

Tässä lyhyessä opetusohjelmassa opimme kuinka kiemura -komento on hyödyllinen sisällön lataamisessa suoraan päätteestäsi. Opimme myös tämän komennon eri vaihtoehdoista, joita voidaan käyttää erilaisiin tehtäviin.