Når vi begynder at lære om kommandolinjeværktøjer, har vi tendens til at se dem som enlige formål. Du lærer, at cat
udskriver filindhold, ls
lister alle elementer i en mappe, og du
viser diskpladsforbruget. Men mange kommandolinjeværktøjer har snesevis af muligheder, som alle er pænt beskrevet i deres mandfiler. Nogle af dem kan gøre vidundere, når de kombineres med andre kommandoer.
Det er selvfølgelig urimeligt at forvente, at alle skal huske hver eneste mulighed. Med det i tankerne er det godt at genopfriske vores viden om Linux-kommandoer. En AZ af Linux - 40 vigtige kommandoer, du bør vide en AZ af Linux - 40 vigtige kommandoer, du bør vide, Linux er det ofte ignorerede tredje hjul til Windows og Mac. Ja i løbet af det sidste årti har open source operativsystemet fået en masse trækkraft, men det er stadig langt fra at blive overvejet ... Læs mere, fordi du måske opdager nye anvendelser til dem.
Denne gang fokuserer vi på cURL, et værktøj til overførsel af data via en række internetprotokoller som HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP og meget mere.
I forenklede vilkår udfører cURL forskellige anmodninger fra en klient til en server og etablerer en forbindelse mellem dem ved hjælp af en specifik protokol og de tilhørende metoder. For eksempel kan CURL som en HTTP-klient sende en anmodning om at se eller downloade indhold (GET-anmodningsmetode) eller at indsende indhold via en formular på en hjemmeside (POST-anmodningsmetode). Mange webapplikationer og tjenester gør det muligt for cURL at interagere med deres API'er (Application Programming Interface).
Fordi deres funktionalitet overlapper i et vist omfang, cURL og wget Mastering Wget & Learning Nogle Pæne Downloading Tricks Mastering Wget & Learning Nogle Pæne Downloading Tricks Sommetider er det bare ikke nok at gemme en hjemmeside lokalt fra din browser. Nogle gange har du brug for lidt mere strøm. Til dette er der et pænt lille kommandolinjeværktøj kendt som Wget. Wget er ... Læs mere er ofte sammenlignet med hinanden. Begge værktøjer kan downloade indhold fra internettet, men wget understøtter rekursive downloads, webskrabning og føles generelt lettere at bruge. Hvis du bare vil downloade filer fra terminalen Download webvideoer med kommandolinjen ved hjælp af Movgrab [Linux] Download webvideoer med kommandolinjen ved hjælp af Movgrab [Linux] Brug kommandolinjen til hurtigt at downloade videoer fra YouTube, Vimeo, Ted, Discovery og over 40 andre websteder ved hjælp af et enkelt program. Det hedder MovGrab, og det er et godt, gratis program til Linux. Vi har vist ... Læs mere, wget er nok et bedre valg.
På den anden side, hvis du har brug for avancerede HTTP-godkendelsesmetoder, og du vil uploade filer samt downloade dem, er det værd at lære at cURL. Wget understøtter kun HTTP (S) og FTP, mens cURL dækker en bred vifte af protokoller. Det betyder, at cURL kan gøre mere seje ting - og her er ti eksempler på at bevise det.
1. Hent vejrrapporten
Hvis nogen fortalte dig at tjekke vejret fra terminalen, ville du forvente at se nogle kedelige tal. Ikke med denne kommando.
curl http://wttr.in/LOCATION
Oplysningerne leveres af en CLI-applikation kaldet wego, men hvis du ikke vil installere det, kan cURL hente prognosen fra sin webfrontend wttr.in. Alt det behøver, er det sted, hvor du vil have prognosen. Indtast blot navnet på en by, dens lufthavnskode eller din nuværende IP-adresse. En ny funktion viser oplysninger om månenfaser, hvis du skriver:
curl wttr.in/Moon
2. Download filer og genoptag downloads
Downloading af filer er noget, vi normalt gør i browseren. Nogle gange vil du bruge en download manager Få en gratis download manager for at fremskynde dine downloads Få en gratis download manager for at fremskynde dine downloads Din browser gør ikke noget godt med at administrere store downloads. Hvis du er træt af langsom downloadhastighed og nedbrud, så prøv en download manager. Vi anbefaler 9 gratis værktøjer til at administrere dine downloads. Læs mere ; for eksempel når du henter flere filer på en gang, eller når du vil pause downloads. Selvom cURL ikke er et populært valg til samtidige downloads (wget anbefales i stedet), kan du stadig bruge det til det formål ved at kombinere dets kraftfulde muligheder (switches). Først skal du have et direkte link til filen. I dette eksempel bruger vi et PDF-dokument af Linux Voice-magasinet.
curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf
Hovedboksen O-switchen (-O) gør cURL gem filen med standardfilen (normalt den ene fra linket selv). Hvis du vil gemme det under et andet navn, vil du bruge små bogstaver o efterfulgt af det nye navn:
curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf
Som standard gemmes filerne i den aktuelle mappe (tjek det med pwd
kommandoen). For at gemme dem andetsteds, skal du angive stien efter -o-omskifteren. C-switchen gør det muligt for cURL at genoptage downloaden. Du vil standse det ved at trykke på Ctrl + C i terminalen og genoptage ved at køre samme download kommando igen:
cURL viser download fremskridt i et tabellignende format med kolonner indeholdende oplysninger om downloadhastighed, samlet filstørrelse, forløbet tid og meget mere. Hvis du ikke kan lide dette, kan du vælge en enklere statuslinje ved at tilføje - # eller -progress-bar til din cURL-kommando.
For at downloade flere filer på én gang skal du blot liste linksne efter hinanden:
curl -O file1.txt -O file2.pdf -O file3.zip
Ved hjælp af andre kommandolinjeværktøjer kan vi batch-downloade alle PNG- og JPG-billeder fra en Tumblr-blog:
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 tilfælde skal du cut
og grep
indsamle oplysninger om filnavne og formatere det, så kun filer med specificerede udvidelser vises. Hvis du kører kommandoen uden det sidste rør:
curl http://concept-art.tumblr.com/ | grep -o 'src="[^"]*.[png-jpg]"' | cut -d\" -f2
Du får bare en liste over filer, der opfylder vores kriterier, men de bliver faktisk ikke downloadet. cURL kan få en liste over billeder fra en række sider, forudsat at bloggen bruger standardpagination:
curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src="[^"]*.[png-jpg]"' | cut -d\" -f2
Du kan ændre rækkevidden ved at ændre tallene i firkantede parenteser. Igen vil denne kommando kun liste billederne; for at downloade dem, kør hele kommandoen i det bibliotek, hvor du vil gemme billederne:
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 velbevandret i regulære udtryk RegExr: Webbaseret Regular Expression Testing Tool RegExr: Webbaseret Regular Expression Testing Tool Læs mere, du kan forbedre udseendet og effektiviteten af denne kommando og dele resultatet i kommentarerne.
3. Administrer filer på en FTP-server
Vi hører ikke meget om FTP i disse dage, men det betyder ikke, at det er forældet. Faktisk deler mange open source-projekter og Linux-distributioner deres software på FTP-servere. Da FTP understøttes af cURL, kan du bruge det som en simpel FTP-klient FileZilla - Hvorfor denne FTP-klient triumferer over sine konkurrenter FileZilla - Hvorfor denne FTP-klient triumferer over sine konkurrenter Bærbare apps gør dig uafhængig. Gemt på en USB-stik eller i din Dropbox-mappe, vil alle dine vigtige værktøjer være ved hånden, hvor som helst du går. Du skal heller ikke installere noget. Læs mere for at uploade og downloade filer. Du kan gennemse filerne på en FTP-server ved at få adgang til mapperne:
curl ftp://ftp.debian.org/debian/
For at indtaste en undermappe skal du skrive sit navn efterfulgt af et fremad skråstreg (/).
Downloadning af filer ligner HTTP-downloads, der er beskrevet i det foregående afsnit. Du kan enten bruge -o eller -O, og tilføj -C - hvis du vil pause downloads.
curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso
Selvom cURL ikke understøtter rekursive downloads (husk, wget gør!), Kan det stadig hente en række filer på én gang. Den eneste betingelse er, at filnavnet følger et mønster. For eksempel kunne vi downloade fra en tapet-hosting-server, hvor tapeterne alle hedder "wallpaperNUMBER":
curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg"
Nogle FTP-servere kræver godkendelse, før du kan downloade filer. cURL giver dig mulighed for at logge ind med indstillingen -u (bruger):
curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt
Du kan også uploade filer til en FTP-server med funktionen -T (overførsel):
curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com
Her kan du også definere flere filer som en rækkevidde. Denne funktion kaldes undertiden "globbing". Hvis filnavnet ikke følger et mønster, skal du blot angive dem inden for krøllet parentes ( -T "{file1.txt, image27.jpg"}"
). Omvendt, hvis de har lignende navne, anvend samme logik fra Tumblr download eksempel og brug firkantede parenteser ( -T "photo[1-50].jpg""
). Sørg for at give den fulde sti til filerne, hvis de ikke er i din nuværende mappe.
4. Kontrollér, om et websted er nede
Vi har alle været der. Et websted, du absolut har brug for, ophører pludselig med at arbejde. Så vil Facebook ikke indlæse. Stillet over for et sandt første verdensproblem, hvad gør du?
Du kan Google det, spørg en ven om at teste det for dig, eller brug en af disse enkeltbetjente websteder, der fortæller dig, om et websted er nede. Eller du kan bare skyde op i terminalen og køre cURL:
curl -Is https://www.twitter.com -L | grep HTTP/
Den store bogstaver jeg skifter (-I) kontrollerer HTTP-overskriften på en webside, og alternativet -L (placering) er tilføjet for at gøre cURL-følger omdirigeringer. Det betyder, at du ikke behøver at skrive den fulde Facebook-URL; bare skriv facebook.com og cURL vil tage sig af resten takket være -L. Hvis der er omdirigeringer, vises de med deres egen HTTP-status.
Meddelelsen vi er interesseret i er "200 OK", hvilket betyder at alt er fint med hjemmesiden. Hvis det faktisk er nede, vil du se noget sådan her:
HTTP-statuskoder er kun så informative som din forståelse for dem tillader. Denne metode er ikke fuldstændig pålidelig, fordi et websted kan returnere en statuskode, der angiver en vellykket behandlet anmodning, men det vil være tomt, når du åbner det i browseren. Alligevel skal det i de fleste tilfælde svare til den virkelige situation og lade dig vide, hvad der sker - eller nede.
5. Udvid Shortened URLs
Forkortede webadresser er ikke iboende dårlige. Uden dem ville det være svært at dele links på Twitter Sådan slår du Twitters 140 tegnbegrænsning Sådan slår du Twitters 140 tegnbegrænsning Twitters 140 tegngrænse kan være en gener. Heldigvis er der måder at komme rundt om. Læs mere og andre tegnbegrænsede sociale netværk. Nogle URL-afkortningstjenester Prøv 10 forskellige URL-kort, der giver dig Addon-fordeler, prøv 10 forskellige URL-kort, der giver dig Addon-fordele. Hvor anderledes kan du forkorte en ensartet ressource locator? Nå er forkortningssystemet stort set et kæmpe arbejde, men tricket ser ud til at være i ekstramateriale, der følger med forkortningstjenesten .... Læs mere tilbyder også nyttige analyser. Men der er altid en risiko for, at nogen forsøger at skjule skadeligt indhold bag en forkortet URL, eller at en troll maskerer en Rickroll Beyond Parody: 5 Internet vittigheder, der voksede til noget større end parodi: 5 Internet vittigheder, der voksede til noget større Læs mere (eller noget meget, meget værre). Hvis du nogensinde føler dig mistænkelig for en forkortet webadresse af en eller anden grund, kan cURL hjælpe dig med at udvide det og finde ud af, hvor præcis det 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
; Hovedforskellen er i formateringen. Sed er et af de værktøjer, som enhver Linux-bruger burde vide. Hver Linux Geek behøver at vide Sed og Awk. Her er hvorfor ... Hver Linux Geek skal vide Sed og Awk. Her er hvorfor ... To af de mest kriminelt undervurderede Linux-forsyningsvirksomheder er den ganske vist arcane Sed og Awk. Men hvad er de? Hvordan bruges de? Og hvordan gør de det lettere at behandle tekst? Læs mere, og det supplerer cURL i dette og et par andre brugssager. Lad os ikke glemme, at cURL kan downloade filer fra en forkortet URL (forudsat at webadressen faktisk peger på en fil):
curl -L -o filename.txt http://short.url
Syntaxen er den samme som med andre cURL-downloads, og -L-opsætningen tager sig af omdirigering fra en forkortet URL til den oprindelige.
6. Vis din vurdering for ASCII Art
Det er ganske vist ikke særlig nyttigt, men det ser cool ud. Ved hjælp af pv
, et værktøj til overvågning af data fremskridt, kan cURL vise ASCII animationer i terminalen.
curl -s http://artscene.textfiles\.com/vt100/wineglas.vt | pv -L9600 -q
Optionerne -s og -q holder begge kommandoer i lydløs tilstand (stille). Alternativet -L henviser her til pv-kommandoen, og lader dig ændre overførselshastigheden for data i bytes per sekund. Med andre ord, hvis animationen bevæger sig for hurtigt eller for langsomt, så prøv at spille med det nummer. Ud over animationer kan cURL vise almindelig, statisk ASCII-kunst:
Weben har masser af hjemmesider med alle slags ASCII-kunst derude: fra utrolig detaljerede stykker af høj kvalitet til underligt, fjollet og endda NSFW-materiale. Denne digitale kunstteknik går tilbage til 1960'erne, og i dag er det en del af internetkultur og historie. 7 Gamle internettendenser, der påvirker internettet i dag 7 antikke internettendenser, der påvirker internettet i dag Dagens web kan muligvis ikke se eller føles som web af 1990'erne, men du vil blive overrasket over hvor meget af det faktisk er det samme, når du dykker under overfladen. Læs mere, hold dig i live i en lang række samlinger og værktøjer, der giver dig mulighed for at konvertere tekst og billeder til ASCII art ASCII Art: Image & Text til ASCII Converter ASCII Art: Image & Text til ASCII Converter Læs mere. Du kan bruge den til at dekorere din terminal eller for at prankere dine venner - uanset hvad din båd flyder.
7. Eksperiment med sociale medier
Brug af sociale medier fra terminalen er ikke noget nyt - vi har allerede vist dig kommandolinjestyringsklienter til Linux 5 Slimline og Command Line Twitter-klienter til Ubuntu 5 Slimline og Command Line Twitter-klienter til Ubuntu Linux-fællesskabet har i et stykke tid været desperat græder for en god Twitter-klient. Vi besluttede at undersøge det nuværende Linux Twitter-klientlandskab, på udkig efter lette og brugbare apps med nogle interessante resultater. Læs mere . Selvom du sandsynligvis ikke vil skifte til cURL som dit online socialiseringsværktøj, er det godt at vide, at du kan sende til Facebook med det som beskrevet her Sådan postes til Facebook fra kommandolinje nu, at FBCMD er død Sådan postes til Facebook Fra Kommandolinje nu, at FBCMD er Dead Forestil dig at åbne et kommandovindue på din pc, skrive en kommando med en enkelt linje og sende øjeblikkeligt til Facebook uden at åbne en browser eller en anden app. Læs mere . Du vil bemærke, at CURL teknisk set ikke gør det selv; en kombination af værktøjer får jobbet gjort.
Hvad angår kvidre, plejede det at være muligt at styre det direkte fra terminalen med cURL. Derefter ændrede Twitter sin API, og nu er der en særlig cURL-klient til Twitter kaldet Twurl. Det er ikke den nemmeste ting at bruge, især for en nybegynder, og det kræver godkendelse med Twitter-annonceplatformen. Det giver mening, hvis du er en udvikler eller en avanceret bruger, men ikke så meget, hvis du bare vil tweet fra kommandolinjen. Stadig er der måder at have det sjovt med Twitter. Du kan bruge cURL til at tjekke en brugers efterfølgerantal:
curl -s https://twitter.com/username | grep -o '[0-9, ]* Followers';
8. Find din eksterne IP-adresse
At finde din lokale IP-adresse er nem nok - bare kør ifconfig
eller kontakt din Network Management-applet. For den eksterne IP bruger de fleste specialiserede websteder til at indhente disse oplysninger. Men nogle ting er bare nemmere at gøre fra terminalen. 5 Ting, der er nemmere at gøre i Linux-kommandolinjen. 5 Ting, der er nemmere at gøre i Linux-kommandolinjen Læs mere, og det kan være en af dem. Du kan også oprette et alias Sådan defineres kommandolinjalaser på ethvert operativsystem Sådan defineres kommandolinjalaser på ethvert operativsystem Vi har talt om og anbefalede at få fat i computerens kommandolinjeterminal mange gange tidligere. Tina skrev en god primer til Windows-brugere med en Begynder's Guide til Windows Command ... Læs mere for cURL-kommandoen. Der er flere onlinetjenester, der samarbejder med cURL:
curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com
Nogle kan fortælle dig mere om en ekstern IP-adresse:
curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41
Alt du skal gøre er at vælge en tjeneste. Hvis du er ubeslutsom, skal du blot inkludere dem alle i dit alias, som backup løsninger.
9. Indsæt tekst og del billeder
At bryde din arbejdsgang er aldrig god for produktivitet og fokus. 5 Værktøjer, der hjælper dig med at fokusere og få det rigtige arbejde gjort 5 Værktøjer, der hjælper dig med at fokusere og få det rigtige arbejde færdigt Kampen om bedre produktivitet og distraheringsfri eksistens kan ikke kun vundet med selvkontrol. Apps og værktøjer rider til redning. Læs mere . Hvis du gør det meste af dit arbejde i terminalen, kan skifte til en browser bare for at dele et par filer være upraktisk, hvis ikke irriterende. Heldigvis blev nogle pastebin- og fildelingstjenester født til at arbejde med cURL, så du kan bruge dem direkte fra terminalen uden brugerkonto.
Clbin og Sprunge.us har lignende syntaks. Med Clbin rører du en lokal fil eller output fra en kommando, og den returnerer et link til din uploadede tekst:
cat textfile.txt | curl -F 'clbin=<-' https://clbin.com
Det understøtter også billedoploadinger (PNG, JPG og GIF):
curl -F '[email protected]"' https://clbin.com
Hvis du vil bruge Sprunge.us i stedet, skal du skrive:
cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us
Sprunge.us understøtter ikke billedoploading for nu.
Ix.io er baseret på samme princip som de to foregående tjenester, med et par ekstra funktioner. For at uploade en fil skal du skrive:
cat file.txt | curl -F 'f:1=<-' ix.io
eller
curl -F 'f:[email protected]' ix.io
Når du får et link til den uploadede tekst, kan du ændre sin webadresse for at vise syntaksfremhævning (med ix.io/yourpaste+
, ix.io/yourpaste/
, eller ix.io/yourpaste/language
for et bestemt script eller programmeringssprog) . Det er også muligt at begrænse, hvor mange gange et link kan ses ved at ændre nummeret efter værdien 'read:1'
:
cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io
Ix.io er primært beregnet til tekstbaserede filer som kildekode eller systemlogfiler. Hvis du vil uploade en række filformater, skal du bruge Transfer.sh. Den understøtter billeder, filkryptering og holder dine filer online i to uger. Du kan uploade op til 5 GB data til Transfer.sh. Sådan er det:
curl --upload-file bunnies.jpg" https://transfer.sh/bunnies.jpg"
Du er fri til at definere navnet på den uploadede fil. For at uploade flere filer skal du liste dem efter hinanden med -F-indstillingen:
curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/
10. Kontrollér ulæst mail på GMail
Der er massiv mulighed for at blive låst op i cURL, hvis du er villig til at dykke i detaljer om e-mail-relaterede protokoller (SMTP, POP, IMAP). For en hurtig email check, vil denne kommando gøre. Det analyserer din GMail feed og formaterer output (email emne og afsender) med tr
, awk
, sed
og / eller grep
kommandoer. Bemærk, at denne løsning er ekstremt usikker, fordi den afslører dine loginoplysninger til alle, der har adgang til din terminal. Den første version viser afsenderens navn, mens den anden udskriver kun ulæste e-mail-emner:
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'
Hvad andet kan cURL gøre?
cURL bruges sjældent som en selvstændig kommando. De fleste bruger det som en del af et script eller en applikation. Det er dog muligt at oprette praktiske linjer med cURL, som vi har demonstreret her. Mange af disse eksempler blev tilpasset fra CommandLineFu CommandLineFu: Amazing Collection of Command Line Gems [Linux & Mac] CommandLineFu: Amazing Collection of Command Line Gems [Linux & Mac] Gennemse et udvalg af utroligt nyttige kommandoer. Uanset om du er en veteran systemadministrator eller en kommandolinjepræmie, der stræber efter at opdage mere, er CommandLineFu en stemme-drevet samling af kommandoer, der tjener tusindvis af ideer du ... Læs mere, en fantastisk kilde til smart kommandolinjebacker, og du bør ikke betragte dem som sat i sten.
Med tilstrækkelig viden og erfaring kan vi ændre hver kommando, formatere den anderledes eller helt erstatte den med en bedre løsning. Kan du forbedre vores foreslåede cURL-kommandoer? Kender du til andre kølige anvendelser til cURL? Del dine tips i kommentarerne.
Billedkreditter: Inside Introduktion til Command Line af Osama Khalid via Flickr.