logo

Curl Command v Linuxu s příklady

Linux příkaz curl se používá ke stahování nebo nahrávání dat na server prostřednictvím podporovaných protokolů, jako jsou HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP atd. Jedná se o vzdálený nástroj, takže funguje bez interakce uživatele.

Přenos dat z jednoho místa na druhé je jedním z nejdůležitějších a nejpoužívanějších úkolů počítačového systému. Pro přenos dat je však k dispozici mnoho nástrojů GUI. Ale při práci na příkazovém řádku se to trochu komplikuje. Nástroj curl nám umožňuje přenášet data přes příkazový řádek.

Curl je nástroj příkazového řádku pro získávání a odesílání dat, jako jsou soubory se syntaxí URL. Podporuje všechny protokoly, které podporuje libcurl, protože používá libcurl. Curl poskytuje podporu pro HTTPS a implementuje ověření certifikátu SSL, když je ve výchozím nastavení zmíněn zabezpečený protokol, jako je HTTPS. Curl přinese certifikát vzdáleného serveru a zkontroluje certifikát CA, aby ušetřil platnost vzdáleného serveru a nezaručil, že vzdálený server je ten, který požaduje, když se curl spojuje se vzdáleným serverem pomocí HTTPS.

Existuje mnoho možností, jak definovat certifikát CA, např --kapat a --cacert . Volbu, tj. --cacert, lze použít k určení umístění souboru úložiště certifikátů CA. Pokud soubor certifikátu CA není k dispozici na platformě Windows, curl vyhledá název souboru certifikátu CA „curl-ca-bundle.crt“ v následujícím pořadí:

  • Adresář, ve kterém je program curl přítomen.
  • Aktuální pracovní adresář.
  • Systémový adresář (Windows).
  • Adresář (Windows).
  • Adresáře jsou zmíněny v proměnných prostředí %PATH%.

Curl zobrazí chybovou zprávu, když vzdálený server používá certifikát podepsaný svým držitelem nebo když certifikát vzdáleného serveru není podepsán prostřednictvím CA uvedeného v souboru certifikátu CA. Pro přeskočení ověření certifikátu lze použít volbu --insecure nebo -k. Certifikát vzdálené CA může být alternativně zahrnut do souboru úložiště certifikátů CA, pokud je vzdálený server platný.

Curl poskytuje sběrnici užitečných triků, jako je obnovení přenosu souborů, cookies, připojení SSL, HTTP post, FTP upload, autentizace uživatele, podpora proxy a další. Curl je mechanizován libcurl pro každý aspekt související s přenosem.

Co je libcurl?

libcurl je bezplatná knihovna pro přenos URL na straně klienta. Podporuje SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP proxy tunelování, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT a cookies. Knihovna také podporuje autentizaci uživatele plus heslo, proxy, LDAPS, certifikáty HTTPS, odesílání na základě formuláře HTTP, odesílání FTP, obnovení přenosu souborů, TFTP, Telnet, SFTP a schéma URL souboru.

libcurl je kompaktní. Identicky vytváří a funguje na několika platformách, včetně 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 a AIX.

Knihovna libcurl je kompatibilní s IPv6, bezpečná pro vlákna a zdarma. Vazby jsou také k dispozici pro více než 50 jazyků, včetně Pythonu, PHP, Javy a C/C++.
Knihovna libcurl podporuje SChannel, gskit na IBM i, NSS, mbed TLS, GnuTLS na Windows, Secure Trasport na iOS a macOS, TLS/SSL přes OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl a Boringssl.

Syntax:

Základní syntaxe pro použití curl je následující:

 curl [options] [URL...] 

Z výše uvedené syntaxe

URL:

Syntaxe adresy URL je obecná adresa URL závislá na protokolu. Můžeme zadat více adres URL následovně:

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

Možnosti:

Příkaz curl podporuje následující možnosti příkazového řádku:

--abstract-unix-socket : Používá se k připojení přes abstraktní doménový soket Unix namísto sítě.

--anyauth: Používá se k příkazu curl pro ověření metody samotné pro použití nejbezpečnější metody. Tato utilita je volitelná utilita '--basic, --digest, --ntlm a vyjednávat,' která se používá k nastavení konkrétní metody ověřování.

-a, --připojit: Slouží k nahrávání souborů. Soubor spíše připojí, než aby jej přepsal. Pokud daný soubor na serveru neexistuje, vytvoří jej.

js víceřádkový řetězec

--základní: Specifikuje použití základní autentizace HTTP. Je to výchozí možnost příkazu curl. Je to užitečné pro přepsání předchozího nastavení.

--cacert: Je určen pro použití konkrétního souboru certifikátu k ověření rovnocenného partnera. Soubory mohou mít několik certifikátů CA. Standardní formát certifikátů je PEM, takže v něm musí být všechny certifikáty.

