Ako používať Curl Command v Linuxe

Rozsiahla príručka vysvetľujúca použitie príkazu curl na načítanie webových stránok a sťahovanie súborov priamo z vášho terminálu

The zvlniť command je ďalší zaujímavý nástroj príkazového riadka, ktorý vám Linux môže ponúknuť. zvlniť príkaz umožňuje užívateľovi načítať súbory zo servera.

zvlniť je obľúbenou voľbou vývojárov aplikácií a častých používateľov Linuxu, pretože podporuje množstvo protokolov ako RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FILE, GOPHER, LDAP, LDAPS, POP3, POP3S atď.

zvlniť príkaz robí oveľa viac, než len načítava webové stránky za vás. Ak poznáte možnosti dostupné s týmto príkazom, bude pre vás všestrannejší. Poďme sa ponoriť do tutoriálu, aby sme získali dobrý prehľad o používaní zvlniť pomocou niekoľkých krátkych príkladov.

Inštalácia

Pred použitím zvlniť skontrolujte, či už je vo vašom systéme nainštalovaný. Použite príkaz curl --verzia skontrolovať, či zvlniť je nainštalovaný.

V prípade ak zvlniť nie je nainštalovaný, použite nasledujúce kroky.

Na systémoch založených na Ubuntu a Debiane, použiť:

aktualizácia sudo apt-get
sudo apt-get install curl

Na distribúciách RHEL, CentOs a Fedora, použiť:

sudo yum install curl

Teraz použite curl --verzia aby ste sa uistili, že je správne nainštalovaný.

curl --verzia

Výkon:

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) ng.0http2/1.3 0 librtmp/2.3 Release-Date: 2018-01-24 Protokoly: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Vlastnosti: Asynchdfile IDN GNT Keross IPv6 SPNEGO libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL gaurav@ubuntu:~$ 

Teraz sme pripravení použiť zvlniť príkaz.

Možnosti dostupné s príkazom CURL

Poďme sa najprv pozrieť na niektoré z prominentných možností, ktoré sú k dispozícii s zvlniť príkaz.

MožnosťPopis
-una sťahovanie súborov zo servera FTP
-Cobnoviť prerušené sťahovanie
-ouložiť výsledok zvlniť príkaz s preddefinovaným názvom súboru
-Jazískať hlavičky HTTP definovanej adresy URL
-Ouložiť výsledok zvlniť príkaz s pôvodným názvom súboru
--libcurlna výstup zdrojového kódu C, ktorý používa libcurl pre zadanú možnosť
-Xna použitie proxy na prístup k URL
-#na zobrazenie indikátora priebehu na zobrazenie stavu sťahovania

Načítanie webovej stránky pomocou CURL

The zvlniť Keď sa príkaz použije bez akejkoľvek možnosti, načíta obsah adresy URL zadanej v príkaze.

Syntax:

curl [URL]

Príklad:

curl //allthings.how

Výkon:

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 :skryté!dôležité;pretečenie-y:viditeľné!dôležité;min.výška:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!dôležité ;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!dôležité;pozícia:absolútne!dôležité;hore:0!dôležité;vľavo:0!dôležité;vpravo:0!dôležité;dole:0!dôležité;okraj:0!dôležité;zobrazenie:blok!dôležité} 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!important}#i-amphtml-wrapper>body{position:relative!important;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}prvok iframe amp-iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[predplatné -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>[update]{display :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}zoznam-ampov[zmeniteľné-deti]>.i-amphtml-loading-container.amp-hidden{display:none!important}zoznam amp [chyba načítania],zoznam amp [load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list[load-more] [load-more-failed],amp-list[load -viac] [načítať-viac-načítať]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[standalone]{min-height:1px - color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([vzdialenosť]):nie([aktívne]){transform:translateY(1000vh)!dôležité }amp-autocomplete{position:relative!important;display:inline-block!important}amp-autocomplete>input,amp-autocomplete>textarea{padding:0.5rem;border:1px solid rgba(0,0,0,0,33) }.i-amphtml-autocomplete-results,amp-autocomplete>input,amp-autocomplete>textarea{font-size:1rem;line-height:1.5rem}[amp-fx^=fly-in]{visibility:hidden} amp-script[nodom]{pozícia:pevné!dôležité;hore:0!dôležité;šírka:1px!dôležité;výška:1px!dôležité;pretečenie:skryté!dôležité;viditeľnosť:skryté} 

Tu sa obsah webovej stránky načíta priamo do vášho terminálu ako zdrojový kód.

Môžete použiť možnosti -o a -O s zvlniť príkaz na uloženie tohto obsahu do súboru.

Kedy -o Ak použijete túto možnosť, obsah adresy URL sa uloží do vášho aktuálneho adresára s používateľom definovaným názvom súboru.

Syntax:

curl -o [userdefined_filename] [URL]

Príklad:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Celkom % prijatých % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkom Spotrebované Doľava Rýchlosť 100 199 k 100 199 k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$ 

V tomto príklade je obsah z adresy URL „allthings.how“ uložený ako súbor HTML s názvom ath.html v mojom aktuálnom pracovnom adresári. Po otvorení tohto súboru HTML budem presmerovaný na webovú stránku, ktorá je uložená.

Sťahovanie súborov pomocou príkazu CURL

Pomocou -O voľba s príkazom curl tiež uloží obsah alebo webovú stránku alebo stiahnuteľný balík ako súbor, ale uloží tento súbor s pôvodným názvom.

Pozrime sa na to na príklade:

Príklad:

Tu som použil zvlniť príkaz s -O možnosť stiahnuť si balík Ubuntu s názvom „cherrytree_0.37.6-1.1_all.deb“ z úložiska balíkov Ubuntu.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Celkom % prijatých % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne odovzdané zaťaženie Celková vynaložená rýchlosť vľavo 100 613 k 100 613 k 0 0 220 k 0 0:00:02 0:00:02 --:--:-- 220 k gaurav@ubuntu:~/workspace$

Výkon:

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

Takže balík je teraz stiahnutý a uložený v aktuálnom pracovnom adresári (CWD) s pôvodným názvom.

Zobrazenie indikátora priebehu počas sťahovania súboru

Počas používania je k dispozícii ešte jedna estetická úprava zvlniť príkaz na stiahnutie súboru. Priebeh sťahovania súboru si môžete pozrieť na svojom termináli vo forme indikátora priebehu. Musíte len pripojiť -# možnosť s vaším príkazom stiahnuť súbor.

Pozrime sa na príklad tohto vylepšenia.

Syntax:

curl -# -O [URL]

Príklad:

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$ 

Výkon:

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

V tomto výstupe môžete pozorovať, že som si stiahol balík s názvom „emacs-defaults_47.0.tar.xz“ v mojom CWD a počas sťahovania sa v termináli zobrazuje indikátor priebehu.

Obnovuje sa prerušené sťahovanie v CURL

Mnohokrát môže nastať situácia, že budete musieť stiahnuť súbory väčšej veľkosti. Niekedy z určitých dôvodov, ako je výpadok napájania alebo zlyhanie siete, sa sťahovanie môže prerušiť uprostred procesu bez stiahnutia celého súboru. Aj keď stlačíte Ctrl+C v termináli sa proces preruší.

The zvlniť príkaz pri použití s -C obnoví prerušené sťahovanie.

Syntax:

curl -C - -O [URL]

Príklad:

Na tomto obrázku som sa pokúsil stiahnuť Ubuntu 20.04 ISO obraz z webovej stránky Ubuntu.

gaurav@ubuntu:~/workspace$ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1604-751501 % Celkom %4 Priemerná rýchlosť %20404751501 %206 %2041751507 Celkom Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkom vynaložené Zostávajúca rýchlosť 0 2656 M 0 1744 k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Tu som zámerne prerušil proces sťahovania Ctrl+C.

Teraz použijem -C možnosť s zvlniť príkaz na obnovenie prerušeného sťahovania z rovnakej zdrojovej webovej stránky.

Výkon:

gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1692025 01909 0184373179.1692025909 pozícia bajtu 1851392 % Celkom % Prijaté % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkom Spotrebované Doľava Rýchlosť 0 2654M 0 20,2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 9827

Sťahovanie bolo prevzaté z miesta, kde bolo prerušené.

Sťahovanie súborov z FTP servera pomocou CURL

Je to celkom jednoduché s zvlniť na stiahnutie súboru zo servera FTP pomocou príkazu -u možnosť. Pred zadaním adresy URL musíte do príkazu zadať používateľské meno a heslo.

Syntax:

curl -u [používateľské meno]:[heslo] [URL]

Pre ilustráciu budem používať online verejné FTP.

Príklad:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Celkom % prijatých % Xferd Priemer Rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkové vyčerpané Zostávajúce Rýchlosť 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Tu som stiahol súbor s názvom „16-Sep-20-16-0-0.csv’ z tohto ftp servera a uložil som ho s pôvodným názvom do môjho CWD. Skontrolujem stiahnutý súbor pomocou ls príkaz.

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

Sťahovanie viacerých súborov naraz pomocou CURL

Sťahovanie viacerých súborov naraz pomocou zvlniť príkaz je veľmi jednoduchá úloha. Stačí použiť -O možnosť s zvlniť príkaz podobný tomu, aký sme vykonali vo vyššie uvedených blokoch.

