GNU/Linux >> Znalost Linux >  >> Linux

Nejpoužívanější a nejoblíbenější cURL příkazy v praxi

cURL, zkratka pro „Client for URLs“, je nástroj příkazového řádku pro přenos dat pomocí různých protokolů. Tento článek si klade za cíl poskytnout příkazy, které jsou široce používané, a slouží jako praktický odkaz.

Obsah

  • Stáhnout jeden soubor
  • Uložte výstup cURL do souboru
  • Skrýt ukazatel průběhu
  • Načíst více souborů najednou
  • Sledujte záhlaví umístění HTTP s volbou -L
  • Pokračovat/obnovit předchozí stahování
  • Používejte proxy s ověřením nebo bez něj
  • Dotaz na záhlaví HTTP
  • Nahrát soubory na server FTP
  • Stahování souborů ze serveru FTP
  • Seznam/stažení pomocí rozsahů
  • Další informace o možnostech podrobného a trasování
  • Odesílání pošty pomocí protokolu SMTP
  • Kontrola podpory HTTP/2
  • Simulujte metody HTTP
  • Zadejte požadavek POST s parametry
  • Závěr

Můžete vyvolat curl příkaz z vašeho terminálu, aniž byste přemýšleli o způsobech jeho instalace, protože je předinstalovaný na většině operačních systémů založených na Linuxu.

Existuje velké množství případů použití pro curl, jako například:

  • Nahrání FTP
  • Podpora proxy
  • Připojení SSL
  • Příspěvek HTTP

cURL také podporuje použití všech následujících protokolů:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP , SMTPS, TELNET a TFTP.

Stáhnout jeden soubor

Následující příkaz získá obsah adresy URL a zobrazí ji ve STDOUT (tj. na vašem terminálu).

curl https://www.gnu.org

Chcete-li výstup uložit do souboru, přesměrujte jej, jak je znázorněno níže. Zobrazí se také některé další statistiky stahování.

curl https://www.gnu.org > gnu-org.html

Uložit výstup cURL do souboru

Výsledek příkazu cURL můžeme uložit do souboru pomocí -o /-O možnosti.

  • -o (malé o) výsledek bude uložen pod názvem souboru zadaným v příkazovém řádku
  • -O (velké O) název souboru v URL bude převzat a bude použit jako název souboru pro uložení výsledku
curl -o my-gettext.html https://www.gnu.org/software/gettext/manual/gettext.html 

Výsledkem je nyní stránka gettext.html se uloží do souboru s názvem my-gettext.html . Také si můžete všimnout, že při spuštění cURL s -o zobrazí indikátor průběhu stahování následovně.

Když používáte cURL -O , uloží obsah do samotného souboru s názvem ‚gettext.html‘ na místním počítači.

curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Poznámka:Když se curl musí zapsat data do terminálu, deaktivuje měřič pokroku, aby se předešlo zmatkům při tisku. Můžeme použít > , -o , -O možnosti přesunout výsledek do souboru.

Skrýt ukazatel průběhu

cURL ve výchozím nastavení zobrazuje ukazatel průběhu. Chcete-li jej skrýt, -s (--silent ) lze použít.

curl -s -O http://www.gnu.org/software/gettext/manual/gettext.html

Pokud to z nějakého důvodu na vaší platformě nefunguje, můžete vždy přesměrovat stderr na /dev/null :

curl -O http://www.gnu.org/software/gettext/manual/gettext.html 2>/dev/null

Načíst více souborů najednou

Samozřejmě můžeme stáhnout více souborů najednou zadáním adres URL na příkazovém řádku.

curl -O https://www.gnu.org/software/gettext/manual/html_node/index.html -O https://www.gnu.org/software/gettext/manual/gettext.html 

Sledovat záhlaví umístění HTTP s možností -L

Ve výchozím nastavení se však cURL neřídí hlavičkami umístění HTTP. Označuje se také jako přesměrování. Když se požadovaná webová stránka přesune na jiné místo, bude jako odpověď odeslána hlavička umístění HTTP a bude tam, kde se skutečná webová stránka nachází.

Můžeme trvat na tom, aby cURL následovalo přesměrování pomocí -L možnost, jak je uvedeno níže.

curl -L https://www.google.com

Pokračovat/obnovit předchozí stahování

Pomocí cURL -C můžete pokračovat ve stahování, které již bylo z nějakého důvodu zastaveno. To bude užitečné, když stahujete velké soubory a stahování bylo přerušeno.

Řekneme-li -C - , pak cURL najde, odkud začít obnovovat stahování. Můžeme také zadat offset -C <offset> . Dané offsetové bajty budou u zdrojového souboru přeskočeny od začátku.

Zahajte velké stahování pomocí curl a stiskněte Ctrl-C pro zastavení mezi stahováním.

curl -O https://www.gnu.org/software/gettext/manual/gettext.html

Pomocí curl -C - , můžeme pokračovat ve stahování od místa, kde skončilo dříve.

curl -C - -O https://www.gnu.org/software/gettext/manual/gettext.html

Použít proxy s ověřením nebo bez něj

Pokud jste za proxy serverem naslouchajícím na portu 8080 na adrese proxy.yourdomain.com, postupujte takto:

curl -x proxy.yourdomain.com:8080 -U user:password -O https://www.gnu.org/software/gettext/manual/gettext.html 

kde můžete přeskočit -U user:password pokud váš proxy nevyžaduje ověření.

Dotaz na záhlaví HTTP

Záhlaví HTTP umožňuje vzdálenému webovému serveru odeslat další informace o sobě spolu se skutečným požadavkem. Kromě toho poskytuje klientovi podrobnosti o tom, jak je požadavek vyřízen.

Chcete-li se dotázat na záhlaví HTTP z webu, postupujte takto:

curl -I https://www.gnu.org
HTTP/1.1 200 OK
Date: Mon, 13 Jul 2020 21:22:32 GMT
Server: Apache/2.4.7
Content-Location: home.html
Vary: negotiate,accept-language,Accept-Encoding
TCN: choice
Strict-Transport-Security: max-age=63072000
Access-Control-Allow-Origin: (null)
Accept-Ranges: bytes
Cache-Control: max-age=0
Expires: Mon, 13 Jul 2020 21:22:32 GMT
Content-Type: text/html
Content-Language: en

Nahrání souborů na FTP server

cURL lze také použít k nahrávání souborů na FTP server pomocí -T možnost.

curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.server.com

V důsledku toho výše uvedený příkaz nahraje soubor s názvem myfile.txt na FTP server. Můžete také nahrát více souborů současně pomocí operací rozsahu.

curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.server.com

Volitelně můžeme použít . pro získání vstupu ze STDIN a přenos do dálkového ovladače.

curl -u ftpuser:ftppass -T - ftp://ftp.server.com/mynewfile.txt

Výše uvedený příkaz získá vstup od uživatele ze standardního vstupu a uloží obsah na ftp server pod názvem mynewfile.txt .

Můžete zadat jeden -T pro každou adresu URL a dvojice určuje, co kam nahrát.

Stahování souborů z FTP serveru

cURL lze také použít ke stahování souborů z FTP serverů. Pokud je daná cesta FTP adresářem, ve výchozím nastavení zobrazí soubory v konkrétním adresáři.

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/mysql.php

Výše uvedený příkaz stáhne mysql.php soubor z ftp serveru a uložte jej do místního adresáře.

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Zde daná adresa URL odkazuje na adresář. Takže cURL vypíše všechny soubory a adresáře pod danou URL.

Seznam/stažení pomocí rozsahů

cURL podporuje rozsahy, které mají být uvedeny v URL. Po zadání rozsahu budou staženy soubory odpovídající rozsahu. Bude užitečné stáhnout balíčky z FTP mirrorů.

curl http://ftp.us.debian.org/debian/pool/main/[a-z]/

Výše uvedený příkaz vypíše seznam všech balíků z a-z rozsahy v terminálu.

Další informace pomocí možnosti Verbose a Trace

Pomocí -v můžete zjistit, co se děje volba. Tato volba povolí podrobný režim a vytiskne podrobnosti.

curl -v https://www.gnu.org

Příkaz about vypíše následující:

*   Trying 209.51.188.148:443...
* Connected to www.gnu.org (209.51.188.148) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=emacs.org
*  start date: Jun 17 09:07:40 2020 GMT
*  expire date: Sep 15 09:07:40 2020 GMT
*  subjectAltName: host "www.gnu.org" matched cert's "www.gnu.org"
*  issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
*  SSL certificate verify ok.
> GET / HTTP/1.1
> Host: www.gnu.org
> User-Agent: curl/7.71.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 13 Jul 2020 21:56:04 GMT
< Server: Apache/2.4.7
< Content-Location: home.html
< Vary: negotiate,accept-language,Accept-Encoding
< TCN: choice
< Strict-Transport-Security: max-age=63072000
< Access-Control-Allow-Origin: (null)
< Accept-Ranges: bytes
< Cache-Control: max-age=0
< Expires: Mon, 13 Jul 2020 21:56:04 GMT
< Transfer-Encoding: chunked
< Content-Type: text/html
< Content-Language: en
< 
...

Odesílat poštu pomocí protokolu SMTP

cURL lze také použít k odesílání pošty pomocí protokolu SMTP. Měli byste zadat adresu odesílatele, příjemce a ip-adresu poštovního serveru, jak je uvedeno níže.

curl --mail-from [email protected] --mail-rcpt [email protected] smtp://mailserver.com 

Po zadání výše uvedeného příkazu bude čekat, až uživatel poskytne data e-mailu. Po vytvoření zprávy napište . (tečka) jako poslední řádek, který e-mail okamžitě odešle.

Kontrola podpory HTTP/2

Pokud máte nejnovější verzi cURL, můžete použít --http2 možnost zkontrolovat, zda konkrétní URL podporuje nový protokol HTTP/2. Pokud tedy web podporuje HTTP/2, uvidíte HTTP/2.0 200 v záhlaví namísto HTTP/1.1 200 .

curl -I --http2 https://www.opensource.com

Simulace metod HTTP

 GET metoda se používá k načtení zdrojů z konkrétní adresy URL. Jednoduchý curl https://www.gnu.org/ příkaz použije GET jako výchozí metodu HTTP, lze ji však zadat také pomocí --request GET nebo -X GET .

curl --request GET https://www.gnu.org

 POST metoda se používá k odesílání informací na webový server (např. komentář na fóru). To lze zadat pomocí --request POST nebo -X POST .

curl --request POST https://yourwebsite.com

Tlačítko DELETE metoda odstraní zdroj z webového serveru přidruženého ke konkrétní adrese URL. To lze zadat pomocí --request DELETE nebo -X DELETE .

curl --request DELETE https://yourwebsite.com

 PUT metoda vytvoří nebo nahradí zdroj na základě dat, která klient odešle na webový server. (např. vytvoření nové webové stránky nebo aktualizace stávající). To lze zadat pomocí --request PUT nebo -X PUT .

curl --request PUT https://yourwebsite.com

Zadat požadavek POST s parametry

Následující příkaz odešle animal1 a animal2 parametry spolu s jejich odpovídajícími hodnotami na https://yourdomain.com/animals.php

curl --request POST --data "animal1=cat&animal2=dog" https://yourdomain.com/animals.php

Tento tip můžete použít k simulaci chování běžného formuláře HTML.

Závěr

V tomto příspěvku jsme vysvětlili co je cURL a co můžete dělat s některými základními příkazy. Chcete-li se o cURL dozvědět více, můžete navštívit webovou stránku projektu.


Linux
  1. Linuxové příkazy – přehled a příklady

  2. lsof :Nejčastěji používané příklady

  3. ip vs ifconfig příkazy pro a proti

  1. 40 Základních často používaných příkazů Linuxu

  2. 10 nejlepších a nejoblíbenějších motivů ikon pro Linux

  3. 7 nejpoužívanějších jmenných prostorů Linuxu

  1. Linuxové příkazy:jobs, bg a fg

  2. Nejužitečnější příkazy Nginx v systému Linux

  3. [Linux]:15 nejčastěji používaných příkazů YUM s příklady