Android

Příkaz Curl v Linuxu s příklady

Azure Friday | Using Habitat in Azure

Azure Friday | Using Habitat in Azure

Obsah:

Anonim

curl je obslužný program příkazového řádku pro přenos dat z nebo na server navržený pro práci bez zásahu uživatele. Pomocí curl můžete stahovat nebo nahrávat data pomocí jednoho z podporovaných protokolů včetně HTTP, HTTPS, SCP, SFTP a FTP. curl nabízí řadu možností, které vám umožní pokračovat v přenosech, omezovat šířku pásma, podporu proxy, ověřování uživatelů a mnoho dalšího.

V tomto tutoriálu vám ukážeme, jak používat nástroj zvlnění pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností zvlnění.

Instalace Curl

Balíček curl je dnes na většině linuxových distribucí předinstalován.

Chcete-li zkontrolovat, zda je balíček Curl nainstalován ve vašem systému, otevřete konzoli, zadejte curl a stiskněte klávesu enter. Pokud máte nainstalovaný curl , systém vytiskne curl: try 'curl --help' or 'curl --manual' for more information . Jinak uvidíte něco jako curl command not found .

Pokud není curl nainstalován, můžete jej snadno nainstalovat pomocí správce balíčků vaší distribuce.

Nainstalujte Curl na Ubuntu a Debian

sudo apt update sudo apt install curl

Nainstalujte Curl na CentOS a Fedora

sudo yum install curl

Jak používat Curl

Syntaxe příkazu curl je následující:

curl

Ve své nejjednodušší podobě, když je vyvolán bez jakékoli možnosti, curl zobrazení zadaného zdroje na standardní výstup.

Například pro načtení domovské stránky example.com kterou byste spustili:

curl example.com

Příkaz vytiskne zdrojový kód domovské stránky example.com ve vašem terminálovém okně.

Pokud není zadán žádný protokol, pokusí se uhnout uhodnout protokol, který chcete použít, a bude standardně nastaven na HTTP .

Uložte výstup do souboru

Chcete-li uložit výsledek příkazu curl , použijte volbu -o nebo -O .

Smallcase -o uloží soubor s předdefinovaným názvem souboru, který je v příkladu níže vue-v2.6.10.js :

curl -o vue-v2.6.10.js

Velká písmena -O uloží soubor s původním názvem souboru:

curl -O

Stáhněte si více souborů

Chcete-li stáhnout více souborů najednou, použijte více možností -O a poté adresu URL souboru, který chcete stáhnout.

V následujícím příkladu stahujeme iso soubory Arch Linux a Debian:

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \ -O

Pokračujte ve stahování

Stahování můžete obnovit pomocí volby -C - . To je užitečné, pokud vaše připojení během stahování velkého souboru poklesne, a namísto zahájení stahování od nuly můžete pokračovat v předchozím.

Pokud například stahujete iso soubor Ubuntu 18.04 pomocí následujícího příkazu:

curl -O

a najednou vaše připojení klesne, můžete stahování obnovit:

curl -C - -O

Získejte HTTP hlavičky URL

Záhlaví HTTP jsou dvojice dvojic klíč - hodnota oddělených dvojtečkou, které obsahují informace, jako je uživatelský agent, typ obsahu a kódování. Záhlaví se předává mezi klientem a serverem s požadavkem nebo odpovědí.

Pomocí volby -I načtěte pouze záhlaví HTTP zadaného zdroje:

curl -I --http2

Možnost -L nařídí curl aby sledoval každé přesměrování, dokud nedosáhne konečného cíle:

curl -L google.com

Změňte User-Agent

Někdy může být při stahování souboru vzdálený server nastaven tak, aby blokoval Curl User-Agent nebo vrátil různý obsah v závislosti na návštěvnickém zařízení a prohlížeči.

V takových situacích emulovat jiný prohlížeč použijte volbu -A .

Například k emulaci aplikace Firefox 60 byste použili:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"

Zadejte maximální přenosovou rychlost

Možnost --limit-rate vám umožňuje omezit rychlost přenosu dat. Hodnota může být vyjádřena v bajtech, kilobajtech s příponou k , megabajtů s příponou m a gigabajtů s příponou g .

V následujícím příkladu curl stáhne Go binární a omezí rychlost stahování na 1 mb:

curl --limit-rate 1m -O

Tato možnost je užitečná, aby se předešlo spotřebě celé dostupné šířky pásma.

Přenos souborů přes FTP

Chcete-li přistupovat k chráněnému FTP serveru pomocí curl , použijte volbu -u a zadejte uživatelské jméno a heslo, jak je uvedeno níže:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Po přihlášení se zobrazí seznam všech souborů a adresářů v domovském adresáři uživatele.

Jeden soubor můžete stáhnout ze serveru FTP pomocí následující syntaxe:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Chcete-li nahrát soubor na FTP server, použijte -T následovaný názvem souboru, který chcete nahrát:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Pošlete cookies

Někdy může být nutné zadat požadavek HTTP se specifickými soubory cookie, abyste získali přístup ke vzdálenému prostředku nebo k ladění problému.

Ve výchozím nastavení nejsou při odesílání nebo ukládání žádostí o prostředek s curl odesílány ani ukládány žádné soubory cookie.

K odeslání cookies na server použijte přepínač -b následovaný názvem souboru obsahujícího cookies nebo řetězec.

Chcete-li například stáhnout soubor rpm Oracle Java JDK rpm jdk-10.0.2_linux-x64_bin.rpm , musíte předat soubor cookie s názvem oraclelicense s hodnotou a :

curl -L -b "oraclelicense=a" -O

Používání serverů proxy

curl podporuje různé typy proxy serverů, včetně HTTP, HTTPS a SOCKS. Chcete-li přenášet data přes proxy server, použijte volbu -x ( --proxy ) následovanou proxy URL.

Následující příkaz stáhne určený prostředek pomocí serveru proxy na portu 192.168.44.1 portu 8888 :

curl -x 192.168.44.1:8888

Pokud proxy server vyžaduje ověření, použijte volbu -U ( --proxy-user ) následovanou uživatelským jménem a heslem odděleným dvojtečkou ( user:password ):

curl -U username:password -x 192.168.44.1:8888

Závěr

curl je nástroj příkazového řádku, který umožňuje přenos dat z nebo do vzdáleného hostitele. Je to užitečné pro řešení problémů, stahování souborů a další.

Příklady uvedené v tomto tutoriálu jsou jednoduché, ale ukazují nejpoužívanější možnosti curl a mají za cíl pomoci vám pochopit, jak příkaz curl funguje.

Další informace o curl naleznete na stránce Curl Documentation.

zvlněný terminál