När vi börjar lära oss om kommandoradsverktyg tenderar vi att se dem som enstaka ändamål. Du har lärt dig att cat
skriver ut innehållet, ls
listar alla objekt i en katalog och du
visar användningen av diskutrymme. Men många kommandoradsverktyg har dussintals alternativ, alla noggrant beskrivna i deras manfiler. Vissa av dem kan göra underverk när de kombineras med andra kommandon.
Det är naturligtvis orimligt att förvänta sig att alla ska komma ihåg varje enskilt alternativ. Med det i åtanke är det bra att uppdatera vår kunskap om Linux-kommandon. En AZ av Linux - 40 viktiga kommandon som du borde veta en AZ av Linux - 40 viktiga kommandon som du borde veta Linux är det ofta ignorerade tredjehjulet till Windows och Mac. Ja, under det senaste decenniet har operativsystemet öppen källkod fått mycket dragkraft, men det är fortfarande långt ifrån att bli övervägt ... Läs mer, för att du kanske upptäcker nya användningsområden för dem.
Den här gången fokuserar vi på cURL, ett verktyg för överföring av data via ett antal Internet-protokoll 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 etablerar en anslutning mellan dem med hjälp av ett specifikt protokoll och dess associerade metoder. Exempelvis kan cURL som en HTTP-klient skicka en begäran om att visa eller hämta innehåll (GET-förfrågan) eller att skicka innehåll via en blankett på en webbplats (POST-förfrågan). Många webbapplikationer och tjänster tillåter cURL att interagera med sina API: er (Application Programming Interface).
Eftersom deras funktionalitet överlappar i viss utsträckning, cURL och wget Mastering Wget & Learning Några snyggt nedladdande tricks Mastering Wget & Learning Några snyggt nedladdande tricks Ibland är det inte tillräckligt att spara en webbplats lokalt från din webbläsare. Ibland behöver du lite mer kraft. För detta finns det ett snyggt litet kommandoradsverktyg som kallas Wget. Wget är ... Läs mer jämförs ofta med varandra. Båda verktygen kan ladda ner innehåll från Internet, men wget stöder rekursiva nedladdningar, webbskrapning och känns generellt enklare att använda. Om du bara vill ladda ner filer från terminalen Hämta webbvideor med kommandoraden med Movgrab [Linux] Ladda ner webbvideor med kommandoraden med Movgrab [Linux] Använd kommandoraden för att snabbt ladda ner videor från YouTube, Vimeo, Ted, Discovery och över 40 andra webbplatser med ett enkelt program. Det heter MovGrab och det är ett bra, gratis program för Linux. Vi har visat ... Läs mer, wget är förmodligen ett bättre val.
Å andra sidan, om du behöver avancerade HTTP-autentiseringsmetoder, och vill ladda upp filer samt ladda ner dem, är det värt att lära dig hur man cURL. Dessutom stöder wget endast HTTP (S) och FTP, medan cURL täcker ett brett spektrum av protokoll. Det betyder att cURL kan göra mer coola saker - och här är tio exempel för att bevisa det.
1. Hämta väderrapporten
Om någon berättade för dig att kolla vädret från terminalen, skulle du vilja se några tråkiga siffror. Inte med det här kommandot.
curl http://wttr.in/LOCATION
Informationen tillhandahålls av en CLI-ansökan som heter roado, men om du inte vill installera det, kan cURL hämta prognosen från webben fronten wttr.in. Allt det behöver är den plats som du vill ha prognosen för. Skriv bara namnet på en stad, dess flygplatsnummer eller din nuvarande IP-adress. En ny funktion visar informationen om månfaser om du skriver:
curl wttr.in/Moon
2. Hämta filer och fortsätt nedladdningar
Nedladdning av filer är något vi brukar göra i webbläsaren. Ibland vill du använda en nedladdningshanterare Få en gratis nedladdningshanterare för att påskynda dina nedladdningar Få en gratis nedladdningshanterare för att påskynda dina nedladdningar Din webbläsare gör inte ett bra jobb för att hantera stora hämtningar. Om du är trött på långsamma nedladdningshastigheter och kraschar, kan du prova en nedladdningshanterare. Vi rekommenderar 9 gratis verktyg för att hantera dina nedladdningar. Läs mer ; till exempel när du hämtar 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 det ändamålet genom att kombinera sina 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 Linux Voice-tidningen.
curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf
Den stora bokstaven O-knappen (-O) gör att cURL sparar filen med standardfilnamnet (vanligtvis den från länken själv). Om du vill spara det under ett annat namn, använder du små bokstäver 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 den med pwd
kommandot). För att spara dem på annat håll, ge vägen efter -omkopplaren. C-switchen gör det möjligt för cURL att återuppta nedladdningen. Du skulle pausa det genom att trycka 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 inte gillar det här 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 på en gång, bara lista 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 så fall samla och grep
samla information om filnamn och formatera det så att endast filer med specificerade 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 hämtas. cURL kan få en lista med bilder från en rad sidor, förutsatt att bloggen använder standardpagination:
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 i kvadratiska parenteser. Återigen skulle detta kommando bara lista bilderna; 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 välkänd i reguljära uttryck RegExr: Webbaserat regelbundet Expression Testing Tool RegExr: Webbaserat Regular Expression Testing Tool Läs mer, du kan förbättra utseendet och effektiviteten av det här kommandot och dela resultatet i kommentarerna.
3. Hantera filer på en FTP-server
Vi hör inte mycket om FTP dessa dagar, men det betyder inte att det är föråldrat. Faktum är att många öppna källprojekt 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 FileZilla - Varför den här FTP-klienten triumferar över sina konkurrenter FileZilla - Varför den här FTP-klienten triumferar över sina konkurrenter Portable apps gör dig självständig. Lagras på en USB-minne eller i din Dropbox-mapp, kommer alla dina viktiga verktyg att ligga inom fingertoppen, var du än än går. Du behöver inte heller installera något. Läs mer för att ladda upp och ladda ner filer. Du kan bläddra i 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 en framåt 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!), 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 tapeter-värdserver 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 i hakparenteser ( -T "{file1.txt, image27.jpg"}"
). Omvänt, om de har liknande namn, använd samma logik från Tumblr-nedladdningsexemplet och använd fyrkantiga parenteser ( -T "photo[1-50].jpg""
). Se till att du anger 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 plötsligt slutar fungera. Då laddas inte Facebook. Inför ett sant första världsproblem, vad gör du?
Du kan Google det, be en vän att testa den för dig, eller använd en av de enskilda sidorna som berättar om en webbplats är nere. Eller du kan bara skjuta upp terminalen och köra cURL:
curl -Is https://www.twitter.com -L | grep HTTP/
Den stora bokstaven jag byter (-I) kontrollerar HTTP-rubriken på en webbsida och alternativet -L (plats) läggs till för att göra omdirigeringar av cURL. Det betyder att du inte behöver skriva in hela Facebook-webbadressen. skriv bara facebook.com och cURL tar hand om resten tack vare -L. Om det finns några omdirigeringar visas de 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 som detta:
HTTP-statuskoder är bara så informativa som din förståelse för dem tillåter. Den här metoden är inte helt tillförlitlig, eftersom en webbplats kan returnera en statuskod som indikerar en framgångsrikt behandlad förfrågan, men den blir tom när du öppnar den i webbläsaren. Ändå borde det i de flesta fall motsvara den verkliga situationen och låta dig veta vad som händer - eller nere.
5. Utvid Korta URL-adresser
Förkortade webbadresser är inte inneboende dåliga. Utan dem skulle det vara svårt att dela länkar på Twitter Hur man klick Twitters 140 teckenbegränsning Hur man klarar Twitters 140 teckenbegränsning Twitters 140 teckengräns kan vara ett problem. Lyckligtvis finns det sätt att ta sig runt det. Läs mer och andra teckenbegränsade sociala nätverk. Några URL-korttjänster Testa 10 olika URL-kort som ger dig Addon-fördelar Prova 10 olika URL-kort som ger dig Addon-fördelar Hur annorlunda kan du förkorta en enhetlig resurslokaliserare? Tja, förkortningssystemet är ganska mycket jobbigt, men tricket verkar vara i extrafunktionerna som kommer med förkortningstjänsten .... Läs mer erbjuda användbar analys också. Men det finns alltid risk för att någon försöker dölja skadligt innehåll bakom en förkortad URL, eller att en troll maskerar en Rickroll Beyond Parody: 5 Internet-skämt som växte in i någonting större än parodi: 5 Internet-skämt som växte upp i någonting större Läs mer (eller något mycket, mycket värre). Om du någonsin känner dig misstänkt för en förkortad URL av någon anledning kan cURL hjälpa dig att expandera det och ta reda på var exakt det 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
; Huvudskillnaden ligger i formateringen. Sed är ett av de verktyg som varje Linux-användare borde veta. Varje Linux-geek behöver veta Sed och Awk. Här är varför ... Varje Linux-geek behöver veta Sed och Awk. Det här är varför ... Två av de mest brottsligt undervärderade Linux-verktygen är visserligen arcane Sed och Awk. Men vad är de? Hur används de? Och hur gör de det enklare att bearbeta text? Läs mer, och det kompletterar cURL i detta och några andra användarfall. Låt oss inte glömma att cURL kan hämta filer från en förkortad URL (förutsatt att webbadressen faktiskt pekar på en fil):
curl -L -o filename.txt http://short.url
Syntaxen är densamma som med andra cURL-nedladdningar, och -L-alternativet tar hand om omdirigering från en förkortad URL till den ursprungliga.
6. Visa din bedömning för ASCII Art
Visserligen är det inte särskilt användbart, men det ser cool ut. Med hjälp av pv
, ett verktyg för övervakning av datautveckling kan cURL visa ASCII-animeringar 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 läge (tyst). Alternativet -L här hänvisar till pv-kommandot och låter dig ändra överföringshastigheten för data i byte per sekund. Med andra ord, om animeringen rör sig för snabbt eller för långsamt, försök att spela med det numret. Förutom animeringar kan cURL visa vanlig, statisk ASCII-konst:
Webben har många webbplatser med alla slags ASCII-konst där ute: från otroligt detaljerade, högkvalitativa bitar till konstigt, dumt och till och med NSFW-material. Denna digitala konstteknik går tillbaka till 1960-talet och idag ingår det i internetkultur och historia. 7 Ancient Internet Trends That Affect the Web Today 7 Ancient Internet Trends That Affect the Web Today Dagens webben kanske inte ser ut eller känns som webben på 1990-talet, men du skulle bli förvånad över hur mycket av det faktiskt är detsamma när du dyker under ytan. Läs mer, håll dig levande i många samlingar och verktyg som låter dig konvertera text och bilder till ASCII art ASCII Art: Bild och text till ASCII Converter ASCII Art: Bild och text till ASCII Converter Läs mer. Du kan använda den för att dekorera din terminal eller att pranka dina vänner - oavsett vilken båt du flyter.
7. Experiment med sociala medier
Använda sociala medier från terminalen är inget nytt - vi har redan visat dig kommandorads Twitter-klienter för Linux 5 Slimline och Command Line Twitter-klienter för Ubuntu 5 Slimline och Command Line Twitter-klienter för Ubuntu Linux-gemenskapen har länge varit desperat gråter ut för en bra Twitter-klient. Vi bestämde oss för att undersöka det aktuella Linux Twitter-klientlandskapet, letar efter lättviktiga, användbara appar, med några intressanta resultat. Läs mer . Medan du förmodligen inte kommer att byta till cURL som ditt online-socialiseringsverktyg, är det bra att veta att du kan skicka till Facebook med det, som beskrivet här. Hur man lägger till Facebook från kommandoraden nu när FBCMD är död. Hur man skickar till Facebook Från Kommandorad nu då FBCMD är dod Föreställ dig att öppna ett kommandofönster på din dator, skriva ett kommando med en rad och skicka direkt till Facebook utan att ens öppna en webbläsare eller annan app. Läs mer . Du kommer märka att, tekniskt sett, gör cURL inte det själv; en kombination av verktyg får jobbet gjort.
När det gäller Twitter, brukade det vara möjligt att hantera det direkt från terminalen med cURL. Då ändrade 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. Det här är meningsfullt om du är en utvecklare eller en avancerad användare, men inte så mycket om du bara vill tweet från kommandoraden. Fortfarande finns det sätt att ha kul med Twitter. Du kan använda cURL för att kontrollera en användares följdräkning:
curl -s https://twitter.com/username | grep -o '[0-9, ]* Followers';
8. Hitta din externa IP-adress
Att hitta din lokala IP-adress är lätt nog - kör bara ifconfig
eller konsultera din nätverkshanteringsapplet. För den externa IP använder de flesta specialiserade webbplatser för att få denna information. Ändå är vissa saker enklare att göra från terminalen. 5 Saker som är enklare att göra i Linux-kommandoraden 5 Saker som är enklare att göra i Linux-kommandoraden Läs mer, och det kan vara en av dem. Du kan även skapa ett alias Hur man definierar kommandoradsaliaser på vilket operativsystem som helst. Definiera kommandoradsaliaser på vilket operativsystem vi har pratat om och rekommenderade att ta tag i datorns kommandorads terminal flera gånger tidigare. Tina skrev en bra primer för Windows-användare med en nybörjar guide till Windows Command ... Läs mer för cURL-kommandot. 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 någon extern IP-adress:
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 backuplösningar.
9. Klistra in text och dela bilder
Att bryta ditt arbetsflöde är aldrig bra för produktivitet och fokusering. 5 Verktyg som hjälper dig att fokusera och få verkligt arbete. 5 Verktyg som hjälper dig att fokusera och få verkligt arbete. Kampen för bättre produktivitet och distraheringsfri existens kan inte vinna självkontroll själv. Appar och verktyg rider till räddningen. Läs mer . Om du gör det mesta av ditt arbete i terminalen kan byte till en webbläsare bara för att dela några filer vara opraktiskt, om inte irriterande. Lyckligtvis föddes några pastebin- och fildelningstjänster för att arbeta med cURL, så du kan använda dem direkt från terminalen utan ett användarkonto.
Clbin och Sprunge.us har liknande syntax. Med Clbin ringer du en lokal fil eller utmatningen av ett kommando, och det returnerar en länk till din uppladdade text:
cat textfile.txt | curl -F 'clbin=<-' https://clbin.com
Den stöder också bilduppladdningar (PNG, JPG och GIF):
curl -F '[email protected]"' https://clbin.com
Om du vill använda Sprunge.us istället, skriv:
cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us
Sprunge.us stöder inte bilduppladdningar för nu.
Ix.io bygger på samma princip som de tidigare två tjänsterna, med några extrafunktioner. För att ladda upp en fil skriver du:
cat file.txt | curl -F 'f:1=<-' ix.io
eller
curl -F 'f:[email protected]' ix.io
När du får en länk till den uppladdade texten kan du ändra dess webbadress för att visa syntaxmarkering (med ix.io/yourpaste+
, ix.io/yourpaste/
, eller ix.io/yourpaste/language
för ett visst 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ärdet:
cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io
Ix.io är främst avsedd för textbaserade filer som källkod eller systemloggar. Om du vill ladda upp en mängd olika filformat använder du 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. Kontrollera oläst e-post på GMail
Det finns massiv potential att låsa upp i cURL om du är villig att dyka in i detaljer om e-postrelaterade protokoll (SMTP, POP, IMAP). För en snabb e-postkontroll kommer det här kommandot att göra. Det analyserar ditt GMail-flöde och formaterar utgången (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 avslöjar dina inloggningsuppgifter till 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 '\n' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/\(.*\)\(.*\).*/\2 - \1/p"
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. Det är ändå möjligt att skapa praktiska linjer med cURL, som vi har demonstrerat här. Många av dessa exempel anpassades från CommandLineFu CommandLineFu: Amazing Collection of Command Line Gems [Linux och Mac] CommandLineFu: Amazing Collection of Command Line Gems [Linux och Mac] Bläddra bland ett urval av otroligt användbara kommandon. Oavsett om du är en veteransystemadministratör eller en kommandoradsnophyte som strävar efter att upptäcka mer, är CommandLineFu en röststyrd samling kommandon som tjänar upp tusentals idéer du ... Läs mer, en fantastisk källa till smarta kommandoradshackar, och du bör inte betrakta dem som i sten.
Med tillräcklig 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 några andra häftiga användningsområden för cURL? Dela dina tips i kommentarerna.
Bildkrediter: Inledning till kommandoraden av Osama Khalid via Flickr.