Jak používat Curl Command v Linuxu

Rozsáhlý průvodce vysvětlující použití příkazu curl k načítání webových stránek a stahování souborů přímo z vašeho terminálu

The kučera command je další zajímavý nástroj příkazového řádku, který vám Linux může nabídnout. kučera umožňuje uživateli načítat soubory ze serveru.

kučera je oblíbenou volbou vývojářů aplikací a častých uživatelů Linuxu, protože podporuje řadu protokolů jako RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FILE, GOPHER, LDAP, LDAPS, POP3, POP3S atd.

kučera příkaz dělá mnohem víc než jen načítání webových stránek za vás. Díky znalosti možností, které jsou s tímto příkazem k dispozici, je pro vaše použití univerzálnější. Pojďme se ponořit do tutoriálu, abychom získali dobrou představu o používání kučera pomocí několika krátkých příkladů.

Instalace

Před použitím kučera zkontrolujte, zda je již ve vašem systému nainstalován. Použijte příkaz curl --verze zkontrolovat jestli kučera je nainstalován.

V případě, že kučera není nainstalován, použijte následující kroky.

Na systémech založených na Ubuntu a Debianu použití:

aktualizace sudo apt-get
sudo apt-get install curl

Na distrech RHEL, CentOs a Fedora, použití:

sudo yum install curl

Nyní použijte curl --verze příkaz, abyste se ujistili, že je správně nainstalován.

curl --verze

Výstup:

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

Nyní jsme připraveni použít kučera příkaz.

Možnosti dostupné pomocí příkazu CURL

Pojďme se nejprve podívat na některé z prominentních možností, které jsou k dispozici s kučera příkaz.

VolbaPopis
-ustahování souborů z FTP serveru
-Cpro obnovení přerušeného stahování
uložit výsledek kučera příkaz s předdefinovaným názvem souboru
-Jázískat hlavičky HTTP definované adresy URL
uložit výsledek kučera příkaz s původním názvem souboru
--libcurlpro výstup zdrojového kódu C, který používá libcurl pro zadanou možnost
-Xk použití proxy pro přístup k URL
-#pro zobrazení indikátoru průběhu pro zobrazení stavu stahování

Načtení webové stránky pomocí CURL

The kučera Pokud je příkaz použit bez jakékoli možnosti, načte obsah adresy URL zadané v příkazu.

Syntax:

curl [URL]

Příklad:

curl //allthings.how

Výstup:

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!důležité;přetečení-y:viditelné!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é;pozice:absolutní!důležité;nahoře:0!důležité;vlevo:0!důležité;vpravo:0!důležité;dole:0!důležité;okraj:0!důležité;zobrazit: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}prvek iframe amp-iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[předplatné -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}amp-list[změnitelné-děti]>.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] [načíst-více-načítání]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[standalone]{min-height:1px !důležité;displej:blok!důležité;výška:100%!důležité;okraj:0!důležité;výplň:0!důležité;přetečení:skryté!důležité;šířka:100%!důležité}amp-příběh[samostatný] 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([vzdálenost]):not([aktivní]){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]{position:fixed!důležité;horní:0!důležité;šířka:1px!důležité;výška:1px!důležité;přetečení:skryto!důležité;viditelnost:skryto} 

Zde je obsah webové stránky načten přímo do vašeho terminálu jako zdrojový kód.

Můžete použít možnosti a s kučera příkaz k uložení tohoto obsahu do souboru.

Když Pokud použijete volbu, obsah URL se uloží do vašeho aktuálního adresáře s uživatelem definovaným názvem souboru.

Syntax:

curl -o [název_uživatelského_souboru] [URL]

Příklad:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Celkem % přijatých % Xferd Průměrná rychlost Čas Čas Čas Aktuální Dload Nahrání Celkem Utraceno Levá rychlost 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 příkladu je obsah z adresy URL „allthings.how“ uložen jako soubor HTML s názvem ath.html v mém aktuálním pracovním adresáři. Po otevření tohoto HTML souboru budu přesměrován na webovou stránku, která je uložena.

Stahování souborů pomocí příkazu CURL

Za použití volba s příkazem curl také uloží obsah nebo webovou stránku nebo balíček ke stažení jako soubor, ale uloží tento soubor s původním názvem.

Podívejme se na to na příkladu:

Příklad:

Zde jsem použil kučera příkaz s možnost stáhnout balíček Ubuntu s názvem „cherrytree_0.37.6-1.1_all.deb“ z úložiště balíčků Ubuntu.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Celkem % přijatých % Xferd Průměrná rychlost Čas Čas Čas Aktuální stahování Celková útrata Levá rychlost 100 613 k 100 613 k 0 0 220 k 0 0:00:02 0:00:02 --:--:-- 220 k gaurav@ubuntu:~/workspace$

Výstup:

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

Balíček je tedy nyní stažen a uložen do aktuálního pracovního adresáře (CWD) s původním názvem.

Zobrazení ukazatele průběhu při stahování souboru

Při používání je k dispozici ještě jedna estetická úprava kučera příkaz ke stažení souboru. Průběh stahování souboru můžete sledovat ve formě ukazatele průběhu na vašem terminálu. Stačí připojit -# možnost s vaším příkazem stáhnout soubor.

Podívejme se na příklad tohoto vylepšení.

Syntax:

curl -# -O [URL]

Pří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ýstup:

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ýstupu můžete pozorovat, že jsem si stáhl balíček s názvem „emacs-defaults_47.0.tar.xz‘ v mém CWD a během stahování se v terminálu zobrazí indikátor průběhu.

Obnovení přerušeného stahování v CURL

Mnohokrát může nastat situace, kdy budete muset stahovat soubory větší velikosti. Někdy z nějakých důvodů, jako je výpadek napájení nebo selhání sítě, se stahování může přerušit uprostřed procesu, aniž by se stáhl celý soubor. I když stisknete Ctrl+C v terminálu se proces přeruší.

The kučera příkaz při použití s -C obnoví přerušené stahování.

Syntax:

curl -C - -O [URL]

Příklad:

Na tomto obrázku jsem se pokusil stáhnout Ubuntu 20.04 ISO obraz z webu Ubuntu.

gaurav@ubuntu:~/workspace$ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1604751509 Celková rychlost %206290451501 %209 %20490451501 %209 %209 %4017 % celkem %206 % Čas Čas Čas Aktuální Dload Nahrání Celková útrata Levá rychlost 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Zde jsem záměrně přerušil proces stahování Ctrl+C.

Nyní použiji -C možnost s kučera příkaz k obnovení přerušeného stahování ze stejného zdrojového webu.

Výstup:

gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1672025901 01.04.04 1414 145 0414929102590159 pozice bajtu 1851392 % Celkem % Přijato % Xferd Průměrná rychlost Čas Čas Čas Aktuální Dload Nahrání Celkem Utraceno Levá rychlost 0 2654M 0 20,2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 9827

Stahování bylo obnoveno z místa, kde bylo přerušeno.

Stahování souborů z FTP serveru pomocí CURL

Je to docela snadné s kučera příkaz ke stažení souboru z FTP serveru pomocí -u volba. Před zadáním URL musíte do příkazu zadat uživatelské jméno a heslo.

Syntax:

curl -u [uživatelské jméno]:[heslo] [URL]

Pro ilustraci budu používat online veřejné FTP.

Příklad:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Celkem % přijatých % Xferd Průměr Rychlost Čas Čas Čas Aktuální stahování Nahrání Celková útrata zbývá Rychlost 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Zde jsem stáhl soubor s názvem „16-Sep-20-16-0-0.csv’ z tohoto ftp serveru a uložil jej s původním názvem do mého CWD. Zkontroluji stažený soubor pomocí ls příkaz.

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

Stahování více souborů dohromady pomocí CURL

Stahování více souborů najednou pomocí kučera příkaz je velmi jednoduchý úkol. Stačí použít možnost s kučera příkaz podobný způsobem, který jsme provedli ve výše uvedených blocích.

Syntax:

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

Pří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 % Celkem % přijatých % Xferd Průměrná rychlost Čas Čas Čas Aktuální Dload Nahrání Celkem Utraceno Levá rychlost 100 63500 100 63500 0 0 554008 0 0: :01 0:00:01 --:--:-- 55458 100 8436 k 100 8436 k 0 0 123 k 0 0:01:08 0:01:08 --:--:-- 127 k gaurav@ubuntu:~/workspace $ 

V tomto příkladu jsem si stáhl dva různé balíčky z úložiště Ubuntu.

Výstup:

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

Oba balíčky se stahují současně pomocí příkazu curl.

Načítání HTTP hlaviček URL s CURL

Pole záhlaví HTTP libovolné adresy URL obsahuje užitečné informace, jako je uživatelský agent, typ obsahu, kódování atd. Tyto soubory záhlaví také poskytují informace o objektu odeslaném v těle zprávy. Podrobnosti o požadavku a odpovědi jsou také získány z těchto HTTP hlaviček.

Můžeš použít kučera příkaz s -Já možnost získat tato záhlaví HTTP adresy URL.

Syntax:

curl -I [URL]

Pří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 není zásada P3P! Další informace najdete na g.co/p3phelp." Datum: středa, 16. září 2020 11:17:00 GMT Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Transfer-Encoding: chunked Platnost: St, 16. září 2020 11:17:00 GMT Cache- Ovládání: soukromý Set-Cookie: 1P_JAR=2020-09-16-11; expires=Pá, 16-Oct-2020 11:17:00 GMT; cesta=/; doména=.google.com; Secure Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; expiruje=Čt, 18. března 2021 11:17:00 GMT; cesta=/; doména=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

V tomto příkladu jsem načetl HTTP hlavičky „www.firefox.com‘.

Načítání kódu C-Source pomocí CURL

Použitím kučera příkaz s --libcurl možnost může načíst zdrojový kód C. Pro laické uživatele to nemá žádné významné využití, ale může se ukázat jako velmi užitečné pro systémové programátory, bezpečnostní analytiky a vývojáře aplikací.

Syntax:

curl [URL] > název souboru --libcurl [kód_souboru]

Příklad:

V tomto příkladu jsem načetl obsah adresy URL všechno.jak a uložili jej do souboru s názvem gy_ath.html. Zdrojový kód C je samostatně uložen v zdroj.c soubor.

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

Výstup:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Celkem % přijatých % Xferd Průměrná rychlost Čas Čas Čas Aktuální Dload Nahrání Celkem Utraceno Levá rychlost 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Nyní zkontrolujeme stažené soubory.

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

The zdroj.c soubor obsahuje zdrojový kód. To lze zobrazit na terminálu pomocí kočka příkaz. Vložil jsem pár řádků z výstupu do níže uvedeného bloku.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* Ukázkový kód generovaný nástrojem příkazového řádku curl ********** * Všechny možnosti curl_easy_setopt() jsou zdokumentovány 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žití proxy v CURL pro přístup k URL

Jak bylo řečeno v úvodu, kučera příkaz podporuje širokou škálu protokolů jako FTP, SMTP, HTTPS, SOCKS atd. Někdy je použití proxy serveru pro přenos souborů důležité, když chcete zvýšit rychlost přenosu a také chránit svou identitu. kučera příkaz lze snadno použít k přenosu souborů přes proxy server připojením -X možnost k tomu.

Příklad:

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

Ve výše uvedeném příkladu jsem předpokládal, že váš proxy nevyžaduje žádné ověření. V případě, že proxy vyžaduje autentizaci pro zahájení přenosu, můžete použít následující příkaz.

curl -u [uživatelské jméno]:[heslo] -x [adresa_proxy]:[port] [URL]

Pomocí této jednoduché metody můžeme přenášet soubory přes proxy server s možností volby -X používá se s kučera příkaz.

Závěr

V tomto krátkém tutoriálu jsme se naučili, jak na to kučera se ukázalo jako užitečné při stahování obsahu přímo z vašeho terminálu. Také jsme se dozvěděli o různých možnostech dostupných s tímto příkazem, které lze použít pro různé úlohy.