Bli cURLy: 10 användbara saker du kan göra med cURL

Bli cURLy: 10 användbara saker du kan göra med cURL

När vi börjar lära oss om kommandoradsverktyg tenderar vi att se dem som enkla. Du har lärt dig det





cat

skriver ut filinnehåll,





ls

listar alla objekt i en katalog och





du

visar användning av hårddiskutrymme. Men många kommandoradsverktyg har dussintals alternativ, alla prydligt beskrivna i deras

man

filer. Några av dem kan göra underverk i kombination med andra kommandon.



Naturligtvis är det orimligt att förvänta sig att någon ska komma ihåg varje alternativ. Med det i åtanke är det bra att ibland uppdatera vår kunskap om Linux -kommandon , eftersom du kan upptäcka nya användningsområden för dem.

Den här gången fokuserar vi på ringla , ett verktyg för att överföra data via ett antal internetprotokoll som HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP och mer.





I förenklade termer utför cURL olika förfrågningar från en klient till en server och upprättar en anslutning mellan dem med hjälp av ett specifikt protokoll och dess associerade metoder. Till exempel, som en HTTP -klient, kan cURL skicka en begäran om att visa eller ladda ner innehåll (GET -begärningsmetod), eller att lägga upp innehåll via ett formulär på en webbplats (POST -begärningsmetod). Många webbapplikationer och tjänster gör att cURL kan interagera med sina API: er (Application Programming Interface).

Eftersom deras funktionalitet överlappar i viss utsträckning jämförs cURL och wget ofta med varandra. Båda verktygen kan ladda ner innehåll från Internet, men wget stöder rekursiva nedladdningar, webbskrapning och känns i allmänhet enklare att använda. Om du bara vill ladda ner filer från terminalen är wget förmodligen ett bättre val.





Å andra sidan, om du behöver avancerade HTTP -autentiseringsmetoder och vill ladda upp filer och ladda ner dem, är det värt att lära sig hur man cURL. Wget stöder också bara HTTP (S) och FTP, medan cURL täcker ett brett spektrum av protokoll. Det betyder att cURL kan göra fler coola saker - och här är tio exempel för att bevisa det.

1. Få väderrapporten

Om någon sa till dig att kontrollera vädret från terminalen, förväntar du dig att se några tråkiga siffror. Inte med det här kommandot.

curl http://wttr.in/LOCATION

Informationen tillhandahålls av en CLI -applikation som kallas vi går , men om du inte vill installera den kan cURL hämta prognosen från webben frontend wttr.in. Allt du behöver är den plats som du vill ha prognosen för. Skriv bara in namnet på en stad, dess flygplatskod eller din nuvarande IP -adress. En ny funktion visar information om månfaser om du skriver:

curl wttr.in/Moon

2. Ladda ner filer och fortsätt nedladdningar

Ladda ner filer är något vi vanligtvis gör i webbläsaren. Ibland vill du använda en nedladdningshanterare; till exempel när du laddar ner flera filer samtidigt eller när du vill pausa nedladdningar. Även om cURL inte är ett populärt val för samtidiga nedladdningar (wget rekommenderas istället), kan du fortfarande använda det för detta ändamål genom att kombinera dess kraftfulla alternativ (switchar). Först behöver du en direktlänk till filen. I det här exemplet använder vi en PDF -fil av tidningen Linux Voice.

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

O-omkopplaren med stora bokstäver (-O) gör att cURL sparar filen med standardfilnamnet (vanligtvis det från själva länken). Om du ville spara det under ett annat namn skulle du använda gemener o följt av det nya namnet:

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

Som standard sparas filerna i den aktuella katalogen (kontrollera det med

pwd

kommando). För att spara dem någon annanstans, ange sökvägen efter -o -omkopplaren. Med -C - switch kan cURL återuppta nedladdningen. Du skulle pausa den genom att trycka på Ctrl+C i terminalen och fortsätta genom att köra samma nedladdningskommando igen:

cURL visar nedladdningsförloppet i ett tabellliknande format, med kolumner som innehåller information om nedladdningshastighet, total filstorlek, förfluten tid och mer. Om du ogillar detta kan du välja en enklare statusfält genom att lägga till -# eller --progress -bar till ditt cURL -kommando.

För att ladda ner flera filer samtidigt listar du bara länkarna efter varandra:

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

Med hjälp av andra kommandoradsverktyg kan vi ladda ner alla PNG- och JPG-bilder från en Tumblr-blogg:

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

I detta fall,

cut

och

grep

samla information om filnamn och formatera det så att endast filer med angivna tillägg visas. Om du kör kommandot utan det sista röret:

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

du får bara en lista över filer som uppfyller våra kriterier, men de kommer faktiskt inte att laddas ner. cURL kan få en lista med bilder från en rad sidor, förutsatt att bloggen använder standard sidvisning:

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

Du kan ändra intervallet genom att ändra siffrorna inom hakparenteser. Återigen skulle detta kommando bara lista bilderna; för att ladda ner dem, kör hela kommandot i katalogen där du vill spara bilderna:

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

Om du är insatt vanliga uttryck , kan du förbättra utseendet och effektiviteten hos detta kommando och dela resultatet i kommentarerna.

3. Hantera filer på en FTP -server

Vi hör inte mycket om FTP nuförtiden, men det betyder inte att det är föråldrat. Faktum är att många open source -projekt och Linux -distributioner delar sin programvara på FTP -servrar. Eftersom FTP stöds av cURL kan du använda den som en enkel FTP -klient för att ladda upp och ladda ner filer. Du kan bläddra bland filerna på en FTP -server genom att öppna katalogerna:

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

För att ange en underkatalog, skriv dess namn följt av ett snedstreck (/).

Nedladdning av filer liknar HTTP -nedladdningar som beskrivs i föregående avsnitt. Du kan antingen använda -o eller -O och lägga till -C -om du vill pausa nedladdningar.

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

Även om cURL inte stöder rekursiva nedladdningar (kom ihåg, wget gör det!), Kan det fortfarande ladda ner en rad filer samtidigt. Det enda villkoret är att filnamnen följer ett mönster. Till exempel kan vi ladda ner från en server för bakgrundsbilder där tapeterna alla heter 'wallpaperNUMBER':

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

Vissa FTP -servrar kräver autentisering innan du kan ladda ner filer. cURL låter dig logga in med alternativet -u (användare):

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

Du kan också ladda upp filer till en FTP -server med alternativet -T (överföring):

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

Här kan du också definiera flera filer som ett intervall. Denna funktion kallas ibland 'globbing'. Om filnamnen inte följer ett mönster listar du dem bara inom lockiga parenteser (

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

). Omvänt, om de har liknande namn, tillämpa samma logik från Tumblr -nedladdningsexemplet och använd hakparenteser (

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

). Se till att ange hela sökvägen till filerna om de inte finns i din nuvarande katalog.

4. Kontrollera om en webbplats är nere

Vi har alla varit där. En webbplats du absolut behöver slutar plötsligt att fungera. Då laddas inte Facebook. Inför ett verkligt första världsproblem, vad gör du?

Du kan googla det, be en vän att testa det åt dig eller använda en av de webbplatser med en enda tjänst som berättar om en webbplats är nere. Eller så kan du bara elda upp terminalen och köra cURL:

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

Växeln med stora bokstäver (-I) kontrollerar HTTP -rubriken på en webbsida och alternativet -L (plats) läggs till för att få cURL att följa omdirigeringar. Det betyder att du inte behöver skriva in hela Facebook -URL: en. bara Skriv facebook.com och cURL tar hand om resten tack vare -L. Om det finns några omdirigeringar kommer de att visas med sin egen HTTP -status.

Meddelandet vi är intresserade av är '200 OK', vilket betyder att allt är bra med webbplatsen. Om det verkligen är nere ser du något så här:

HTTP -statuskoder är bara så informativa som din förståelse av dem tillåter. Denna metod är inte helt tillförlitlig, eftersom en webbplats kan returnera en statuskod som indikerar en framgångsrikt behandlad begäran, men den kommer att vara tom när du öppnar den i webbläsaren. Ändå bör det i de flesta fall motsvara den verkliga situationen och låta dig veta vad som händer - eller ner.

5. Expandera förkortade webbadresser

Förkortade webbadresser är i sig inte dåliga. Utan dem skulle det vara svårt att dela länkar på Twitter och andra karaktärsbegränsade sociala nätverk. Vissa URL -förkortningstjänster erbjuder också användbar analys. Men det finns alltid en risk att någon försöker dölja skadligt innehåll bakom en förkortad URL, eller att ett troll maskerar en Rickroll (eller något mycket, mycket värre). Om du av någon anledning känner dig misstänksam mot en förkortad URL, kan cURL hjälpa dig att expandera den och ta reda på vart den exakt leder till:

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

eller

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

Du kan kombinera cURL med

grep

eller

sed

; den största skillnaden är i formateringen. Sed är ett av de verktyg som alla Linux -användare borde känna till, och det kompletterar cURL i detta och några andra användningsfall. Låt oss inte glömma att cURL kan ladda ner filer från en förkortad URL (förutsatt att URL: en faktiskt pekar på en fil):

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

Syntaxen är densamma som för andra cURL -nedladdningar, och alternativet -L tar hand om omdirigeringen från en förkortad URL till den ursprungliga.

6. Visa din uppskattning för ASCII Art

Visserligen är detta inte särskilt användbart, men det ser coolt ut. Med hjälp av

pv

, ett verktyg för att övervaka dataförlopp, kan cURL visa ASCII -animationer i terminalen.

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

Alternativen -s och -q håller båda kommandona i tyst (tyst) läge. Alternativet -L hänvisar här till pv -kommandot och låter dig ändra överföringshastigheten för data i byte per sekund. Med andra ord, om animationen går för snabbt eller för långsamt, försök spela med det numret. Förutom animationer kan cURL visa vanlig, statisk ASCII -konst:

Webben har massor av webbplatser med alla typer av ASCII-konst där ute: från fantastiskt detaljerade detaljer av hög kvalitet till konstiga, dumma och till och med NSFW-material. Denna digitala konstteknik går tillbaka till 1960 -talet, och idag är den en del av internetkultur och historia, som hålls vid liv i många samlingar och verktyg som låter dig konvertera text och bilder till ASCII art . Du kan använda den för att dekorera din terminal eller för att busa dina vänner - vad som än flyter din båt.

7. Experimentera med sociala medier

Att använda sociala medier från terminalen är inget nytt-vi har redan visat dig kommandorads Twitter-klienter för Linux. Även om du förmodligen inte kommer att byta till cURL som ditt online socialiseringsverktyg, är det bra att veta att du kan lägga upp på Facebook med det, som beskrivs här. Du kommer att märka att tekniskt sett gör cURL inte det på egen hand; en kombination av verktyg får jobbet gjort.

När det gäller Twitter var det tidigare möjligt att hantera det direkt från terminalen med cURL. Sedan bytte Twitter sitt API, och nu finns det en speciell cURL -klient för Twitter som heter Twurl. Det är inte det enklaste att använda, särskilt för en nybörjare, och det kräver autentisering med Twitter -annonsplattformen. Detta är vettigt om du är en utvecklare eller en avancerad användare, men inte så mycket om du bara vill twittra från kommandoraden. Ändå finns det sätt att ha kul med Twitter. Du kan använda cURL för att kontrollera användarens antal följare:

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

8. Hitta din externa IP -adress

Det är enkelt att hitta din lokala IP -adress - kör bara

bättre fotovisare för Windows 10
ifconfig

eller kontakta din nätverkshanterings -applet. För extern IP använder de flesta specialiserade webbplatser för att få denna information. Vissa saker är dock bara lättare att göra från terminalen, och det här kan vara en av dem. Du kan också skapa ett alias för kommandot cURL. Det finns flera onlinetjänster som samarbetar med cURL:

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

Vissa kan berätta mer om vilken extern IP -adress som helst:

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

Allt du behöver göra är att välja en tjänst. Om du är obeslutsam, bara inkludera dem alla i ditt alias, som backup -lösningar.

9. Klistra in text och dela bilder

Att bryta ditt arbetsflöde är aldrig bra för produktivitet och fokus. Om du gör det mesta av ditt arbete i terminalen kan det vara opraktiskt, om inte irriterande, att byta till en webbläsare bara för att dela några filer. Lyckligtvis föddes några pastebin- och fildelningstjänster för att arbeta med cURL, så att du kan använda dem direkt från terminalen, utan ett användarkonto.

Clbin och Sprunge.us har liknande syntax. Med Clbin rör du en lokal fil eller utdata från ett kommando, och den returnerar en länk till din uppladdade text:

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

Det stöder också bildöverföringar (PNG, JPG och GIF):

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

Om du vill använda Sprunge.us istället skriver du:

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

Sprunge.us stöder inte bildöverföringar för tillfället.

Ix.io är baserad på samma princip som de två tidigare tjänsterna, med några extra funktioner. För att ladda upp en fil skriver du:

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

eller

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

När du får en länk till den uppladdade texten kan du ändra dess URL så att syntaxmarkering (med

ix.io/yourpaste+

,

ix.io/yourpaste/

, eller

ix.io/yourpaste/language

för ett specifikt skript- eller programmeringsspråk). Det är också möjligt att begränsa hur många gånger en länk kan ses genom att ändra numret efter

'read:1'

värde:

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

Ix.io är främst avsett för textbaserade filer som källkod eller systemloggar. Om du vill ladda upp en mängd olika filformat, använd Transfer.sh . Den stöder bilder, filkryptering och håller dina filer online i två veckor. Du kan ladda upp upp till 5 GB data till Transfer.sh. Här är hur:

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

Du är fri att definiera namnet på den uppladdade filen. För att ladda upp flera filer, lista dem efter varandra med alternativet -F:

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

10. Markera Oläst post på GMail

Det finns en enorm potential att låsas upp i cURL om du är villig att fördjupa dig i detaljer om e-postrelaterade protokoll (SMTP, POP, IMAP). För en snabb e -postkontroll gör det här kommandot. Den analyserar ditt GMail -flöde och formaterar utdata (e -postämne och avsändare) med

tr

,

awk

,

sed

och/eller

grep

kommandon. Observera att denna lösning är extremt osäker eftersom den exponerar dina inloggningsuppgifter för alla som har tillgång till din terminal. Den första versionen visar avsändarens namn, medan den andra skriver ut endast olästa e -postämnen:


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'

Vad annat kan cURL göra?

cURL används sällan som ett fristående kommando. De flesta använder det som en del av ett skript eller en applikation. Ändå är det möjligt att skapa praktiska one-liners med cURL, som vi har visat här. Många av dessa exempel anpassades från CommandLineFu, en fantastisk källa till smarta kommandoradshackar, och du bör inte betrakta dem som stenade.

Med tillräckligt med kunskap och erfarenhet kan vi ändra varje kommando, formatera det annorlunda eller helt ersätta det med en bättre lösning. Kan du förbättra våra föreslagna cURL -kommandon? Känner du till andra coola användningsområden för cURL? Dela dina tips i kommentarerna.

Bildkrediter: Inuti Introduktion till kommandoraden av Osama Khalid via Flickr.

Dela med sig Dela med sig Tweet E-post Ta bort dessa Windows -filer och mappar för att frigöra diskutrymme

Behöver du rensa diskutrymme på din Windows -dator? Här är Windows -filer och mappar som säkert kan raderas för att frigöra diskutrymme.

Läs Nästa
Relaterade ämnen
  • Linux
  • FTP
  • Ladda ner hantering
  • Terminal
Om författaren Ivana Isadora Devcic(24 artiklar publicerade)

Ivana Isadora är frilansande författare och översättare, Linux -älskare och KDE fangirl. Hon stöder och marknadsför gratis och öppen källkod, och hon letar alltid efter nya, innovativa appar. Ta reda på hur du kommer i kontakt här .

Mer från Ivana Isadora Devcic

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera