Få cURLy: 10 nyttige ting du kan gjøre med cURL

Linux Terminal har så mange måter å interagere med og manipulere data, og kanskje den beste måten å gjøre dette på er med cURL. Disse 10 tipsene og triksene viser deg hvor kraftig den er.

Linux Terminal har så mange måter å interagere med og manipulere data, og kanskje den beste måten å gjøre dette på er med cURL.  Disse 10 tipsene og triksene viser deg hvor kraftig den er.
Annonse

Når vi begynner å lære om kommandolinjeverktøy, pleier vi å se dem som engangsformål. Du har lært at cat skriver ut filinnhold, ls viser alle elementer i en katalog, og du viser diskplassbruken. Imidlertid har mange kommandolinjeverktøy dusinvis av alternativer, alt nøyaktig beskrevet i deres mannsfiler. Noen av dem kan gjøre underverk når de kombineres med andre kommandoer.

Selvfølgelig er det urimelig å forvente at noen skal huske hvert eneste alternativ. Med det i tankene, er det godt å gjenkjenne vår kunnskap om Linux-kommandoer. En AZ av Linux - 40 viktige kommandoer Du bør vite en A-Å av Linux - 40 viktige kommandoer Du bør vite Linux er det ofte ignorerte tredje hjulet til Windows og Mac. Ja det siste tiåret har operativsystemet for åpen kildekode fått mye trekkraft, men det er fortsatt langt fra å bli vurdert ... Les mer, fordi du kanskje oppdager ny bruk for dem.

curl-kommandoer-innføring

Denne gangen fokuserer vi på cURL, et verktøy for overføring av data via en rekke Internett-protokoller som HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP og mer.

I forenklede vilkår utfører cURL ulike forespørsler fra en klient til en server, og etablerer en forbindelse mellom dem ved hjelp av en bestemt protokoll og tilhørende metoder. For eksempel, som en HTTP-klient, kan cURL sende en forespørsel om å vise eller laste ned innhold (GET-forespørselsmetode), eller å legge inn innhold via et skjema på et nettsted (POST-forespørselsmetode). Mange webapplikasjoner og tjenester tillater cURL å samhandle med APIene sine (Application Programming Interface).

Fordi deres funksjonalitet overlapper i en grad, kan CURL og Wget Mastering Wget & Learning noen nøye nedlasting av triks. Mastering Wget & Learning Noen nydelige nedlastningstrykk Noen ganger er det bare ikke nok å lagre et nettsted lokalt fra nettleseren din. Noen ganger trenger du litt mer strøm. For dette er det et pent lite kommandolinjeverktøy kjent som Wget. Wget er ... Les mer blir ofte sammenlignet med hverandre. Begge verktøyene kan laste ned innhold fra Internett, men wget støtter rekursive nedlastinger, nettskraping og føles generelt enklere å bruke. Hvis du bare vil laste ned filer fra terminalen Last ned webvideoer med kommandolinjen ved hjelp av Movgrab [Linux] Last ned webvideoer med kommandolinjen ved hjelp av Movgrab [Linux] Bruk kommandolinjen til raskt å laste ned videoer fra YouTube, Vimeo, Ted, Discovery og over 40 andre nettsteder ved hjelp av ett enkelt program. Det kalles MovGrab, og det er et flott, gratis program for Linux. Vi har vist ... Les mer, wget er sannsynligvis et bedre valg.

På den annen side, hvis du trenger avanserte HTTP-autentiseringsmetoder, og ønsker å laste opp filer så vel som å laste dem ned, er det verdt å lære å cURL. Også, wget støtter bare HTTP (S) og FTP, mens cURL dekker et bredt spekter av protokoller. Dette betyr at cURL kan gjøre mer kule ting - og her er ti eksempler for å bevise det.

1. Få værmeldingen

Hvis noen fortalte deg å sjekke været fra terminalen, ville du forvente å se noen kjedelige tall. Ikke med denne kommandoen.

curl http://wttr.in/LOCATION

curl-kommandoer-vær

Informasjonen er gitt av en CLI-applikasjon kalt vei, men hvis du ikke vil installere det, kan cURL hente prognosen fra sin webfrontside wttr.in. Alt det trenger, er stedet du vil ha prognosen for. Skriv bare navnet på en by, dens flyplasskode eller din nåværende IP-adresse. En ny funksjon viser informasjonen om månenfaser hvis du skriver:

curl wttr.in/Moon

curl-kommandoer-phase

2. Last ned filer og fortsett nedlastinger

Nedlasting av filer er noe vi vanligvis gjør i nettleseren. Noen ganger vil du bruke en nedlastingsbehandling Få en gratis nedlastingsbehandling for å øke hastigheten på nedlastingene Få en gratis nedlastingsbehandling for å øke hastigheten på nedlastingene Din nettleser gjør ikke en god jobb med å administrere store nedlastinger. Hvis du er lei av sakte nedlastingshastighet og krasjer, kan du prøve en nedlastingsbehandling. Vi anbefaler 9 gratis verktøy for å administrere nedlastingene dine. Les mer ; for eksempel når du laster ned flere filer samtidig, eller når du vil pause nedlastinger. Selv om cURL ikke er et populært valg for samtidige nedlastinger (wget anbefales i stedet), kan du fortsatt bruke det til det formålet ved å kombinere sine kraftige alternativer (brytere). Først må du ha en direkte kobling til filen. I dette eksemplet bruker vi en PDF av Linux Voice-magasinet.

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

Hovedboksen O-bryteren (-O) gjør at cURL lagrer filen med standardfilen (vanligvis den fra selve lenken). Hvis du vil lagre det under et annet navn, vil du bruke små bokstaver o etterfulgt av det nye navnet:

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

Som standard lagres filene i gjeldende katalog (sjekk den med pwd kommandoen). For å lagre dem andre steder, gi banen etter -o-bryteren. C-bryteren gjør det mulig for cURL å gjenoppta nedlastingen. Du vil sette den på pause ved å trykke Ctrl + C i terminalen, og fortsette ved å kjøre samme nedlastingskommando igjen:

curl-kommandoer-CV-nedlasting

cURL viser nedlastingsfremdriften i et tabelllignende format, med kolonner som inneholder informasjon om nedlastingshastighet, total filstørrelse, forløpt tid og mer. Hvis du ikke liker dette, kan du velge en enklere statuslinje ved å legge til - # eller -progress-bar til cURL-kommandoen.

For å laste ned flere filer samtidig, bare oppfør linkene en etter den andre:

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

Ved hjelp av andre kommandolinjeverktøy kan vi laste ned alle PNG- og JPG-bilder fra 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 cut og grep samle inn informasjon om filnavn og formatere det slik at bare filer med spesifiserte utvidelser vises. Hvis du kjører kommandoen uten siste rør:

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

Du får bare en liste over filer som tilfredsstiller våre kriterier, men de blir egentlig ikke lastet ned. cURL kan få en liste over bilder fra en rekke sider, forutsatt at bloggen bruker standard paginering:

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

Du kan endre rekkevidden ved å endre tallene i firkantede parenteser. Igjen, denne kommandoen ville bare liste bildene; for å laste ned dem, kjør full kommando i katalogen hvor du vil lagre bildene:

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

Hvis du er kjent med regulære uttrykk RegExr: Webbasert Regular Expression Testing Tool RegExr: Webbasert Regular Expression Testing Tool Les mer, du kan forbedre utseendet og effektiviteten til denne kommandoen, og dele resultatet i kommentarene.

3. Administrer filer på en FTP-server

Vi hører ikke mye om FTP i disse dager, men det betyr ikke at det er foreldet. Faktisk deler mange open source-prosjekter og Linux-distribusjoner deres programvare på FTP-servere. Siden FTP støttes av cURL, kan du bruke den som en enkel FTP-klient FileZilla - Hvorfor denne FTP-klienten triumferer over konkurrentene FileZilla - Hvorfor denne FTP-klienten triumferer over konkurrentene sine Portable apps gjør deg selvstendig. Lagret på en USB-pinne eller i Dropbox-mappen, vil alle dine viktige verktøy være innen hånden uansett hvor du går. Du trenger ikke å installere noe heller. Les mer for å laste opp og laste ned filer. Du kan bla gjennom filene på en FTP-server ved å gå til katalogene:

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

For å skrive inn en underkatalog, skriv inn navnet sitt etterfulgt av et fremoverstrekk (/).

curl-kommandoer-ftp-bla

Nedlasting av filer ligner på HTTP-nedlastinger som er beskrevet i forrige avsnitt. Du kan enten bruke -o eller -O, og legg til -C - hvis du vil pause nedlastinger.

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

Selv om cURL ikke støtter rekursive nedlastinger (husk, wget gjør!), Kan det fortsatt laste ned en rekke filer samtidig. Den eneste betingelsen er at filnavnene følger et mønster. For eksempel kan vi laste ned fra en tapet-hosting server der bakgrunnsbilder er alle kalt "wallpaperNUMBER":

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

