Existuje několik způsobů, jak ovládat a komunikovat s daty v terminálu Linux a curl
je nejlepší způsob, jak to udělat. curl
je nástroj příkazového řádku, který můžete použít pro přenos dat ze serveru nebo na něj. Můžete použít curl
příkaz pro stahování a nahrávání dat pomocí libovolného z podporovaných protokolů, které zahrnují FTP, HTTP, SFTP, HTTPS a SCP. Curl má řadu funkcí, včetně možnosti omezit šířku pásma, obnovit přenosy, ověření uživatele, podporu proxy serverů a mnoho dalších.
Níže je uveden seznam protokolů aktuálně podporovaných curl
:
- FTP/FTPS
- Gopher
- HTTP
- HTTP/2
- SMTP/SMTPS
- IMAP/IMAPS
- SMB
- POP3/POP3S
- RTMP
- SCP
- SFTP
- RTSP
- LDAP/LDAPS
- Telnet a TFTP
- RTSP
Mezi další funkce patří:
- Ověření uživatele a hesla
- Základní
- Prostý přehled
- NTLM
- CRAM-MD5
- Kerberos
- Vyjednávat
- Soubory cookie
- Tunelování proxy
- Obnovení operace přenosu souboru
- Certifikáty SSL
- Nahrání formulářů HTTP a HTTPS
wget
a curl
jsou často srovnávány, protože jejich funkčnost se do určité míry překrývá. Oba nástroje mohou získávat obsah z internetu, ale wget má více funkcí, jako je web scraping, rekurzivní stahování a je také uživatelsky přívětivější. wget je považován za lepší možnost, pokud chcete stahovat soubory pouze v terminálu.
Učení curl
základy příkazů vám pomohou při nahrávání a stahování souborů pomocí pokročilých postupů ověřování HTTP. Dále wget
podporuje pouze FTP a HTTP(S), zatímco curl
podporuje mnohem více protokolů.
To je vše o curl
příkaz. Nyní přejdeme přímo k terminálu.
Instalace „curl“ v systému Linux
Pokud nemáte curl
na vašem systému Linux jej nainstalujte pomocí následujícího příkazu. V opačném případě přeskočte instalační kroky a přejděte k příkladům.
sudo apt-get update
sudo apt-get install curl -y
Nyní ověřte curl
je k dispozici ve vašem systému kontrolou jeho verze:
curl --version
Příklady použití „curl“
Pomocí curl
můžeme dělat spoustu skvělých věcí . Pojďme se na některé z nich podívat.
Získání externí IP adresy serveru
Na internetu je úžasný zdroj, který vám umožňuje získat vaši internetovou IP adresu – https://ifconfig.me (pojmenovaný podle slavného nástroje pro konfiguraci sítě Linux – ifconfig
).
Pokud jste na tento web odeslali požadavek HTTP pomocí curl, vrátí vám externí IP adresu v terminálu ve formě jednoduchého řetězce:
curl https://ifconfig.me
Tento výsledek tedy můžete snadno vložit do proměnné bash:
MY_EXTERNAL_IP=$(curl -s https://ifconfig.me)
echo $MY_EXTERNAL_IP
Zde je výsledek:
Zde -s
argument umožňuje vyhnout se výstupu průběhu stahování curl:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12 100 12 0 0 181 0 --:--:-- --:--:-- --:--:-- 181
Předpověď počasí
Chcete se cítit jako hacker a zobrazovat informace o počasí přímo v terminálu? Můžete to udělat pomocí curl
!
curl http://wttr.in/LOCATION
Uložení výstupu „curl“ do textového souboru
Můžete uložit výstup curl
příkaz do zadaného souboru.
Zde je příklad uložení výstupu JSON API (StarWars demo API) do souboru:
curl https://swapi.dev/api/planets/1/ -o Tatooine.json
curl
je dostatečně chytrý, aby detekoval stahování binárních souborů. Zde je příklad stažení jednoho z nejpopulárnějších open source softwaru pro správu infrastruktury jako kódu Terraform (další informace o Terraform):
curl https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip -o terraform_0.15.0_linux_amd64.zip
Stahování více souborů
Můžete použít curl
ke stažení více souborů najednou. Stačí přidat -o
argumentujte tolikrát, kolikrát potřebujete.
curl -o https://example.com/files/file-1 -o file-2 https://example.com/files/file-2 -o file-3 https://example.com/files/file-3
Omezení rychlosti stahování
Další užitečná funkce curl
je omezení rychlosti stahování souborů. Můžete to udělat pomocí --limit-rate
argument a specifikující rychlost:
curl --limit-rate 1M -O https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip
Daná rychlost se měří v bajtech/sekundu, pokud není připojena přípona. Přidáním „k“ nebo „K“ se číslo započítá jako kilobajty, „m“ nebo M“ z něj udělají megabajty, zatímco „g“ nebo „G“ z něj udělá gigabajty.
Stahování seznamu adres URL
V tomto příkladu stáhneme všechny soubory uvedené v textovém souboru. Chcete-li to provést, musíte použít kombinaci xargs
s curl
příkazy:
xargs -n 1 curl -O < urllists.txt
Zde je výstup:
Základní ověřování
Můžete použít -u
argument pro poskytnutí uživatelského jména a hesla pro základní HTTP autentizaci (základní autentizaci):
curl -u username:password -O https://example.com/files/README
Získání záhlaví adres URL
HTTP hlavičky jsou páry klíč-hodnota oddělené dvojtečkami, které obsahují informace jako požadovaný typ obsahu zdroje, uživatelský agent, kódování atd. S požadavkem nebo odpovědí jsou hlavičky přenášeny mezi klientem a serverem. Chcete-li získat informace o záhlaví libovolného webu, použijte -I
argument:
curl -I https://hands-on.cloud
Používání souborů cookie
V následných požadavcích na stejnou webovou stránku možná budete muset použít soubory cookie.
Chcete-li uložit soubory cookie přijaté z webového serveru, použijte následující příkaz:
curl -s -o /dev/null -c google_cookies.txt 'https://www.google.com'
Zde jsou argumenty:
-s
– tichý režim, curl netiskne informace o průběhu stahování-o /dev/null
– netisknout výstup webové stránky na terminál-c google_cookies.txt
– uložit informace o souborech cookie do souboru
Chcete-li použít soubory cookie přijaté z předchozího požadavku, použijte následující příkaz:
curl -b google_cookies.txt 'https://www.google.com'
Kontrola podpory HTTP/2
Použijte -I
, --http2
a -s
možnosti společně ověřit, zda zadaný web podporuje záhlaví HTTP/2:
curl -I --http2 -s https://hands-on.cloud/ | grep HTTP
Shrnutí
V tomto článku jsme probrali nejběžněji používané příklady použití curl
příkaz. Doufáme, že vám tento článek umožní začít s tímto mocným nástrojem. Pokud se vám článek líbí, pomozte nám jej rozšířit do světa!