--capath: Je určen pro použití konkrétního adresáře k ověření partnera. Můžeme zadat více cest tak, že je oddělíme dvojtečkou (:), například 'cesta: cesta2:cesta3'. Standardní formát certifikátů je PEM, takže v něm musí být všechny certifikáty.

--cert-status: Slouží k ověření stavu certifikátu serveru. Používá Certificate Status Request nebo OCSP sešívání TLS.

--typ-certifikátu: Určuje poskytnutý typ certifikátu curl. Tyto certifikáty mohou být ve formátu PEM, DER a ENG. Výchozí hodnota je PEM. Pokud je zadáno vícekrát, poslední hodnota bude převzata zvlněním.

-E, --certifikát: Je určen pro použití souboru klientského certifikátu při získávání souboru prostřednictvím jakéhokoli protokolu založeného na SSL, jako je HTTPS, FTPS atd.

--šifry: Slouží k výběru šifer, které se mají ve spojení použít.

--compressed-ssh: Používá se k povolení vestavěné komprese SSH. Tato možnost bude brána jako požadavek serveru, takže server ji může nebo nemusí přijmout.

--stlačený: Používá se k vyžádání komprimované odpovědi pomocí algoritmů curl a uloží nekomprimovaný dokument. Tato možnost odešle zprávu o nepodporovaném kódování curl.

-K, --config : Používá se k popisu textového souboru pro čtení argumentů curl. Curl použije argumenty příkazového řádku z textového souboru.

--connect-timeout: Používá se k určení maximální doby v sekundách pro časový limit připojení curl.

--připojit k : Slouží k vytvoření požadavku na danou dvojici hostitele a portu; jinak se připojí k dalšímu páru. Tato možnost je užitečný nástroj pro přímé požadavky na konkrétní server.

-C, --pokračovat-v: Používá se k pokračování nebo obnovení předchozího přenosu souboru s daným posunem.

-c, --cookie-jar : Slouží k určení konkrétního souboru, do kterého chceme po úspěšné operaci zapsat všechny cookies.

-b, --cookie : Používá se k předávání dat na HTTP server v hlavičce Cookie.

--create-dirs: Používá se ve spojení s '-o? možnost, Vytvoří požadovanou místní adresářovou hierarchii.

--crlf (FTP SMTP): Používá se pro převod LF na CRLF při nahrávání. Je to šikovný nástroj pro MVS (OS/390).

--crlfile: Používá se ke specifikaci (ve formátu PEM) pomocí seznamu zneplatněných certifikátů.

--data-ascii: Je to alias pro ?-d? volba.

--delegace: Používá se k nastavení ÚROVNĚ k potvrzení toho, co může serveru delegovat, pokud jde o přihlašovací údaje uživatele.

--strávit: Používá se k povolení ověřování HTTP Digest.

-q, --zakázat: Pokud je použit jako první argument, bude ignorovat konfigurační soubor curlrc.

--dns-rozhraní: Používá se k potvrzení, že server odesílá odchozí požadavky DNS.

--dns-servery: Používá se k určení serverů DNS namísto výchozích serverů.

-f, --fail: Používá se k tichému selhání curlingu při chybách serveru.

-F, --form : Používá se k emulaci vyplněného formuláře odeslaného uživatelem.

-P, --ftp-port : Používá se k obrácení výchozích rolí posluchačů při připojení k FTP.

--ftp-ssl-ccc-mode : Slouží k nastavení režimu CCC.

-G, --get: Používá se ke specifikaci dat pomocí ?-d? možnost použít v požadavku HTTP GET namísto požadavku POST.

-h, --help: Používá se k zobrazení nápovědy se stručným popisem použití a možností podpory.

-0, --http1.0: Je určen pro použití HTTP verze 1.0.

--ignore-content-length: Používá se k ignorování záhlaví Content-Length.

-i, --včetně: Používá se k zahrnutí hlaviček HTTP odpovědí.

-4, --ipv4: Používá se k překladu jmen na adresy IPv4.

-6, --ipv6: Používá se k překladu jmen na adresy Ipv6.

Protokoly zvlnění

Curl podporuje několik protokolů:

    DICT:Umožňuje nám vyhledávat slova pouze pomocí slovníků.FTP (S):Curl podporuje protokol FTP pomocí mnoha pák a vylepšení. S nebo bez TLS.SOUBOR:Umožňuje nám zapisovat a číst místní soubor. Curl neumožňuje vzdálený přístup k file://URL, ale bude fungovat, když je aktivní na Microsoft Windows s nativním přístupem UNC.GOPHER (S):Načítá soubory.HTTP (S):Curl podporuje HTTP pomocí mnoha variant a možností. Umí mluvit verzemi 0.9, 1.0, 1.1, 2 a 3 HTTP v závislosti na přesném příkazovém řádku a možnostech sestavení.IMAP (S):Curl nám stahuje e-maily pomocí protokolu pro čtení pošty. S nebo bez TLS.LDAP (S):Curl nám může implementovat vyhledávání adresářů s nebo bez použití TLS.MQTT:Curl podporuje 3 verze MQTT. Stahování na MQTT je stejné jako 'předplatit' k libovolnému tématu a odesílání/nahrávání je stejné jako 'publikovat' na jakékoli téma. Přes TLS není MQTT podporováno.POP3 (S):Stahování prostřednictvím serveru pop3 představuje příjem pošty bez nebo s TLS.RTMP (S):Protokol RTMP neboli Realtime Messaging Protocol se používá hlavně pro serverová streamingová média.RTSP:Curl podporuje stahování 1.0 RTSP.SCP:Curl podporuje verzi SCP pro přenos dvou scp.SFTP:Curl podporuje SFTP přes 2 verze SSH.SMB (S):Curl podporuje 1 verzi SMB pro stahování a nahrávání.SMTP (S):Nahrání obsahu na jakýkoli server SMTP znamená přenos e-mailu bez nebo s TLS.TELNET:Informování curl, aby přinesl telnet URL, zahájí interaktivní relaci, ve které přenese to, co přečte, přes stdin a výsledkem bude to, co to přenese server.TFTP:Curl může implementovat nahrávání a stahování TFTP.

Instalace příkazu curl

Příkaz curl je součástí většiny Linux distribuce. Ale pokud systém standardně nenese zvlnění. Musíte jej nainstalovat ručně. Chcete-li nainstalovat curl, proveďte následující příkazy:

Aktualizujte systém provedením následujících příkazů:

 sudo apt update sudo apt upgrade 

Nyní nainstalujte obslužný program curl provedením níže uvedeného příkazu:

 sudo apt install curl 

Ověřte instalaci provedením níže uvedeného příkazu:

 curl -version 

Výše uvedený příkaz zobrazí nainstalovanou verzi příkazu curl.

Načtěte obsah zadané adresy URL

Chcete-li načíst obsah jakékoli konkrétní adresy URL, spusťte příkaz curl následovaný adresou URL. Zvažte níže uvedený příkaz:

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

Výše uvedený příkaz načte data stránky zadané stránky. Zvažte níže uvedený snímek výstupu:

Linux Curl Command

Z výše uvedeného výstupu vidíme, že se načítají data stránky dané URL. Chcete-li zastavit provádění, stiskněte klávesy CTRL+C.

Uložte data do konkrétního souboru

Chcete-li uložit data do konkrétního souboru, předejte volbu '-o' následovanou adresářem, názvem souboru a URL takto:

 curl -o / 

Zvažte níže uvedený příkaz:

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

Výše uvedený příkaz uloží data stránky do souboru 'linux.html' do adresáře ' /home/javatpoint/Documents/'. Zvažte následující výstup:

Linux Curl Command

Z výše uvedeného příkazu můžeme vidět celkové množství stažených dat, přijatá data, průměrný čas a některé další statistiky o datech.

Chcete-li ověřit stažená data, otevřete soubor provedením příkazu cat

 cd Documents cat linux.html 

Zvažte níže uvedený snímek výstupu:

Linux Curl Command

Stáhněte si soubor z webu

Jedním ze zajímavých a fascinujících využití curl je to, že si můžeme stáhnout soubor z webu. Chcete-li stáhnout soubor z webu, zkopírujte odkaz ke stažení a vložte jej pomocí příkazu curl. Můžeme předat i další argumenty, abychom to upřesnili. Například si stáhněte nejnovější verzi ubuntu, zkopírujte soubor odkaz ke stažení ubuntu z jeho oficiálních stránek a vložte jej příkazem curl následovně:

 curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64 

Výše uvedený příkaz stáhne Ubuntu 20.04 do zadaného adresáře. Poskytněte správnou příponu souboru; jinak stáhne soubor v jiném formátu. Zvažte následující výstup:

Linux Curl Command

Z výše uvedeného výstupu se stahuje soubor ubuntu.iso. Můžeme vidět dobu stahování, velikost souboru, rychlost stahování a další statistiky. Chcete-li zastavit provádění, kdykoli stiskněte klávesy CTRL+D.

Obnovte přerušené stahování

Může existovat možnost, že stahování může být z nějakého důvodu přerušeno. Stahování můžeme obnovit pomocí příkazu curl. Chcete-li obnovit přerušený soubor, předejte volbu '-C' příkazem curl následovně:

 curl -C 

Výše uvedený příkaz obnoví stahování zadané adresy URL.

Stáhnout více souborů

Chcete-li stáhnout více souborů, zadejte více adres URL oddělených mezerou takto:

 curl -O 

Výše uvedený příkaz stáhne data z obou URL, resp.

Dotaz na záhlaví HTTP

HTTP hlavičky obsahují další informace; umožňuje webovému serveru stáhnout tyto informace. Chcete-li se dotazovat na hlavičky HTTP z webové stránky, spusťte příkaz s volbou '-I' takto:

 curl -I www.javatpoint.com 

Výše uvedený příkaz vytvoří následující výstup:

Linux Curl Command