Syntax:

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

Príklad:

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 % Celkom % prijatých % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Nahrávanie Celkom Spotrebované Zostávajúca rýchlosť 100 63500 100 63500 0 0 554008 0 0: :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/workspace $ 

V tomto príklade som si stiahol dva rôzne balíčky z úložiska Ubuntu.

Výkon:

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

Tieto dva balíčky sa stiahnu súčasne pomocou príkazu curl.

Načítavanie hlavičiek HTTP adresy URL s CURL

Polia hlavičky HTTP ľubovoľnej adresy URL obsahujú užitočné informácie, ako je používateľský agent, typ obsahu, kódovanie atď. Tieto hlavičkové súbory tiež poskytujú informácie o objekte odoslanom v tele správy. Podrobnosti o požiadavke a odpovedi sú tiež získané z týchto HTTP hlavičiek.

Môžeš použiť zvlniť príkaz s -Ja možnosť získať tieto hlavičky HTTP adresy URL.

Syntax:

curl -I [URL]

Príklad:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP="Toto nie je zásada P3P! Viac informácií nájdete na g.co/p3phelp." Dátum: Streda, 16. september 2020 11:17:00 GMT Server: gws X-XSS-Protection: 0 X-Frame-Možnosti: SAMEORIGIN Kódovanie prenosu: chunked Platnosť: Streda, 16. september 2020 11:17:00 GMT Cache- Kontrola: súkromný Set-Cookie: 1P_JAR=2020-09-16-11; expiruje=pi, 16-okt-2020 11:17:00 GMT; cesta=/; doména=.google.com; Secure Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; expiruje=Št, 18-Mar-2021 11:17:00 GMT; cesta=/; doména=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

V tomto príklade som načítal hlavičky HTTP z „www.firefox.com‘.

Načítanie zdrojového kódu C pomocou CURL

Použitím zvlniť príkaz s --libcurl možnosť môže načítať zdrojový kód C. Toto nemá význam pre laických používateľov, ale môže sa ukázať ako veľmi užitočné pre systémových programátorov, bezpečnostných analytikov a vývojárov aplikácií.

Syntax:

curl [URL] > názov súboru --libcurl [kód_súboru]

Príklad:

V tomto príklade som načítal obsah adresy URL všetko.ako a uložili ho do súboru s názvom gy_ath.html. Zdrojový kód C je oddelene uložený v zdroj.c súbor.

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

Výkon:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Celkom % prijatých % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkom vynaložené Zostávajúca rýchlosť 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Poďme teraz skontrolovať stiahnuté súbory.

gaurav@ubuntu:~/workspace$ ls -al celkom 404 drwxrwxr-x 3 gaurav gaurav 4096 16. september 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 16. september 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 16. september 17:13 gy_ath.html -rw-r--r-- 1 gau15 gau 16. september 17:13 source.c gaurav@ubuntu:~/workspace$

The zdroj.c súbor obsahuje zdrojový kód. Toto je možné zobraziť na termináli pomocou kat príkaz. Do nižšie uvedeného bloku som vložil niekoľko riadkov z výstupu.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* Vzorový kód vygenerovaný nástrojom príkazového riadka curl ********** * Všetky možnosti curl_easy_setopt() sú zdokumentované na: * //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.allthings.how"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

Použitie proxy v CURL na prístup k URL

Ako bolo uvedené v úvode, zvlniť príkaz podporuje širokú škálu protokolov ako FTP, SMTP, HTTPS, SOCKS atď. Niekedy je použitie proxy servera na prenos súborov dôležité, keď chcete zvýšiť rýchlosť prenosu a tiež chrániť svoju identitu. zvlniť príkaz možno jednoducho použiť na prenos súborov cez proxy server pripojením -X možnosť k tomu.

Príklad:

curl -x [adresa_proxy]:[port] [URL]

Vo vyššie uvedenom príklade som predpokladal, že váš proxy nevyžaduje žiadne overenie. V prípade, že proxy vyžaduje na spustenie prenosu autentifikáciu, môžete použiť nasledujúci príkaz.

curl -u [používateľské meno]:[heslo] -x [adresa_proxy]:[port] [URL]

Pomocou tejto jednoduchej metódy môžeme prenášať súbory cez proxy server s možnosťou voľby -X používa sa s zvlniť príkaz.

Záver

V tomto krátkom návode sme sa naučili ako zvlniť Príkaz sa ukázal ako užitočný pri sťahovaní obsahu priamo z vášho terminálu. Dozvedeli sme sa tiež o rôznych možnostiach, ktoré má tento príkaz k dispozícii na použitie pre rôzne úlohy.