Noen FTP-servere krever godkjenning før du kan laste ned filer. cURL lar deg logge inn med -u (bruker) alternativet:

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

Du kan også laste opp filer til en FTP-server med alternativet -T (overføring):

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

Her kan du også definere flere filer som et utvalg. Denne funksjonen kalles noen ganger "globbing". Hvis filnavnene ikke følger et mønster, bare oppgi dem i krøllete parentes ( -T "{file1.txt, image27.jpg"}" ). Omvendt, hvis de har lignende navn, bruk samme logikk fra Tumblr nedlastingseksempel og bruk firkantede parenteser ( -T "photo[1-50].jpg"" ). Sørg for å gi hele banen til filene hvis de ikke er i din nåværende katalog.

4. Sjekk om et nettsted er nede

Vi har alle vært der. Et nettsted du absolutt trenger plutselig slutter å jobbe. Da vil Facebook ikke laste. Opptatt av et sant første verdensproblem, hva gjør du?

Du kan Google det, spør en venn til å teste den for deg, eller bruk en av disse enkeltvisende nettstedene som forteller deg om et nettsted er nede. Eller du kan bare skyte opp terminalen og kjøre cURL:

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

Hovedboksen jeg bytter (-I) sjekker HTTP-overskriften til en nettside, og alternativet -L (plassering) er lagt til for å gjøre cURL-viderekoblinger. Dette betyr at du ikke trenger å skrive inn hele Facebook-nettadressen; bare skriv facebook.com og cURL vil ta vare på resten takket være -L. Hvis det er noen omdirigeringer, vil de bli vist med sin egen HTTP-status.

curl-kommandoer-http-status

Meldingen vi er interessert i er "200 OK", noe som betyr at alt er bra med nettsiden. Hvis det faktisk er nede, ser du noe slikt:

curl-kommandoer-http-status-ned

HTTP-statuskoder er bare like informative som forståelsen av dem tillater. Denne metoden er ikke helt pålitelig, fordi et nettsted kan returnere en statuskode som angir en vellykket behandlet forespørsel, men det vil være tomt når du åpner det i nettleseren. Likevel, i de fleste tilfeller bør det svare til den virkelige situasjonen, og gi deg beskjed om hva som skjer - eller ned.

5. Utvid forkortede nettadresser

Forkortede nettadresser er ikke iboende dårlige. Uten dem ville det være vanskelig å dele koblinger på Twitter Hvordan slå Twitters 140 tegngrense Hvordan slå Twitters 140 tegngrense Twitters 140 tegngrense kan være et ordensforstyrrelser. Heldigvis er det måter å komme seg rundt på. Les mer og andre tegnbegrensede sosiale nettverk. Noen URL-kortingstjenester Prøv 10 forskjellige URL-korttakere som gir deg Addon-fordeler, prøv 10 forskjellige URL-korttakere som gir deg Addon-fordeler Hvor annerledes kan du forkorte en ensartet ressurslokaliser? Vel, forkortingssystemet er ganske mye en jobbig jobb, men trikset ser ut til å være i tilleggene som følger med forkortingstjenesten .... Les mer tilby nyttig analyse også. Men det er alltid en risiko for at noen prøver å skjule skadelig innhold bak en forkortet nettadresse, eller at en troll maskerer en Rickroll Beyond Parody: 5 Internett-vitser som vokste til noe større enn parodi: 5 Internett-vitser som vokste til noe større Les mer (eller noe mye, mye verre). Hvis du noen gang føler deg mistenksom på en forkortet nettadresse, kan CURL hjelpe deg med å utvide den og finne ut hvor nøyaktig det fører til:

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

eller

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

curl-kommandoer-ekspandere

Du kan kombinere cURL med grep eller sed ; Hovedforskjellen er i formateringen. Sed er et av de verktøyene hver Linux bruker burde vite. Hver Linux Geek trenger å vite Sed og Awk. Her er hvorfor ... Hver Linux Geek trenger å vite Sed og Awk. Her er hvorfor ... To av de mest kriminelt undervurderte Linux-verktøyene er admittedly arcane Sed og Awk. Men hva er de? Hvordan brukes de? Og hvordan gjør de det enklere å behandle tekst? Les mer, og det utfyller cURL i dette og noen andre brukssaker. La oss ikke glemme at cURL kan laste ned filer fra en forkortet nettadresse (forutsatt at nettadressen faktisk peker på en fil):

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

Syntaxen er den samme som med andre cURL nedlastinger, og -L-alternativet tar seg av omdirigering fra en forkortet nettadresse til den opprinnelige.

6. Vis din vurdering for ASCII Art

Admittedly, dette er ikke spesielt nyttig, men det ser kult ut. Ved hjelp av pv, et verktøy for overvåking av datautvikling, kan cURL vise ASCII-animasjoner i terminalen.

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

Alternativene -s og -q holder begge kommandoene i stille modus (stille). -L-alternativet her refererer til pv-kommandoen, og lar deg endre overføringshastigheten av data i byte per sekund. Med andre ord, hvis animasjonen beveger seg for fort eller for sakte, prøv å spille med det nummeret. Bortsett fra animasjoner, kan cURL vise vanlig, statisk ASCII-kunst:

curl-kommandoer-asciiart

Internett har mange nettsteder med alle slags ASCII-kunst der ute: fra utrolig detaljerte, høyverdige brikker til rare, dumme og til og med NSFW-materiale. Denne digitale kunstteknikken går tilbake til 1960-tallet, og i dag er det en del av Internett-kulturen og historien. 7 Ancient Internet Trends That Affect The Web Today 7 Ancient Internet Trends That Affect The Web Today Dagens web kan ikke se eller føles som nettet på 1990-tallet, men du vil bli overrasket over hvor mye av det faktisk er det samme når du dykker under overflaten. Les mer, hold deg i live i en rekke samlinger og verktøy som lar deg konvertere tekst og bilder til ASCII art ASCII Art: Bilde og tekst til ASCII Converter ASCII Art: Bilde og tekst til ASCII Converter Les mer. Du kan bruke den til å dekorere terminalen din eller for å prankere dine venner - uansett hvor flott båten din er.

7. Eksperiment med sosiale medier

Bruk av sosiale medier fra terminalen er ikke noe nytt - vi har allerede vist deg kommandolinjerklienter for Linux 5 Slimline og Command Line Twitter-klienter for Ubuntu 5 Slimline og Command Line Twitter-klienter for Ubuntu For en stund har Linux-fellesskapet vært desperat gråt ut for en god Twitter klient. Vi bestemte oss for å undersøke dagens Linux Twitter-klientlandskap, på jakt etter lette, brukbare apps, med noen interessante resultater. Les mer . Mens du sannsynligvis ikke vil bytte til cURL som ditt online sosialiseringsverktøy, er det godt å vite at du kan legge inn på Facebook med det som beskrevet her. Slik legger du til Facebook fra kommandolinje nå at FBCMD er død. Slik legger du til Facebook Fra Kommandolinje nå at FBCMD er død Tenk deg å åpne et kommandovindu på PCen din, skrive en kommando med en linje og legge ut umiddelbart til Facebook uten å åpne en nettleser eller annen app. Les mer . Du vil merke at det teknisk sett ikke gjør CURL på egen hånd; en kombinasjon av verktøy får jobben gjort.

curl-facebook11

Når det gjelder Twitter, pleide det å være mulig å administrere det direkte fra terminalen med cURL. Så Twitter endret API, og nå er det en spesiell cURL-klient for Twitter kalt Twurl. Det er ikke den enkleste tingen å bruke, spesielt for en nybegynner, og det krever godkjenning med Twitter-annonseplanen. Dette gir mening hvis du er en utvikler eller en avansert bruker, men ikke så mye hvis du bare vil tweet fra kommandolinjen. Likevel er det måter å ha det gøy med Twitter. Du kan bruke cURL til å sjekke en brukerens tilhengerantal:

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

curl-kommandoer-kvitter-etterfølgere

8. Finn din eksterne IP-adresse

Å finne din lokale IP-adresse er enkel nok - bare kjør ifconfig eller konsulter nettverksadministrasjonsprogrammet. For den eksterne IP bruker de fleste spesialiserte nettsteder for å skaffe seg denne informasjonen. Noen ting er enda enklere å gjøre fra terminalen. 5 Ting enklere å gjøre i Linux-kommandolinjen. 5 Ting enklere å gjøre i Linux-kommandolinjen Les mer, og dette kan være en av dem. Du kan også opprette et alias Slik definerer du kommandolinjalasjer på hvilket som helst operativsystem Slik definerer du kommandolinjalasjer på hvilket operativsystem som helst Vi har snakket om, og anbefalt å ta tak i datamaskinens kommandolinjeterminal mange ganger tidligere. Tina skrev en god primer for Windows-brukere med en nybegynners guide til Windows Command ... Les mer for cURL-kommandoen. Det finnes flere elektroniske tjenester som samarbeider med cURL:

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

Noen kan fortelle deg mer om en hvilken som helst ekstern IP-adresse:

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

curl-kommandoer-ip-adresse

Alt du trenger å gjøre er å velge en tjeneste. Hvis du er ubesluttsom, bare ta med dem alle i ditt alias, som backup løsninger.

9. Lim inn tekst og del bilder

Å bryte arbeidsflyten din, er aldri bra for produktivitet og fokus. 5 Verktøy som hjelper deg med å fokusere og få virkelig arbeid gjort 5 Verktøy som hjelper deg med å fokusere og få virkelig arbeid gjort Kampen for bedre produktivitet og distraheringsfri eksistens kan ikke vunnes av selvkontroll alene. Apper og verktøy rir til redning. Les mer . Hvis du gjør det meste av arbeidet ditt i terminalen, kan bytte til en nettleser bare for å dele noen filer være upraktisk, om ikke irriterende. Heldigvis ble noen pastebin- og fildelingstjenester født for å jobbe med cURL, så du kan bruke dem direkte fra terminalen uten brukerkonto.

Clbin og Sprunge.us har lignende syntaks. Med Clbin piper du en lokal fil eller utgangen av en kommando, og den returnerer en kobling til den lastede teksten din:

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

Den støtter også bildeopplastinger (PNG, JPG og GIF):

curl -F '[email protected]"' https://clbin.com

Hvis du vil bruke Sprunge.us i stedet, skriver du:

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

Sprunge.us støtter ikke bildeopplastinger for nå.

Ix.io er basert på samme prinsipp som de to foregående tjenestene, med noen ekstra funksjoner. For å laste opp en fil, skriv inn:

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

eller

curl -F 'f:[email protected]' ix.io

Når du får en lenke til den opplastede teksten, kan du endre nettadressen for å vise ix.io/yourpaste+ (med ix.io/yourpaste+, ix.io/yourpaste/, eller ix.io/yourpaste/language for et bestemt skript eller programmeringsspråk) . Det er også mulig å begrense hvor mange ganger en kobling kan vises ved å endre nummeret etter 'read:1' -verdien:

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

Ix.io er primært beregnet for tekstbaserte filer som kildekode eller systemlogger. Hvis du vil laste opp en rekke filformater, bruker du Transfer.sh. Den støtter bilder, filkryptering, og holder filene dine online i to uker. Du kan laste opp opptil 5 GB data til Transfer.sh. Dette er hvordan:

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

Du er fri til å definere navnet på den opplastede filen. For å laste opp flere filer, liste dem etter hverandre med alternativet -F:

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

10. Sjekk ulest post på GMail

Det er stort potensial for å bli låst opp i cURL hvis du er villig til å dykke inn i detaljer om e-postrelaterte protokoller (SMTP, POP, IMAP). For en rask e-postbekreftelse, vil denne kommandoen gjøre. Det analyserer din GMail-feed og formaterer utdataene (e-postfag og avsender) med tr, awk, sed og / eller grep kommandoer. Vær oppmerksom på at denne løsningen er ekstremt usikker fordi den avslører innloggingsinformasjonen til alle som har tilgang til terminalen din. Den første versjonen viser avsenderens navn, mens den andre skriver ut bare uleste e-postpersoner:

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'

curl-kommandoer-check-gmail

Hva annet kan CURL gjøre?

cURL brukes sjelden som en frittstående kommando. De fleste bruker det som en del av et skript eller et program. Likevel er det mulig å lage praktiske enlindere med cURL, som vi har demonstrert her. Mange av disse eksemplene ble tilpasset fra CommandLineFu CommandLineFu: Amazing Collection of Command Line Gems [Linux og Mac] CommandLineFu: Amazing Collection of Command Line Gems [Linux og Mac] Bla gjennom et utvalg av utrolig nyttige kommandoer. Enten du er en veteransystemadministrator eller en kommandolinjebevegelse som prøver å oppdage mer, er CommandLineFu en stemme-driven samling kommandoer som tjener tusenvis av ideer du ... Les mer, en fantastisk kilde til smart kommandolinjebacker, og du bør ikke betrakte dem som satt i stein.

Med nok kunnskap og erfaring, kan vi endre hver kommando, formatere den annerledes, eller erstatte den helt med en bedre løsning. Kan du forbedre våre foreslåtte cURL-kommandoer? Vet du om noen andre kule bruksområder for cURL? Del dine tips i kommentarene.

Image Credits: Inside Introduksjon til Command Line av Osama Khalid via Flickr.

In this article