Iegūstiet cURLy: 10 noderīgas lietas, ko varat darīt ar cURL

Iegūstiet cURLy: 10 noderīgas lietas, ko varat darīt ar cURL

Kad mēs sākam mācīties par komandrindas rīkiem, mums ir tendence tos uzskatīt par vienu mērķi. Jums to māca





cat

izdrukā faila saturu,





ls

uzskaita visus direktorija vienumus un





du

parāda diska vietas izmantošanu. Tomēr daudziem komandrindas rīkiem ir desmitiem iespēju, kas visas ir rūpīgi aprakstītas

man

failus. Daži no tiem var darīt brīnumus, ja tos apvieno ar citām komandām.



Protams, nav saprātīgi gaidīt, ka ikviens atcerēsies katru iespēju. Paturot to prātā, ir labi laiku pa laikam atsvaidzināt mūsu zināšanas par Linux komandām , jo jūs varētu atklāt tiem jaunus pielietojumus.

Šoreiz mēs koncentrējamies uz cURL , rīks datu pārsūtīšanai, izmantojot vairākus interneta protokolus, piemēram, HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP un citus.





Vienkāršoti runājot, cURL veic dažādus pieprasījumus no klienta uz serveri, izveidojot savienojumu starp tiem, izmantojot īpašu protokolu un ar to saistītās metodes. Piemēram, kā HTTP klients, cURL var nosūtīt pieprasījumu, lai apskatītu vai lejupielādētu saturu (GET pieprasījuma metode) vai ievietotu saturu, izmantojot veidlapu vietnē (POST pieprasījuma metode). Daudzas tīmekļa lietojumprogrammas un pakalpojumi ļauj CURL mijiedarboties ar to API (lietojumprogrammu saskarne).

Tā kā to funkcionalitāte zināmā mērā pārklājas, cURL un wget bieži tiek salīdzināti. Abi rīki var lejupielādēt saturu no interneta, taču wget atbalsta rekursīvas lejupielādes, tīmekļa nokasīšanu un parasti ir vienkāršāk lietojams. Ja vēlaties tikai lejupielādēt failus no termināļa, wget, iespējams, ir labāka izvēle.





No otras puses, ja jums ir vajadzīgas uzlabotas HTTP autentifikācijas metodes un vēlaties augšupielādēt failus, kā arī tos lejupielādēt, ir vērts iemācīties cURL. Turklāt wget atbalsta tikai HTTP (S) un FTP, savukārt cURL aptver plašu protokolu klāstu. Tas nozīmē, ka CURL var darīt vairāk interesantu lietu, un šeit ir desmit piemēri, lai to pierādītu.

1. Iegūstiet laika ziņu

Ja kāds jums lika pārbaudīt laika apstākļus no termināļa, jūs varētu gaidīt garlaicīgus skaitļus. Ne ar šo komandu.

curl http://wttr.in/LOCATION

Informāciju sniedz CLI lietojumprogramma ar nosaukumu mēs ejam , bet, ja nevēlaties to instalēt, cURL var ielādēt prognozi no sava tīmekļa priekšpuses wttr.in. Viss, kas tam nepieciešams, ir vieta, kurai vēlaties prognozēt. Vienkārši ierakstiet pilsētas nosaukumu, tās lidostas kodu vai pašreizējo IP adresi. Jauna funkcija parāda informāciju par mēness fāzēm, ja ierakstāt:

curl wttr.in/Moon

2. Lejupielādējiet failus un atsāciet lejupielādi

Failu lejupielāde parasti notiek pārlūkprogrammā. Dažreiz jūs vēlaties izmantot lejupielādes pārvaldnieku; piemēram, lejupielādējot vairākus failus vienlaikus vai ja vēlaties apturēt lejupielādi. Lai gan cURL nav populāra izvēle vienlaicīgai lejupielādei (tā vietā ieteicams lietot wget), jūs joprojām varat to izmantot šim nolūkam, apvienojot tās jaudīgās iespējas (slēdžus). Vispirms jums būs nepieciešama tieša saite uz failu. Šajā piemērā mēs izmantosim žurnāla Linux Voice PDF failu.

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

Lielo burtu O slēdzis (-O) liek cURL saglabāt failu ar noklusējuma faila nosaukumu (parasti tas, kas iegūts no pašas saites). Ja vēlaties to saglabāt ar citu nosaukumu, izmantojiet mazos burtus o, kam seko jaunais nosaukums:

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

Pēc noklusējuma faili tiek saglabāti pašreizējā direktorijā (pārbaudiet to ar

pwd

komanda). Lai tos saglabātu citur, norādiet ceļu pēc slēdža -o. Slēdzis -C - ļauj CURL atsākt lejupielādi. Jūs to apturētu, terminālī nospiežot Ctrl+C, un atsākt, vēlreiz palaižot to pašu lejupielādes komandu:

CURL parāda lejupielādes gaitu tabulā līdzīgā formātā ar slejām, kurās ir informācija par lejupielādes ātrumu, kopējo faila lielumu, pagājušo laiku un daudz ko citu. Ja jums tas nepatīk, varat izvēlēties vienkāršāku progresa joslu, komandai cURL pievienojot -# vai --progress -bar.

Lai vienlaikus lejupielādētu vairākus failus, vienkārši norādiet saites vienu pēc otras:

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

Izmantojot citus komandrindas rīkus, mēs varam lejupielādēt visus PNG un JPG attēlus no Tumblr emuāra:

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

Šajā gadījumā,

cut

un

grep

apkopot informāciju par failu nosaukumiem un formatēt tā, lai tiktu parādīti tikai faili ar noteiktiem paplašinājumiem. Ja komandu izpildāt bez pēdējās caurules:

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

jūs vienkārši saņemsit sarakstu ar failiem, kas atbilst mūsu kritērijiem, taču tie faktiski netiks lejupielādēti. cURL var iegūt attēlu sarakstu no dažādām lapām, ja emuārā tiek izmantota standarta lappušu lapa:

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

Diapazonu var mainīt, mainot skaitļus kvadrātiekavās. Atkal šī komanda uzskaitītu tikai attēlus; lai tos lejupielādētu, palaidiet pilnu komandu direktorijā, kurā vēlaties saglabāt attēlus:

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

Ja jūs labi pārzināt regulāras izteiksmes , jūs varat uzlabot šīs komandas izskatu un efektivitāti un kopīgot rezultātu komentāros.

3. Pārvaldiet failus FTP serverī

Mūsdienās par FTP daudz nedzirdam, bet tas nenozīmē, ka tas ir novecojis. Faktiski daudzi atvērtā pirmkoda projekti un Linux izplatījumi koplieto savu programmatūru FTP serveros. Tā kā CURL atbalsta FTP, varat to izmantot kā vienkāršu FTP klientu, lai augšupielādētu un lejupielādētu failus. Failus varat pārlūkot FTP serverī, piekļūstot direktorijiem:

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

Lai ievadītu apakšdirektoriju, ierakstiet tā nosaukumu un pēc tam slīpsvītru (/).

Failu lejupielāde ir līdzīga HTTP lejupielādēm, kas aprakstītas iepriekšējā sadaļā. Ja vēlaties apturēt lejupielādi, varat izmantot -o vai -O un pievienot -C.

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

Lai gan cURL neatbalsta rekursīvas lejupielādes (atcerieties, wget to dara!), Tas joprojām var lejupielādēt virkni failu vienlaikus. Vienīgais nosacījums ir tas, ka failu nosaukumi atbilst modelim. Piemēram, mēs varētu lejupielādēt no fona mitināšanas servera, kurā visas tapetes ir nosauktas kā “wallpaperNUMBER”:

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

Lai varētu lejupielādēt failus, dažiem FTP serveriem ir nepieciešama autentifikācija. cURL ļauj jums pieteikties, izmantojot opciju -u (lietotājs):

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

Varat arī augšupielādēt failus FTP serverī, izmantojot opciju -T (pārsūtīšana):

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

Šeit jūs varat arī definēt vairākus failus kā diapazonu. Šo funkciju dažkārt sauc par “globingu”. Ja failu nosaukumi neatbilst modelim, vienkārši uzskaitiet tos cirtainās iekavās (

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

). Un otrādi, ja tiem ir līdzīgi nosaukumi, izmantojiet to pašu loģiku no Tumblr lejupielādes piemēra un izmantojiet kvadrātiekavas (

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

). Noteikti norādiet pilnu ceļu uz failiem, ja tie nav jūsu pašreizējā direktorijā.

4. Pārbaudiet, vai vietne nedarbojas

Mēs visi esam tur bijuši. Vietne, kas jums absolūti nepieciešama, pēkšņi pārstāj darboties. Tad Facebook netiks ielādēts. Ko jūs darāt, saskaroties ar patiesu pirmās pasaules problēmu?

Varat to meklēt Google tīklā, lūgt draugam to pārbaudīt jūsu vietā vai izmantot kādu no tām vietnēm, kurās tiek rādīts atsevišķs pakalpojums, kas norāda, vai vietne nedarbojas. Vai arī jūs varat vienkārši aktivizēt termināli un palaist cURL:

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

Slēdzis I ar lielajiem burtiem (-I) pārbauda tīmekļa lapas HTTP galveni, un opcija -L (atrašanās vieta) tiek pievienota, lai cURL sekotu novirzīšanai. Tas nozīmē, ka jums nav jāievada pilns Facebook URL; vienkārši rakstiet facebook.com un cURL parūpēsies par pārējo, pateicoties -L. Ja ir novirzīšana, tie tiks parādīti ar savu HTTP statusu.

Ziņojums, kas mūs interesē, ir “200 OK”, kas nozīmē, ka ar vietni viss ir kārtībā. Ja tas tiešām ir samazinājies, jūs redzēsit kaut ko līdzīgu:

HTTP statusa kodi ir tikai informatīvi, cik to ļauj jūsu izpratne. Šī metode nav pilnīgi uzticama, jo vietne var atgriezt statusa kodu, kas norāda uz veiksmīgi apstrādātu pieprasījumu, tomēr, atverot to pārlūkprogrammā, tā būs tukša. Tomēr vairumā gadījumu tai jāatbilst reālajai situācijai un jāpaziņo, kas ir augšā vai lejā.

5. Izvērsiet saīsinātos URL

Saīsināti URL nav slikti. Bez tiem būtu grūti kopīgot saites Twitter un citos sociālajos tīklos ar ierobežotu raksturu. Daži URL saīsināšanas pakalpojumi piedāvā arī noderīgu analīzi. Bet vienmēr pastāv risks, ka kāds mēģina slēpt ļaunprātīgu saturu aiz saīsināta URL vai ka kāds trollis maskē Rickroll (vai kaut ko daudz, daudz sliktāku). Ja jums kādreiz rodas aizdomas par saīsinātu URL, kāda iemesla dēļ, cURL var palīdzēt to paplašināt un uzzināt, kur tieši tas novirza:

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

vai

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

CURL var apvienot ar

grep

vai

sed

; galvenā atšķirība ir formatējumā. Sed ir viens no tiem rīkiem, kas jāzina katram Linux lietotājam, un tas papildina cURL šajā un dažos citos lietošanas gadījumos. Neaizmirsīsim, ka CURL var lejupielādēt failus no saīsināta URL (ja URL faktiski norāda uz failu):

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

Sintakse ir tāda pati kā citu lejupielāžu gadījumā, un opcija -L rūpējas par novirzīšanu no saīsināta URL uz sākotnējo.

6. Parādiet savu atzinību par ASCII Art

Jāatzīst, ka tas nav īpaši noderīgi, taču izskatās forši. Ar palīdzību

pv

, utilīta datu progresa uzraudzībai, cURL terminālī var parādīt ASCII animācijas.

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

Opcijas -s un -q saglabā abas komandas klusā (klusā) režīmā. Opcija -L šeit attiecas uz komandu pv un ļauj mainīt datu pārsūtīšanas ātrumu baitos sekundē. Citiem vārdiem sakot, ja animācija pārvietojas pārāk ātri vai pārāk lēni, mēģiniet spēlēt ar šo numuru. Papildus animācijām, CURL var parādīt vienkāršu, statisku ASCII mākslu:

Tīmeklī ir daudz vietņu ar visu veidu ASCII mākslu: no pārsteidzoši detalizētiem, augstas kvalitātes gabaliem līdz dīvainiem, muļķīgiem un pat NSFW materiāliem. Šī digitālās mākslas tehnika aizsākās pagājušā gadsimta 60. gados, un mūsdienās tā ir daļa no interneta kultūras un vēstures, kas tiek uzturēta dzīvā daudzās kolekcijās un rīkos. konvertēt tekstu un attēlus uz ASCII mākslu . Jūs varat to izmantot, lai dekorētu savu termināli vai izjokotu savus draugus - neatkarīgi no tā, kas peld ar jūsu laivu.

7. Eksperimentējiet ar sociālajiem medijiem

Sociālo mediju izmantošana no termināļa nav nekas jauns-mēs jau esam parādījuši komandrindas Twitter klientus Linux. Lai gan jūs, iespējams, nepārslēgsities uz CURL kā savu tiešsaistes socializācijas rīku, ir labi zināt, ka varat ar to publicēt Facebook, kā aprakstīts šeit. Jūs ievērosiet, ka tehniski CURL to nedara atsevišķi; instrumentu kombinācija ļauj paveikt darbu.

Kas attiecas uz Twitter, agrāk to bija iespējams pārvaldīt tieši no termināļa, izmantojot cURL. Tad Twitter mainīja savu API, un tagad Twitter ir īpašs cURL klients ar nosaukumu Twurl. Tas nav vieglākais lietošanā, it īpaši iesācējam, un tam nepieciešama autentifikācija ar Twitter reklāmu platformu. Tam ir jēga, ja esat izstrādātājs vai pieredzējis lietotājs, bet ne tik ļoti, ja vēlaties tikai čivināt no komandrindas. Tomēr ir veidi, kā izklaidēties ar Twitter. Varat izmantot cURL, lai pārbaudītu lietotāja sekotāju skaitu.

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

8. Atrodiet savu ārējo IP adresi

Vietējās IP adreses atrašana ir pietiekami vienkārša - vienkārši palaidiet

kā samazināt ekrāna spilgtumu logos 10
ifconfig

vai apmeklējiet tīkla pārvaldības sīklietotni. Lai iegūtu ārējo IP, lielākā daļa cilvēku izmanto specializētas vietnes, lai iegūtu šo informāciju. Tomēr dažas lietas ir vieglāk izdarīt no termināļa, un šī varētu būt viena no tām. Jūs varat arī izveidot aizstājvārdu komandai cURL. Ir vairāki tiešsaistes pakalpojumi, kas sadarbojas ar cURL:

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

Daži var jums pastāstīt vairāk par jebkuru ārējo IP adresi:

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

Viss, kas jums jādara, ir izvēlēties pakalpojumu. Ja neesat izlēmīgs, vienkārši iekļaujiet tos visus savā aizstājvārdā kā rezerves risinājumus.

9. Ielīmējiet tekstu un kopīgojiet attēlus

Darbplūsmas pārtraukšana nekad nenāk par labu produktivitātei un mērķtiecībai. Ja lielāko daļu darba veicat terminālī, pāreja uz pārlūkprogrammu, lai koplietotu dažus failus, var būt nepraktiska, ja ne kaitinoša. Par laimi, daži pastebin un failu koplietošanas pakalpojumi ir radīti darbam ar cURL, lai jūs varētu tos izmantot tieši no termināļa bez lietotāja konta.

Klins un Sprunge.us ir līdzīga sintakse. Izmantojot Clbin, jūs pievienojat vietējo failu vai komandas izvadi, un tas atgriež saiti uz jūsu augšupielādēto tekstu:

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

Tā atbalsta arī attēlu augšupielādi (PNG, JPG un GIF):

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

Ja tā vietā vēlaties izmantot Sprunge.us, ierakstiet:

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

Sprunge.us pagaidām neatbalsta attēlu augšupielādi.

Ix.io ir balstīts uz to pašu principu kā divi iepriekšējie pakalpojumi ar dažām papildu funkcijām. Lai augšupielādētu failu, ierakstiet:

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

vai

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

Saņemot saiti uz augšupielādēto tekstu, varat modificēt tā URL, lai parādītu sintakses izcelšanu (ar

ix.io/yourpaste+

,

ix.io/yourpaste/

, vai

ix.io/yourpaste/language

konkrētai skriptu vai programmēšanas valodai). Ir arī iespējams ierobežot, cik reizes saiti var apskatīt, mainot numuru aiz

'read:1'

vērtība:

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

Ix.io galvenokārt ir paredzēts teksta failiem, piemēram, avota kodam vai sistēmas žurnāliem. Ja vēlaties augšupielādēt dažādus failu formātus, izmantojiet Transfer.sh . Tas atbalsta attēlus, failu šifrēšanu un saglabā jūsu failus tiešsaistē divas nedēļas. Vietnē Transfer.sh varat augšupielādēt līdz 5 GB datu. Lūk, kā:

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

Jūs varat brīvi noteikt augšupielādētā faila nosaukumu. Lai augšupielādētu vairākus failus, uzskaitiet tos vienu pēc otra, izmantojot opciju -F:

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

10. Pārbaudiet GMail nelasīto pastu

Ja vēlaties iedziļināties e-pasta protokolu (SMTP, POP, IMAP) detaļās, cURL var ievērojami atbloķēt. Lai ātri pārbaudītu e -pastu, šī komanda būs piemērota. Tas parsē jūsu GMail plūsmu un formatē izvadi (e -pasta tēmu un sūtītāju) ar

tr

,

awk

,

sed

un/vai

grep

komandas. Ņemiet vērā, ka šis risinājums ir ārkārtīgi nedrošs, jo tas atklāj jūsu pieteikšanās akreditācijas datus ikvienam, kam ir piekļuve jūsu terminālim. Pirmajā versijā ir redzams sūtītāja vārds, bet otrajā tiek drukāti tikai nelasīti e -pasta temati:


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'

Ko vēl var darīt CURL?

cURL reti tiek izmantots kā atsevišķa komanda. Lielākā daļa cilvēku to izmanto kā daļu no skripta vai lietojumprogrammas. Tomēr, kā mēs šeit parādījām, ir iespējams izveidot praktiskus vienas oderes ar cURL. Daudzi no šiem piemēriem tika pielāgoti no CommandLineFu, kas ir fantastisks gudru komandrindas uzlaušanas avots, un jums nevajadzētu tos uzskatīt par akmenī ieskautiem.

Ar pietiekamām zināšanām un pieredzi mēs varam modificēt katru komandu, formatēt to citādi vai pilnībā aizstāt ar labāku risinājumu. Vai varat uzlabot mūsu ieteiktās CURL komandas? Vai jūs zināt kādus citus atdzist cURL lietojumus? Kopīgojiet savus padomus komentāros.

Attēlu kredīti: Ievads komandrindā autors Osama Khalid, izmantojot Flickr.

Kopīgot Kopīgot Čivināt E -pasts Dzēsiet šos Windows failus un mapes, lai atbrīvotu vietu diskā

Vai jums ir jāatbrīvo vieta diskā Windows datorā? Šeit ir Windows faili un mapes, ko var droši izdzēst, lai atbrīvotu vietu diskā.

Lasīt Tālāk
Saistītās tēmas
  • Linux
  • FTP
  • Lejupielādes pārvaldība
  • Terminālis
Par autoru Ivana Isadora Devčiča(Publicēti 24 raksti)

Ivana Isadora ir ārštata rakstniece un tulkotāja, Linux mīļotāja un KDE fangirl. Viņa atbalsta un popularizē bezmaksas un atvērtā pirmkoda programmatūru, un viņa vienmēr meklē jaunas, novatoriskas lietotnes. Uzziniet, kā sazināties šeit .

Vairāk no Ivana Isadora Devcic

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu