Získejte CURLy: 10 užitečných věcí, které můžete s cURL dělat

Získejte CURLy: 10 užitečných věcí, které můžete s cURL dělat

Když se začneme učit o nástrojích příkazového řádku, máme tendenci je považovat za jednoúčelové. Ty jsi to naučil





cat

vytiskne obsah souboru,





ls

vypíše všechny položky v adresáři a





du

ukazuje využití místa na disku. Mnoho nástrojů příkazového řádku však má desítky možností, všechny jsou úhledně popsány v jejich

man

soubory. Některé z nich dokážou v kombinaci s jinými příkazy zázraky.



Samozřejmě je nerozumné očekávat, že by si každý měl pamatovat každou jednu možnost. S ohledem na to je dobré příležitostně osvěžit naše znalost Linuxových příkazů , protože pro ně můžete objevit nové způsoby využití.

Tentokrát se soustředíme na kučera , nástroj pro přenos dat prostřednictvím řady internetových protokolů, jako jsou HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP a další.





Zjednodušeně řečeno, cURL provádí různé požadavky z klienta na server a vytváří mezi nimi spojení pomocí konkrétního protokolu a souvisejících metod. Například jako klient HTTP může cURL odeslat požadavek na zobrazení nebo stažení obsahu (metoda požadavku GET) nebo na zveřejnění obsahu prostřednictvím formuláře na webu (metoda požadavku POST). Mnoho webových aplikací a služeb umožňuje interakci cURL s jejich API (Application Programming Interface).

Protože se jejich funkčnost do určité míry překrývá, jsou cURL a wget často navzájem porovnávány. Oba nástroje mohou stahovat obsah z internetu, ale wget podporuje rekurzivní stahování, škrábání webu a jeho používání je obecně jednodušší. Pokud chcete pouze stahovat soubory z terminálu, wget je pravděpodobně lepší volbou.





Na druhou stranu, pokud potřebujete pokročilé metody ověřování HTTP a chcete nahrávat soubory a také je stahovat, stojí za to se naučit cURL. Také wget podporuje pouze HTTP (S) a FTP, zatímco cURL pokrývá širokou škálu protokolů. To znamená, že cURL umí více skvělých věcí - a zde je deset příkladů, které to dokazují.

1. Získejte zprávu o počasí

Pokud vám někdo řekl, abyste zkontrolovali počasí z terminálu, očekávali byste nudná čísla. Ne s tímto příkazem.

curl http://wttr.in/LOCATION

Informace poskytuje aplikace CLI s názvem jdeme , ale pokud jej nechcete nainstalovat, cURL může načíst předpověď ze svého webového rozhraní wttr.in. Vše, co potřebuje, je místo, pro které chcete předpověď. Stačí zadat název města, jeho kód letiště nebo vaši aktuální IP adresu. Nová funkce zobrazuje informace o fázích měsíce, pokud zadáte:

curl wttr.in/Moon

2. Stahujte soubory a obnovte stahování

Stahování souborů je něco, co obvykle děláme v prohlížeči. Někdy budete chtít použít správce stahování; například při stahování několika souborů najednou nebo když chcete stahování pozastavit. Ačkoli cURL není oblíbenou volbou pro simultánní stahování (místo toho se doporučuje wget), můžete jej pro tento účel stále používat kombinací jeho výkonných možností (přepínačů). Nejprve budete potřebovat přímý odkaz na soubor. V tomto příkladu použijeme PDF z časopisu Linux Voice.

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

Přepínač O velká písmena (-O) způsobí, že cURL uloží soubor s výchozím názvem souboru (obvykle ten z odkazu samotného). Pokud byste jej chtěli uložit pod jiným názvem, použili byste malá písmena o následovaná novým názvem:

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

Ve výchozím nastavení jsou soubory uloženy v aktuálním adresáři (zkontrolujte pomocí

pwd

příkaz). Chcete -li je uložit jinam, zadejte cestu za přepínačem -o. Přepínač -C umožňuje cURL obnovit stahování. Pozastavíte jej stisknutím Ctrl+C na terminálu a obnovíte spuštěním stejného příkazu ke stažení znovu:

cURL zobrazuje průběh stahování v tabulkovém formátu se sloupci obsahujícími informace o rychlosti stahování, celkové velikosti souboru, uplynulém čase a další. Pokud se vám to nelíbí, můžete se rozhodnout pro jednodušší ukazatel průběhu přidáním -# nebo --progress -bar do příkazu cURL.

Chcete -li stáhnout více souborů najednou, stačí uvést odkazy jeden po druhém:

curl -O file1.txt -O file2.pdf -O file3.zip

Pomocí dalších nástrojů příkazového řádku můžeme dávkově stahovat všechny obrázky PNG a JPG z blogu Tumblr:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

V tomto případě,

cut

a

grep

shromažďovat informace o názvech souborů a formátovat je tak, aby se zobrazovaly pouze soubory se zadanými příponami. Pokud spustíte příkaz bez posledního kanálu:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

dostanete pouze seznam souborů, které splňují naše kritéria, ale ve skutečnosti nebudou staženy. cURL může získat seznam obrázků z řady stránek za předpokladu, že blog používá standardní stránkování:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

Rozsah můžete upravit změnou čísel v hranatých závorkách. Tento příkaz by opět zobrazoval pouze obrázky; Chcete -li je stáhnout, spusťte úplný příkaz v adresáři, kam chcete obrázky uložit:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

Pokud se v tom dobře orientujete regulární výrazy , můžete vylepšit vzhled a účinnost tohoto příkazu a výsledek sdílet v komentářích.

3. Správa souborů na serveru FTP

V dnešní době o FTP příliš neslyšíme, ale to neznamená, že je zastaralý. Ve skutečnosti mnoho open source projektů a distribucí Linuxu sdílí svůj software na serverech FTP. Protože FTP podporuje cURL, můžete jej použít jako jednoduchého FTP klienta pro nahrávání a stahování souborů. Soubory na serveru FTP můžete procházet pomocí adresářů:

curl ftp://ftp.debian.org/debian/

Chcete -li zadat podadresář, zadejte jeho název a za ním lomítko (/).

Stahování souborů je podobné stahování HTTP popsané v předchozí části. Můžete použít -o nebo -O a přidat -C -pokud chcete pozastavit stahování.

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

Ačkoli cURL nepodporuje rekurzivní stahování (pamatujte, wget ano!), Stále může stahovat řadu souborů najednou. Jedinou podmínkou je, aby názvy souborů odpovídaly vzoru. Mohli bychom například stáhnout ze serveru hostujícího tapety, kde jsou všechny tapety pojmenovány 'wallpaperNUMBER':

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

Některé servery FTP vyžadují před stahováním souborů ověření. cURL vám umožňuje přihlásit se pomocí volby -u (uživatel):

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

Soubory můžete také nahrávat na server FTP pomocí volby -T (přenos):

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

Zde můžete také definovat více souborů jako rozsah. Tato funkce se někdy nazývá „globbing“. Pokud názvy souborů nenásledují podle vzoru, uveďte je v závorkách (

-T '{file1.txt,image27.jpg}'

). Naopak, pokud mají podobná jména, použijte stejnou logiku z příkladu stahování Tumblr a použijte hranaté závorky (

-T 'photo[1-50].jpg'

). Pokud nejsou ve vašem aktuálním adresáři, nezapomeňte zadat úplnou cestu k souborům.

4. Zkontrolujte, zda je webová stránka nefunkční

Všichni jsme tam byli. Web, který nutně potřebujete, najednou přestane fungovat. Facebook se pak nenačte. Co děláte, když stojíte před skutečným problémem prvního světa?

Můžete si to vygooglit, požádat přítele, aby to za vás otestoval, nebo použít některý z webů s jednou obsluhou, které vám řeknou, jestli je web nefunkční. Nebo můžete jednoduše spustit terminál a spustit cURL:

curl -Is https://www.twitter.com -L | grep HTTP/

Velká písmena, která přepínám (-I), kontroluje hlavičku HTTP webové stránky a je přidána volba -L (umístění), aby cURL sledoval přesměrování. To znamená, že nemusíte zadávat úplnou adresu URL Facebooku; jen piš facebook.com a cURL se postará o zbytek díky -L. Pokud dojde k přesměrování, zobrazí se s vlastním stavem HTTP.

Zpráva, která nás zajímá, je „200 v pořádku“, což znamená, že je s webem vše v pořádku. Pokud je to opravdu dole, uvidíte něco takového:

Stavové kódy HTTP jsou pouze informativní, jak vám jejich porozumění umožňuje. Tato metoda není zcela spolehlivá, protože webová stránka může vrátit stavový kód označující úspěšně zpracovaný požadavek, ale při otevření v prohlížeči bude prázdný. Přesto by to ve většině případů mělo odpovídat skutečné situaci a dát vám vědět, co je - nebo dole.

5. Rozbalte Zkrácené adresy URL

Zkrácené adresy URL nejsou ve své podstatě špatné. Bez nich by bylo obtížné sdílet odkazy na Twitteru a dalších charakterově omezených sociálních sítích. Některé služby zkracování adres URL nabízejí také užitečnou analýzu. Vždy ale existuje riziko, že se někdo pokusí skrýt škodlivý obsah za zkrácenou URL, nebo že troll maskuje Rickroll (nebo něco mnohem, mnohem horšího). Pokud se ke zkrácené adrese URL z jakéhokoli důvodu cítíte podezřele, cURL vám ji může pomoci rozšířit a zjistit, kam přesně vede:

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

nebo

curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';

CURL můžete kombinovat s

grep

nebo

sed

; hlavní rozdíl je ve formátování. Sed je jedním z nástrojů, které by měl každý uživatel Linuxu znát, a doplňuje cURL v tomto a několika dalších případech použití. Nezapomínejme, že cURL může stahovat soubory ze zkrácené URL (za předpokladu, že URL skutečně ukazuje na soubor):

curl -L -o filename.txt http://short.url

Syntaxe je stejná jako u jiných stahování cURL a volba -L se stará o přesměrování ze zkrácené adresy URL na původní.

6. Ukažte své uznání za ASCII čl

Je pravda, že to není nijak zvlášť užitečné, ale vypadá to skvěle. S pomocí

pv

, nástroj pro sledování průběhu dat, cURL může v terminálu zobrazovat ASCII animace.

curl -s http://artscene.textfiles.com/vt100/wineglas.vt | pv -L9600 -q

Volby -s a -q udržují oba příkazy v tichém (tichém) režimu. Volba -L zde odkazuje na příkaz pv a umožňuje upravit přenosovou rychlost dat v bajtech za sekundu. Jinými slovy, pokud se animace pohybuje příliš rychle nebo příliš pomalu, zkuste si s tímto číslem pohrát. Kromě animací může cURL zobrazovat prosté, statické umění ASCII:

Web má spoustu webových stránek se všemi druhy umění ASCII: od úžasně detailních, vysoce kvalitních kusů až po podivné, hloupé a dokonce i NSFW materiály. Tato technika digitálního umění sahá až do šedesátých let minulého století a dnes je součástí internetové kultury a historie a je udržována při životě v mnoha sbírkách a nástrojích, které vám umožňují převést text a obrázky na umění ASCII . Můžete jej použít k ozdobení terminálu nebo k žertování přátel - ať už vaše loď pluje cokoli.

7. Experimentujte se sociálními médii

Používání sociálních médií z terminálu není nic nového-již jsme vám ukázali Twitter klienty příkazového řádku pro Linux. I když pravděpodobně nepřejdete na cURL jako svůj online nástroj pro socializaci, je dobré vědět, že s ním můžete zveřejňovat příspěvky na Facebooku, jak je popsáno zde. Všimnete si, že technicky to cURL nedělá samo; práci zvládne kombinace nástrojů.

Pokud jde o Twitter, dříve jej bylo možné spravovat přímo z terminálu pomocí cURL. Poté Twitter změnil své API a nyní je pro Twitter speciální klient cURL s názvem Twurl. Není to nejjednodušší, zvláště pro začátečníky, a vyžaduje ověření pomocí reklamní platformy Twitter. To dává smysl, pokud jste vývojář nebo pokročilý uživatel, ale ne tolik, pokud chcete pouze tweetovat z příkazového řádku. Přesto existují způsoby, jak se s Twitterem pobavit. Pomocí cURL můžete zkontrolovat počet následovníků uživatele:

curl -s https://twitter.com/username | grep -o '[0-9,]* Followers';

8. Najděte svou externí IP adresu

Nalezení místní IP adresy je dost snadné - stačí spustit

jak hrát hry pro windows na android
ifconfig

nebo se obraťte na svůj applet pro správu sítě. Pro externí IP používá většina lidí k získání těchto informací specializované webové stránky. Přesto je možné některé věci dělat z terminálu jednodušeji a toto může být jedna z nich. Můžete také vytvořit alias pro příkaz cURL. S cURL spolupracuje několik online služeb:

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

Některé vám mohou říci více o jakékoli externí IP adrese:

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

Jediné, co musíte udělat, je vybrat si službu. Pokud jste nerozhodní, zahrňte je všechny do svého aliasu jako záložní řešení.

9. Vložte text a sdílejte obrázky

Přerušení pracovního toku není nikdy dobré pro produktivitu a soustředění. Pokud většinu své práce provádíte v terminálu, přepnutí na prohlížeč jen za účelem sdílení několika souborů může být nepraktické, ne -li otravné. Naštěstí se pro práci s cURL zrodily některé služby pastebin a sdílení souborů, takže je můžete používat přímo z terminálu bez uživatelského účtu.

Clbin a Sprunge.us mají podobnou syntaxi. Pomocí Clbin dáte do místního souboru nebo výstupu příkazu a vrátí odkaz na váš nahraný text:

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

Podporuje také nahrávání obrázků (PNG, JPG a GIF):

curl -F 'clbin=@image.png' https://clbin.com

Pokud místo toho chcete použít Sprunge.us, zadejte:

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.us prozatím nepodporuje nahrávání obrázků.

Ix.io je založen na stejném principu jako předchozí dvě služby s několika funkcemi navíc. Chcete -li nahrát soubor, zadejte:

cat file.txt | curl -F 'f:1=<-' ix.io

nebo

curl -F 'f:1=@file.txt' ix.io

Když získáte odkaz na nahraný text, můžete upravit jeho adresu URL tak, aby zobrazovala zvýraznění syntaxe (pomocí

ix.io/yourpaste+

,

ix.io/yourpaste/

, nebo

ix.io/yourpaste/language

pro konkrétní skriptovací nebo programovací jazyk). Je také možné omezit, kolikrát lze odkaz zobrazit, úpravou čísla za

'read:1'

hodnota:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

Ix.io je primárně určen pro textové soubory, jako jsou zdrojový kód nebo systémové protokoly. Pokud chcete nahrát různé formáty souborů, použijte Transfer.sh . Podporuje obrázky, šifrování souborů a udržuje vaše soubory online po dobu dvou týdnů. Na Transfer.sh můžete nahrát až 5 GB dat. Zde je postup:

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

Název odeslaného souboru můžete definovat. Chcete -li nahrát více souborů, seznamte je jeden po druhém s volbou -F:

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10. Zkontrolujte nepřečtenou poštu v GMailu

Pokud jste ochotni ponořit se do podrobností o e-mailových protokolech (SMTP, POP, IMAP), existuje v cURL obrovský potenciál. Pro rychlou kontrolu e -mailu bude tento příkaz stačit. Analyzuje váš kanál GMail a formátuje výstup (předmět e -mailu a odesílatele)

tr

,

awk

,

sed

a/nebo

grep

příkazy. Toto řešení je extrémně nebezpečné, protože zpřístupňuje vaše přihlašovací údaje komukoli s přístupem k vašemu terminálu. První verze zobrazuje jméno odesílatele, zatímco druhá vytiskne pouze nepřečtené předměty e -mailu:


curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | tr -d '
' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n 's/

curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | grep -oPm1 '(?<=)[^<]+' | sed '1d'

Co jiného může cURL dělat?

cURL se zřídka používá jako samostatný příkaz. Většina lidí jej používá jako součást skriptu nebo aplikace. Přesto je možné s cURL vytvořit praktické jednoramenné vložky, jak jsme zde ukázali. Mnoho z těchto příkladů bylo převzato z CommandLineFu, fantastického zdroje chytrých hacků z příkazové řádky, a neměli byste je považovat za kamenné.

S dostatkem znalostí a zkušeností můžeme každý příkaz upravit, jinak naformátovat nebo zcela nahradit lepším řešením. Můžete vylepšit naše navrhované příkazy cURL? Víte o dalších skvělých použitích pro cURL? Podělte se o své tipy v komentářích.

Kredity obrázku: Uvnitř Úvod do příkazového řádku Osama Khalid přes Flickr.

Podíl Podíl tweet E-mailem Vymažte tyto soubory a složky systému Windows, abyste uvolnili místo na disku

Potřebujete uvolnit místo na disku v počítači se systémem Windows? Zde jsou soubory a složky systému Windows, které lze bezpečně odstranit, aby se uvolnilo místo na disku.

Číst dále
Související témata
  • Linux
  • FTP
  • Správa stahování
  • Terminál
O autorovi Ivana Isadora Devcic(24 článků zveřejněno)

Ivana Isadora je nezávislá spisovatelka a překladatelka, milovnice Linuxu a fanynka KDE. Podporuje a propaguje bezplatný a open source software a stále hledá nové, inovativní aplikace. Zjistěte, jak se dostat do kontaktu tady .

Více od Ivany Isadory Devcic

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru