Bli CURLy: 10 nyttige ting du kan gjøre med cURL

Bli CURLy: 10 nyttige ting du kan gjøre med cURL

Når vi begynner å lære om kommandolinjeverktøy, har vi en tendens til å se dem som enkle formål. Du er lært det





cat

skriver ut filinnhold,





ls

viser alle elementene i en katalog, og





du

viser bruk av diskplass. Imidlertid har mange kommandolinjeverktøy dusinvis av alternativer, alle pent beskrevet i deres

man

filer. Noen av dem kan gjøre underverker når de kombineres med andre kommandoer.



Selvfølgelig er det urimelig å forvente at noen skal huske hvert eneste alternativ. Med det i bakhodet er det godt å av og til oppdatere vår kunnskap om Linux -kommandoer , fordi du kan oppdage nye bruksområder for dem.

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.





Forenklet utfører cURL forskjellige forespørsler fra en klient til en server, og etablerer en forbindelse mellom dem ved hjelp av en spesifikk protokoll og tilhørende metoder. For eksempel, som en HTTP -klient, kan cURL sende en forespørsel om å se eller laste ned innhold (GET -forespørselsmetode), eller å legge ut innhold via et skjema på et nettsted (POST -forespørselsmetode). Mange webapplikasjoner og tjenester lar cURL samhandle med API -ene sine (Application Programming Interface).

Fordi funksjonaliteten deres overlapper til en viss grad, blir cURL og wget ofte sammenlignet med hverandre. Begge verktøyene kan laste ned innhold fra Internett, men wget støtter rekursive nedlastinger, webskraping og føles generelt enklere å bruke. Hvis du bare vil laste ned filer fra terminalen, er wget sannsynligvis et bedre valg.





På den annen side, hvis du trenger avanserte HTTP -autentiseringsmetoder og vil laste opp filer så vel som å laste dem ned, er det verdt å lære å cURL. Wget støtter også bare HTTP (S) og FTP, mens cURL dekker et bredt spekter av protokoller. Dette betyr at cURL kan gjøre flere 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

Informasjonen er gitt av en CLI -applikasjon kalt vi går , men hvis du ikke vil installere det, kan cURL hente varselet fra webfrontend wttr.in. Alt du trenger er stedet du ønsker prognosen for. Bare skriv inn navnet på en by, flyplasskoden eller din nåværende IP -adresse. En ny funksjon viser informasjonen om månefaser hvis du skriver:

curl wttr.in/Moon

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; for eksempel når du laster ned flere filer samtidig, eller når du vil sette nedlastinger på pause. 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 de kraftige alternativene (brytere). Først trenger du en direkte lenke til filen. I dette eksemplet bruker vi en PDF -fil av bladet Linux Voice.

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

O-bryteren med store bokstaver (-O) gjør at cURL lagrer filen med standard filnavn (vanligvis det fra selve lenken). Hvis du ønsket å lagre det under et annet navn, bruker du 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 den nåværende katalogen (sjekk den med

pwd

kommando). For å lagre dem andre steder, oppgi banen etter -o -bryteren. Med -C - bryteren kan cURL fortsette nedlastingen. Du stopper den ved å trykke Ctrl+C i terminalen, og fortsette ved å kjøre den samme nedlastingskommandoen igjen:

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

For å laste ned flere filer samtidig, bare list opp koblingene etter hverandre:

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

Ved hjelp av andre kommandolinjeverktøy kan vi batch-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 dette tilfellet,

cut

og

grep

samle informasjon om filnavn og formater det slik at bare filer med angitte utvidelser vises. Hvis du kjører kommandoen uten det siste røret:

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 faktisk ikke lastet ned. cURL kan få en liste med 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 området ved å endre tallene i parenteser. Igjen vil denne kommandoen bare vise bildene; For å laste dem ned, kjør hele kommandoen i katalogen der 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 godt bevandret vanlig uttrykk , kan du 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 åpen kildekode -prosjekter og Linux -distribusjoner sin programvare på FTP -servere. Siden FTP støttes av cURL, kan du bruke den som en enkel FTP -klient 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 etterfulgt av et skråstrek (/).

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

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 det!), Kan den 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 server for tapet-hosting der bakgrunnsbildene alle heter 'wallpaperNUMBER':

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

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

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 område. Denne funksjonen kalles noen ganger 'globbing'. Hvis filnavnene ikke følger et mønster, er det bare å liste dem innenfor krøllete parenteser (

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

). Omvendt, hvis de har lignende navn, bruker du den samme logikken fra Tumblr -nedlastingseksemplet og bruker firkantede parenteser (

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

). Sørg for å oppgi 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 slutter plutselig å fungere. Da vil ikke Facebook lastes inn. Hva gjør du med et ekte første verdensproblem?

Du kan Google det, be en venn om å teste det for deg, eller bruke et av disse nettstedene som viser deg om et nettsted er nede. Eller du kan bare fyre opp terminalen og kjøre cURL:

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

I -hovedbryteren (-I) kontrollerer HTTP -overskriften til en webside, og alternativet -L (plassering) legges til for at cURL skal følge omdirigeringer. Dette betyr at du ikke trenger å skrive inn hele Facebook -nettadressen; bare skriv facebook.com og cURL vil ta seg av resten takket være -L. Hvis det er noen omdirigeringer, vises de med sin egen HTTP -status.

Meldingen vi er interessert i er '200 OK', noe som betyr at alt er bra med nettstedet. Hvis det virkelig er nede, ser du noe slikt:

HTTP -statuskoder er bare så informative som din forståelse av dem tillater det. Denne metoden er ikke helt pålitelig, fordi et nettsted kan returnere en statuskode som indikerer en forespørsel som er behandlet, men den vil være tom når du åpner den i nettleseren. Likevel bør det i de fleste tilfeller 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 lenker på Twitter og andre tegnbegrensede sosiale nettverk. Noen tjenester for URL -forkortelse tilbyr også nyttig analyse. Men det er alltid en risiko for at noen prøver å skjule ondsinnet innhold bak en forkortet URL, eller at et troll skjuler en Rickroll (eller noe mye, mye verre). Hvis du av en eller annen grunn føler deg mistenksom for en forkortet URL, kan cURL hjelpe deg med å utvide den og finne ut hvor den fører til:

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

eller

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

Du kan kombinere cURL med

grep

eller

sed

; den største forskjellen er i formateringen. Sed er et av disse verktøyene hver Linux -bruker bør vite, og det utfyller cURL i dette og noen få andre brukstilfeller. La oss ikke glemme at cURL kan laste ned filer fra en forkortet URL (forutsatt at URL -en faktisk peker på en fil):

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

Syntaksen er den samme som for andre cURL -nedlastinger, og alternativet -L tar seg av omdirigering fra en forkortet URL til den opprinnelige.

6. Vis din takknemlighet for ASCII Art

Riktignok er dette ikke spesielt nyttig, men det ser kult ut. Med hjelp av

pv

, et verktøy for å overvåke fremdriften av data, 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 (stille) modus. Alternativet -L refererer her til pv -kommandoen, og lar deg endre overføringshastigheten for data i byte per sekund. Med andre ord, hvis animasjonen beveger seg for fort eller for sakte, kan du prøve å spille med det nummeret. Bortsett fra animasjoner kan cURL vise vanlig, statisk ASCII -kunst:

Nettet har mange nettsteder med alle slags ASCII-kunst der ute: fra utrolig detaljerte stykker av høy kvalitet til merkelig, dumt og til og med NSFW-materiale. Denne digitale kunstteknikken dateres tilbake til 1960 -tallet, og i dag er den en del av internettkultur og historie, holdt liv i mange samlinger og verktøy som lar deg konvertere tekst og bilder til ASCII art . Du kan bruke den til å dekorere terminalen din eller til å tulle med vennene dine - uansett hva som flyter i båten din.

7. Eksperimenter med sosiale medier

Å bruke sosiale medier fra terminalen er ikke noe nytt-vi har allerede vist deg Twitter-klienter på kommandolinjen for Linux. Selv om du sannsynligvis ikke vil bytte til cURL som ditt online sosialiseringsverktøy, er det godt å vite at du kan legge ut på Facebook med det, som beskrevet her. Du vil legge merke til at teknisk sett gjør cURL det ikke alene; en kombinasjon av verktøy får jobben gjort.

Når det gjelder Twitter, var det tidligere mulig å administrere det direkte fra terminalen med cURL. Deretter endret Twitter sitt API, og nå er det en spesiell cURL -klient for Twitter som heter Twurl. Det er ikke det enkleste å bruke, spesielt for en nybegynner, og det krever autentisering med Twitter Ad Platform. Dette er fornuftig 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 for å kontrollere brukerens antall følgere:

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

8. Finn din eksterne IP -adresse

Det er enkelt å finne din lokale IP -adresse - bare kjør

overfør windows 10 til en ny datamaskin
ifconfig

eller kontakt nettverksadministrasjons -appleten. For den eksterne IP bruker de fleste spesialiserte nettsteder for å skaffe denne informasjonen. Noen ting er likevel bare lettere å gjøre fra terminalen, og dette kan være en av dem. Du kan også opprette et alias for cURL -kommandoen. Det er 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 enhver ekstern IP -adresse:

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

Alt du trenger å gjøre er å velge en tjeneste. Hvis du er ubesluttsom, må du bare inkludere dem alle i aliaset ditt, som backup -løsninger.

9. Lim inn tekst og del bilder

Å bryte arbeidsflyten din er aldri bra for produktivitet og fokus. Hvis du gjør det meste av arbeidet ditt i terminalen, kan det være upraktisk, om ikke irriterende, å bytte til en nettleser bare for å dele noen få filer. Heldigvis ble noen pastebin- og fildelingstjenester født for å jobbe med cURL, slik at du kan bruke dem rett fra terminalen, uten en brukerkonto.

Clbin og Sprunge.us har lignende syntaks. Med Clbin rør du en lokal fil eller utdata fra en kommando, og den returnerer en lenke til den opplastede teksten:

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

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

curl -F 'clbin=@image.png' 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 bildeopplasting for øyeblikket.

Ix.io er basert på det samme prinsippet som de to foregående tjenestene, med noen få ekstra funksjoner. For å laste opp en fil, skriver du inn:

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

eller

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

Når du får en lenke til den opplastede teksten, kan du endre URL -en for å vise syntaksutheving (med

ix.io/yourpaste+

,

ix.io/yourpaste/

, eller

ix.io/yourpaste/language

for et spesifikt skript- eller programmeringsspråk). Det er også mulig å begrense hvor mange ganger en lenke kan sees ved å endre tallet etter

'read:1'

verdi:

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

Ix.io er først og fremst beregnet på tekstbaserte filer, for eksempel 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 står fritt 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 e -post på GMail

Det er et stort potensial for å bli låst opp i cURL hvis du er villig til å gå nærmere inn på detaljer om e-postrelaterte protokoller (SMTP, POP, IMAP). For en rask e -postkontroll, vil denne kommandoen gjøre. Den analyserer din GMail -feed og formaterer utdata (e -postemne og avsender) med

tr

,

awk

,

sed

og/eller

grep

kommandoer. Vær oppmerksom på at denne løsningen er ekstremt utrygg fordi den avslører påloggingsinformasjonen din for alle som har tilgang til terminalen din. Den første versjonen viser avsenderens navn, mens den andre skriver ut bare uleste e -postemner:


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'

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 en applikasjon. Likevel er det mulig å lage praktiske one-liners med cURL, som vi har vist her. Mange av disse eksemplene ble tilpasset fra CommandLineFu, en fantastisk kilde til smarte kommandolinjehack, og du bør ikke betrakte dem som stein.

Med nok kunnskap og erfaring kan vi endre hver kommando, formatere den annerledes eller helt erstatte den 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 tipsene dine i kommentarene.

Bildekreditter: Innvendig introduksjon til kommandolinjen av Osama Khalid via Flickr.

Dele Dele kvitring E -post Slett disse Windows -filene og mappene for å frigjøre diskplass

Trenger du å tømme diskplass på Windows -datamaskinen? Her er Windows -filer og mapper som trygt kan slettes for å frigjøre diskplass.

Les neste
Relaterte temaer
  • Linux
  • FTP
  • Last ned administrasjon
  • Terminal
Om forfatteren Ivana Isadora Devcic(24 artikler publisert)

Ivana Isadora er frilansskribent og oversetter, Linux -elsker og KDE fangirl. Hun støtter og markedsfører gratis og åpen kildekode -programvare, og hun ser alltid etter friske, innovative apper. Finn ut hvordan du kommer i kontakt her .

Mer fra Ivana Isadora Devcic

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere