GNU/Linux >> Znalost Linux >  >> Linux

Naučte se používat příkaz CURL v Linuxu s těmito příklady

Co je to CURL?

CURL je nástroj pro přenos dat. Je také k dispozici jako knihovna pro vývojáře a jako CLI pro případy použití na bázi terminálu. Oba mají uvnitř stejný engine (pravdou je, že nástroj CLI je pouze program, který používá knihovnu pod kapotou).

CURL funguje se všemi protokoly, které jste mohli použít. Přejděte na tuto stránku a zkontrolujte, zda CURL funguje s vaším cílovým protokolem nebo ne.

Co CURL umí?

Hmm… Vše, co souvisí s přenosem dat. Každý musel používat prohlížeč. I nyní čtete tento článek prostřednictvím svého prohlížeče. Co prohlížeč udělá, vyžádá si stránku a dostane ji jako odpověď. Může zapisovat a číst soubory cookie. A pak to vykreslí (zobrazí obsah, obrázky a spouští JS skripty).

CURL může dělat vše, co prohlížeč, kromě vykreslování poslední části, protože to nesouvisí s přenosem dat.

Po dokončení může CURL stahovat HTML stránky, vyplňovat HTML formuláře a odesílat je, stahovat soubory z FTP/HTTP serveru a nahrávat soubory na stejný a číst/zapisovat cookies.

Díky tomu je vynikajícím nástrojem pro použití při skriptování, ladění a forenzní analýze atd.

Příklady příkazů Curl

Podívejme se, co můžete dělat s Curl.

1. Získejte odpověď ze serveru

Vše ze serveru je odpovědí na požadavek. Získání stránky HTML je tedy stejné jako stažení souboru.

Chcete-li získat odpověď HTML z http://info.cern.c,

curl http://info.cern.ch/

Chcete-li získat seznam příspěvků jako odpověď ze serveru ( https://jsonplaceholder.typicode.com/posts),

curl https://jsonplaceholder.typicode.com/posts

Protože víme, jak získat odpověď ze serveru, můžete si stáhnout soubor (řekněme logo Google).

curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

Výše uvedený příkaz vypíše binární obrazová data, která nemůžete zobrazit v terminálu. Musíte je uložit a poté je zobrazit pomocí prohlížeče fotografií.

Všimněte si, že různé příznaky voleb mohou být umístěny kdekoli v příkazu namísto striktního řazení. Takže se nemusíte bát, pokud jste umístili jakoukoli možnost na poslední, zatímco příklady měly příznak na začátku.

2. Uložte soubor s výchozím názvem souboru

Každý soubor poskytovaný na internetu má název souboru. Chcete-li použít stejný název souboru jako stažený název souboru, použijte parametr -O.

curl -O http://www.google.com/robots.txt

3. Uložte soubor s vlastním názvem

Chcete-li uložit název souboru s vlastním jménem, ​​použijte parametr -o následovaný (přísně) vlastním názvem.

curl -O http://www.google.com/robots.txt googleRobots.txt

4. Stáhnout více souborů

Chcete-li stáhnout více souborů, oddělte je mezerou.

curl url1 url2 url3

Pokud chcete použít příznak -O pro všechny adresy URL, použijte

curl url1 url2 url3 -O -O -O 

Stejné řešení by mělo být provedeno pro jakýkoli příznak. Je to proto, že první výskyt určitého příznaku je pro první adresu URL, druhý příznak je pro druhou adresu URL a tak dále.

5. Stáhněte si řadu souborů

curl má vestavěnou schopnost stahovat řadu souborů ze serveru. To lze ilustrovat na následujícím příkladu.

curl http://www.google.com/logo/logo[1-9].png

Příkaz výše stáhne soubory z logo1.png, logo2.png, logo3.png a až po logo9.png.

6. Stáhnout soubor, pouze pokud je nejnovější

Chcete-li stáhnout soubor pouze v případě, že čas úpravy souboru je pozdější než daný čas.

curl url -z "DD MMM YY MM:HH:SS"

7. Obnovit stahování

Pokud jste již částečně přenesli soubor, můžete přenos obnovit pomocí parametru -C. Offset, od kterého má přenos pokračovat, by měl být předán jako parametr do příznaku -C.

curl -C 1024 http://seeni.linuxhandbook.org/files/largeFile.mpv -O

8. Nahrajte soubor

Chcete-li nahrát soubor na server, musíte použít příznak -T následovaný cestou k souboru ve vašem místním systému.

curl -T uploadFile.txt http://upload.linuxhandbook.org/files

9. Smazat soubor

Chcete-li odstranit soubor s názvem deleteFile.txt na serveru, můžete použít příznak -X, který je určen pro jakékoli HTTP sloveso/metodu (jako GET, POST, PUT, DELETE, PATCH). Většina FTP serverů bude mít nakonfigurovanou metodu DELETE, pokud ne všechny pokročilé metody HTTP.

curl -X DELETE http://upload.linuxhandbook.org/files/deleteFile.txt

Můžete také upravit výše uvedený příkaz pro jakoukoli metodu HTTP, aby provedl odpovídající úlohu. Pokud například váš server umožňuje metodu TRUNCATE (jedná se o vymyšlenou HTTP metodu, nikoli standardní), která odstraní pouze obsah v souboru a nikoli soubor, lze použít příkaz podobný tomu níže.

curl -X  TRUNCATE http://upload.linuxhandbook.org/files/mysql.dump

Výše uvedené jsou hlavní použití curl. Mohou se však vyskytnout potíže, se kterými je třeba bojovat, jako jsou přesměrování, ověřování uživatelů, certifikáty SSL atd., Můžeme je nazývat doplňky, protože jsou pouze volitelné, ale stále zůstávají pro určité účely klíčové. Podívejme se na některé z těchto doplňků a na to, jak s nimi zacházet s curl v další části.

10. Vyhněte se přesměrování

Když požádáte o http://www.google.com , bude vám poskytnuta pouze regionální stránka, jako je www.google.co.in. To se provádí pomocí přesměrování (HTTP pakety se stavovými kódy v rozsahu 300-399).

Přesměrování se můžete vyhnout pomocí možnosti L.

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

11. Autentizace

Když je server nakonfigurován tak, aby sloužil pouze určitým osobám s přihlašovacími údaji, bude jim poskytnuto uživatelské jméno a heslo. Přihlášení lze provést pomocí parametru -u.

curl -u username:password http://seeni.linuxhandbook.org/files/tasks.txt

12. Omezit přenos dat

Chcete-li zavést limit přenosu dat, použijte příznak –limit-rate. Následující příkaz se pokusí stáhnout soubor s rychlostním limitem 10K.

curl --limit-rate 10K http://seeni.linuxhandbook.org/files/logoDetails.tgz

13. Zobrazit/Skrýt stav přenosu

Pokud je odpověď přesměrována z terminálu, jako je stahování, nahrávání a pak curl automaticky zobrazí ukazatel stavu/průběhu přenosu.

Pokud nechcete vidět ukazatel průběhu, stačí k příkazu připojit parametr -s. U odpovědi určené pro terminál se pokrok nezobrazí.

14. Ignorujte certifikáty SSL

Pamatujete si situace, kdy je potřeba udělit výjimku bezpečnostnímu certifikátu, abyste mohli navštívit některé webové stránky? Pokud důvěřujete zdrojům a chcete provést přenos dat, můžete ignorovat ověření certifikátu SSL pomocí parametru -k.

curl -k https://notSoSecure.org/files/logoDetails.tgz

15. Získejte také informace o záhlaví

Chcete-li zobrazit informace záhlaví spolu s přenesenými daty, použijte parametr -i.

curl -i http://www.google.com/robots.txt

16. Získat pouze informace o záhlaví

Pokud chcete pouze záhlaví a ne data, použijte parametr -I

curl -I http://www.google.com/robots.txt

17. Změnit uživatelského agenta

Některé weby a servery neumožňují určitým druhům zařízení přístup k jejich systémům. Ale jak vědí, že používáme konkrétní druh zařízení? To je způsobeno polem záhlaví HTTP User-Agent. Tento User Agent můžeme změnit příznakem -A.

curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png

18. Odesílání dat na Server

Pokud server potřebuje nějaká data, jako je token nebo klíč API, použijte k odeslání dat příznak -d. Data, která je třeba odeslat, by měla následovat za příznakem v příkazu. Ke spojení více dat lze použít „&“. To se obvykle provádí pomocí požadavků GET a POST v prohlížečích. Toto je jeden ze způsobů, jak můžete odeslat informace z formuláře.

curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent

19. Zápis souborů cookie do souboru

Soubory cookie jsou malé informace, které umožňují udržovat relaci pomocí bezstavového protokolu HTTP. Pokud se chcete o souborech cookie dozvědět více, podívejte se na tento skvělý zdroj.

Pro zápis cookies do souboru by měl být použit parametr -c následovaný názvem souboru cookie.

curl -c googleCookie.txt http://www.google.com/files

20. Čtení souborů cookie ze souboru

Ke čtení cookie ze souboru lze použít parametr -b následovaný souborem cookie.

curl -b googleCookie.txt http://www.google.com/files

Všimněte si, že parametr -b pouze přečte cookie ze souboru. Pokud tedy server znovu odešle další cookie, možná budete muset k jejich zapsání použít volbu -c.

21. Zahájit novou relaci

Pokud chcete zahájit novou relaci zrušením souborů cookie, použijte příznak -j. Spustí novou relaci, i když jste poskytli soubor cookie ke čtení s parametrem -b.

curl -b googleCookie.txt http://www.google.com/files -j

Gratulujeme! Dotáhl jsi to až do konce. Pokud vám tento článek přijde užitečný, sdílejte ho se svými přáteli a sledujte nás na sociálních sítích. Pokud máte nějaké návrhy k tomuto článku nebo jinému tématu, neváhejte je uvést níže.


Linux
  1. wc Linux Command s příklady

  2. Třídit příkaz v Linuxu s příklady

  3. příkaz chattr v Linuxu s příklady

  1. Jak používat příkaz IP v Linuxu s příklady

  2. Linux alias Command:Jak jej používat s příklady

  3. 10 Quick Linux Tail Command s příklady

  1. Curl Command v Linuxu s příklady

  2. Linux ip příkaz s příklady

  3. 15 Příkaz Linux ps s příklady