cURLy Alın: cURL ile Yapabileceğiniz 10 Faydalı Şey

cURLy Alın: cURL ile Yapabileceğiniz 10 Faydalı Şey

Komut satırı araçlarını öğrenmeye başladığımızda, onları tek amaçlı görme eğilimindeyiz. sana öğretildi





cat

dosya içeriğini yazdırır,





ls

bir dizindeki tüm öğeleri listeler ve





du

disk alanı kullanımını gösterir. Bununla birlikte, birçok komut satırı aracının düzinelerce seçeneği vardır ve bunların hepsi kendi sayfalarında düzgün bir şekilde açıklanmıştır.

man

Dosyalar. Bazıları diğer komutlarla birleştirildiğinde harikalar yaratabilir.



Elbette herkesin her seçeneği hatırlamasını beklemek mantıksız. Bunu akılda tutarak, zaman zaman bilgilerimizi yenilemek iyidir. Linux komutları bilgisi , çünkü onlar için yeni kullanımlar keşfedebilirsiniz.

Bu sefer odaklanıyoruz cURL , HTTP(S), FTP, Telnet, LDAP, IMAP, POP3, SMTP ve daha fazlası gibi bir dizi İnternet protokolü aracılığıyla veri aktarımı için bir araç.





Basitleştirilmiş terimlerle, cURL, bir istemciden bir sunucuya çeşitli istekleri gerçekleştirir ve belirli bir protokol ve bununla ilişkili yöntemler aracılığıyla aralarında bağlantı kurar. Örneğin, bir HTTP istemcisi olarak cURL, içeriği görüntülemek veya indirmek (GET istek yöntemi) veya bir web sitesindeki bir form aracılığıyla içerik göndermek (POST istek yöntemi) için bir istek gönderebilir. Birçok web uygulaması ve hizmeti, cURL'nin API'leri (Uygulama Programlama Arayüzü) ile etkileşime girmesine izin verir.

İşlevleri bir dereceye kadar örtüştüğü için cURL ve wget genellikle birbirleriyle karşılaştırılır. Her iki araç da İnternet'ten içerik indirebilir, ancak wget özyinelemeli indirmeleri, web kazımayı destekler ve genellikle kullanımı daha basit gelir. Yalnızca terminalden dosya indirmek istiyorsanız, wget muhtemelen daha iyi bir seçimdir.





Öte yandan, gelişmiş HTTP kimlik doğrulama yöntemlerine ihtiyacınız varsa ve dosya yüklemek ve indirmek istiyorsanız, cURL'yi öğrenmeye değer. Ayrıca wget yalnızca HTTP(S) ve FTP'yi desteklerken cURL çok çeşitli protokolleri kapsar. Bu, cURL'nin daha havalı şeyler yapabileceği anlamına gelir ve işte bunu kanıtlamak için on örnek.

1. Hava Durumu Raporunu Alın

Biri size terminalden hava durumunu kontrol etmenizi söyleseydi, bazı sıkıcı rakamlar görmeyi beklerdiniz. Bu komutla değil.

curl http://wttr.in/LOCATION

Bilgiler, adlı bir CLI uygulaması tarafından sağlanır. Biz gideriz , ancak yüklemek istemiyorsanız, cURL tahmini web ön ucundan wttr.in alabilir. İhtiyacı olan tek şey, tahminini istediğiniz konumdur. Bir şehrin adını, havaalanı kodunu veya mevcut IP adresinizi yazmanız yeterlidir. Yeni bir özellik, aşağıdakileri yazarsanız ayın evreleriyle ilgili bilgileri gösterir:

curl wttr.in/Moon

2. Dosyaları İndirin ve İndirmelere Devam Edin

Dosyaları indirmek genellikle tarayıcıda yaptığımız bir şeydir. Bazen bir indirme yöneticisi kullanmak isteyeceksiniz; örneğin, aynı anda birkaç dosya indirirken veya indirmeleri duraklatmak istediğinizde. cURL, eşzamanlı indirmeler için popüler bir seçim olmasa da (bunun yerine wget önerilir), güçlü seçeneklerini (anahtarlar) birleştirerek onu yine de bu amaç için kullanabilirsiniz. İlk önce dosyaya doğrudan bir bağlantıya ihtiyacınız olacak. Bu örnekte, Linux Voice dergisinin bir PDF'sini kullanacağız.

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

Büyük harf O anahtarı (-O), cURL'nin dosyayı varsayılan dosya adıyla (genellikle bağlantının kendisinden gelen) kaydetmesini sağlar. Farklı bir adla kaydetmek isterseniz, küçük o harfini ve ardından yeni adı kullanırsınız:

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

Varsayılan olarak, dosyalar geçerli dizine kaydedilir (

pwd

emretmek). Bunları başka bir yere kaydetmek için -o anahtarından sonraki yolu belirtin. -C - anahtarı, cURL'nin indirmeye devam etmesini sağlar. Terminalde Ctrl+C tuşlarına basarak duraklatabilir ve aynı indirme komutunu tekrar çalıştırarak devam edebilirsiniz:

cURL, indirme hızını, toplam dosya boyutunu, geçen süreyi ve daha fazlasını içeren sütunlarla birlikte indirme ilerlemesini tablo benzeri bir biçimde görüntüler. Bundan hoşlanmıyorsanız, cURL komutunuza -# veya --progress-bar ekleyerek daha basit bir ilerleme çubuğu seçebilirsiniz.

Aynı anda birden fazla dosya indirmek için bağlantıları arka arkaya listelemeniz yeterlidir:

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

Diğer komut satırı araçlarının yardımıyla, bir Tumblr blogundan tüm PNG ve JPG resimlerini toplu olarak indirebiliriz:

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

Bu durumda,

cut

ve

grep

dosya adları hakkında bilgi toplayın ve yalnızca belirtilen uzantılara sahip dosyalar görüntülenecek şekilde biçimlendirin. Komutu son boru olmadan çalıştırırsanız:

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

sadece kriterlerimizi karşılayan dosyaların bir listesini alacaksınız, ancak aslında indirilmeyecekler. cURL, blogun standart sayfalandırma kullanması koşuluyla, çeşitli sayfalardan resimlerin bir listesini alabilir:

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

Köşeli parantez içindeki sayıları değiştirerek aralığı değiştirebilirsiniz. Yine, bu komut yalnızca görüntüleri listeler; bunları indirmek için, görüntüleri kaydetmek istediğiniz dizinde tam komutu çalıştırın:

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

Eğer iyi bilgili iseniz düzenli ifadeler , bu komutun görünüşünü ve verimliliğini iyileştirebilir ve sonucu yorumlarda paylaşabilirsiniz.

3. Bir FTP Sunucusundaki Dosyaları Yönetin

Bugünlerde FTP hakkında pek bir şey duymuyoruz, ancak bu eski olduğu anlamına gelmiyor. Aslında, birçok açık kaynak projesi ve Linux dağıtımı, yazılımlarını FTP sunucularında paylaşır. FTP, cURL tarafından desteklendiğinden, dosya yüklemek ve indirmek için basit bir FTP istemcisi olarak kullanabilirsiniz. Dizinlere erişerek bir FTP sunucusundaki dosyalara göz atabilirsiniz:

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

Bir alt dizine girmek için adını ve ardından bir eğik çizgi (/) yazın.

Dosyaları indirmek, önceki bölümde açıklanan HTTP indirmelerine benzer. İndirmeleri duraklatmak istiyorsanız -o veya -O kullanabilir ve -C - ekleyebilirsiniz.

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

cURL özyinelemeli indirmeleri desteklemese de (unutmayın, wget yapar!), yine de aynı anda bir dizi dosyayı indirebilir. Tek koşul, dosya adlarının bir kalıp izlemesidir. Örneğin, duvar kağıtlarının hepsinin 'duvar kağıdıNUMARA' olarak adlandırıldığı bir duvar kağıdı barındırma sunucusundan indirebiliriz:

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

Bazı FTP sunucuları, dosyaları indirebilmeniz için kimlik doğrulama gerektirir. cURL, -u (kullanıcı) seçeneğiyle oturum açmanıza izin verir:

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

-T (aktarım) seçeneğiyle dosyaları bir FTP sunucusuna da yükleyebilirsiniz:

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

Burada ayrıca birden çok dosyayı bir aralık olarak tanımlayabilirsiniz. Bu özelliğe bazen 'globbing' denir. Dosya adları bir kalıp izlemiyorsa, bunları küme parantezleri içinde listeleyin (

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

). Tersine, adları benzerse, Tumblr indirme örneğindeki aynı mantığı uygulayın ve köşeli parantez kullanın (

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

). Geçerli dizininizde değilse, dosyaların tam yolunu sağladığınızdan emin olun.

4. Bir Web Sitesinin Kapalı Olup Olmadığını Kontrol Edin

Hepimiz oradaydık. Kesinlikle ihtiyacınız olan bir web sitesi aniden çalışmayı durdurur. O zaman Facebook yüklenmeyecek. Gerçek bir birinci dünya sorunuyla karşı karşıya kaldınız, ne yaparsınız?

Google'da bulabilir, bir arkadaşınızdan sizin için test etmesini isteyebilir veya bir web sitesinin kapalı olup olmadığını size söyleyen tek hizmetli sitelerden birini kullanabilirsiniz. Veya terminali ateşleyebilir ve cURL'yi çalıştırabilirsiniz:

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

Büyük harf I anahtarı (-I) bir web sayfasının HTTP başlığını kontrol eder ve cURL'nin yönlendirmeleri takip etmesini sağlamak için -L (konum) seçeneği eklenir. Bu, tam Facebook URL'sini yazmanız gerekmediği anlamına gelir; sadece yaz facebook.com ve cURL -L sayesinde gerisini halleder. Herhangi bir yönlendirme varsa, bunlar kendi HTTP durumlarıyla görüntülenecektir.

İlgilendiğimiz mesaj '200 OK', yani web sitesinde her şey yolunda. Gerçekten kapalıysa, şöyle bir şey göreceksiniz:

HTTP durum kodları, yalnızca onları anlamanızın izin verdiği ölçüde bilgilendiricidir. Bu yöntem tamamen güvenilir değildir, çünkü bir web sitesi başarıyla işlenmiş bir isteği belirten bir durum kodu döndürebilir, ancak tarayıcıda açtığınızda bu boş olacaktır. Yine de, çoğu durumda gerçek duruma karşılık gelmeli ve neyin yukarı veya aşağı olduğunu size bildirmelidir.

5. Kısaltılmış URL'leri Genişletin

Kısaltılmış URL'ler doğal olarak kötü değildir. Onlar olmadan, Twitter ve diğer karakter sınırlı sosyal ağlarda bağlantı paylaşmak zor olurdu. Bazı URL kısaltma hizmetleri de faydalı analizler sunar. Ancak, birisinin kötü amaçlı içeriği kısaltılmış bir URL'nin arkasına saklamaya çalışması veya bir trolün bir Rickroll'u (veya çok, çok daha kötü bir şeyi) maskeleme riski her zaman vardır. Herhangi bir nedenle kısaltılmış bir URL'den şüphelenirseniz, cURL onu genişletmenize ve tam olarak nereye götürdüğünü öğrenmenize yardımcı olabilir:

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

veya

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

cURL ile birleştirebilirsiniz

grep

veya

sed

; temel fark biçimlendirmededir. Sed, her Linux kullanıcısının bilmesi gereken araçlardan biridir ve bu ve diğer birkaç kullanım durumunda cURL'yi tamamlar. cURL'nin kısaltılmış bir URL'den dosya indirebileceğini unutmayalım (URL'nin aslında bir dosyaya işaret etmesi şartıyla):

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

Sözdizimi, diğer cURL indirmeleriyle aynıdır ve -L seçeneği, kısaltılmış bir URL'den orijinal URL'ye yeniden yönlendirmeyi halleder.

6. ASCII Sanatına Takdirinizi Gösterin

Kuşkusuz, bu özellikle kullanışlı değil, ama harika görünüyor. Yardımıyla

pv

, veri ilerlemesini izlemek için bir yardımcı program olan cURL, terminalde ASCII animasyonlarını görüntüleyebilir.

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

-s ve -q seçenekleri her iki komutu da sessiz (sessiz) modda tutar. Buradaki -L seçeneği, pv komutuna atıfta bulunur ve saniyedeki bayt cinsinden veri aktarım hızını değiştirmenizi sağlar. Başka bir deyişle, animasyon çok hızlı veya çok yavaş hareket ediyorsa, o numarayla oynamayı deneyin. Animasyonların yanı sıra cURL, düz, statik ASCII resmini görüntüleyebilir:

Web'de her türden ASCII sanatına sahip birçok web sitesi vardır: şaşırtıcı derecede ayrıntılı, yüksek kaliteli parçalardan tuhaf, saçma ve hatta NSFW malzemelerine kadar. Bu dijital sanat tekniği 1960'lara kadar uzanıyor ve bugün İnternet kültürünün ve tarihinin bir parçası, sayısız koleksiyon ve araçta canlı tutuluyor. metin ve görüntüleri ASCII sanatına dönüştürün . Terminalinizi süslemek veya arkadaşlarınıza şaka yapmak için kullanabilirsiniz - teknenizde ne yüzüyorsa.

7. Sosyal Medya ile Deney Yapın

Terminalden sosyal medyayı kullanmak yeni bir şey değil -- size Linux için komut satırı Twitter istemcilerini zaten gösterdik . Muhtemelen çevrimiçi sosyalleşme aracınız olarak cURL'ye geçmeyeceksiniz, ancak burada açıklandığı gibi onunla Facebook'ta paylaşımda bulunabileceğinizi bilmek güzel. Teknik olarak cURL'nin bunu kendi başına yapmadığını fark edeceksiniz; araçların bir kombinasyonu işi halleder.

Twitter'a gelince, onu doğrudan terminalden cURL ile yönetmek mümkündü. Sonra Twitter API'sini değiştirdi ve şimdi Twitter için Twurl adında özel bir cURL istemcisi var. Özellikle yeni başlayanlar için kullanımı en kolay şey değildir ve Twitter Reklam Platformu ile kimlik doğrulaması gerektirir. Bu, bir geliştirici veya ileri düzey bir kullanıcıysanız anlamlıdır, ancak yalnızca komut satırından tweet atmak istiyorsanız o kadar da değil. Yine de Twitter ile eğlenmenin yolları var. Bir kullanıcının takipçi sayısını kontrol etmek için cURL'yi kullanabilirsiniz:

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

8. Harici IP Adresinizi Bulun

Yerel IP adresinizi bulmak yeterince kolaydır - sadece çalıştırın

youtube videolarını indirmek yasa dışı mı
ifconfig

veya Ağ Yönetimi uygulamanıza danışın. Harici IP için çoğu kişi bu bilgiyi elde etmek için özel web siteleri kullanır. Yine de, bazı şeyleri terminalden yapmak daha kolaydır ve bu onlardan biri olabilir. cURL komutu için bir takma ad da oluşturabilirsiniz. cURL ile işbirliği yapan birkaç çevrimiçi hizmet vardır:

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

Bazıları size herhangi bir harici IP adresi hakkında daha fazla bilgi verebilir:

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

Tek yapmanız gereken bir hizmet seçmek. Kararsızsanız, hepsini yedek çözümler olarak takma adınıza dahil edin.

9. Metni Yapıştırın ve Görüntüleri Paylaşın

İş akışınızı bozmak, üretkenlik ve odaklanma için asla iyi değildir. İşinizin çoğunu terminalde yapıyorsanız, sadece birkaç dosya paylaşmak için bir tarayıcıya geçmek can sıkıcı olmasa da pratik olmayabilir. Neyse ki, bazı pastebin ve dosya paylaşım hizmetleri cURL ile çalışmak üzere doğmuştur, bu yüzden bunları bir kullanıcı hesabı olmadan doğrudan terminalden kullanabilirsiniz.

klüp ve Sprunge.tr benzer sözdizimine sahiptir. Clbin ile yerel bir dosyayı veya bir komutun çıktısını aktarırsınız ve yüklediğiniz metne bir bağlantı döndürür:

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

Ayrıca resim yüklemelerini de destekler (PNG, JPG ve GIF):

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

Bunun yerine Sprunge.us'u kullanmak istiyorsanız şunu yazın:

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

Sprunge.us şimdilik resim yüklemelerini desteklemiyor.

Ix.io birkaç ekstra özellik ile önceki iki hizmetle aynı prensibe dayanmaktadır. Bir dosya yüklemek için şunu yazın:

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

veya

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

Yüklenen metne bir bağlantı aldığınızda, sözdizimi vurgulamasını göstermek için URL'sini değiştirebilirsiniz (ile

ix.io/yourpaste+

,

ix.io/yourpaste/

, veya

ix.io/yourpaste/language

belirli bir komut dosyası veya programlama dili için). Bir bağlantının kaç kez görüntülenebileceğini, bağlantıdan sonraki sayıyı değiştirerek sınırlamak da mümkündür.

'read:1'

değer:

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

Ix.io, öncelikle kaynak kodu veya sistem günlükleri gibi metin tabanlı dosyalar için tasarlanmıştır. Çeşitli dosya biçimleri yüklemek istiyorsanız, şunu kullanın: transfer.sh . Görüntüleri, dosya şifrelemeyi destekler ve dosyalarınızı iki hafta boyunca çevrimiçi tutar. Transfer.sh'a 5 GB'a kadar veri yükleyebilirsiniz. İşte nasıl:

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

Yüklenen dosyanın adını tanımlamakta özgürsünüz. Birden fazla dosya yüklemek için, -F seçeneğiyle bunları arka arkaya listeleyin:

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

10. GMail'de Okunmamış Postaları Kontrol Edin

E-postayla ilgili protokollerin (SMTP, POP, IMAP) ayrıntılarını araştırmaya istekliyseniz, cURL'de açılmak için büyük bir potansiyel vardır. Hızlı bir e-posta kontrolü için bu komut yeterli olacaktır. GMail beslemenizi ayrıştırır ve çıktıyı (e-posta konusu ve gönderen) biçimlendirir.

tr

,

awk

,

sed

ve/veya

grep

komutlar. Bu çözümün son derece güvensiz olduğunu unutmayın çünkü oturum açma kimlik bilgilerinizi terminalinize erişimi olan herkese ifşa eder. İlk sürüm gönderenin adını gösterirken, ikincisi yalnızca okunmamış e-posta konularını yazdırır:


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'

cURL Başka Ne Yapabilir?

cURL nadiren bağımsız bir komut olarak kullanılır. Çoğu kişi bunu bir komut dosyasının veya uygulamanın parçası olarak kullanır. Yine de, burada gösterdiğimiz gibi cURL ile pratik tek gömlekler oluşturmak mümkündür. Bu örneklerin çoğu, harika bir akıllı komut satırı hack kaynağı olan CommandLineFu'dan uyarlanmıştır ve bunları kesin olarak düşünmemelisiniz.

Yeterli bilgi ve deneyimle her komutu değiştirebilir, farklı biçimlendirebilir veya tamamen daha iyi bir çözümle değiştirebiliriz. Önerilen cURL komutlarımızı iyileştirebilir misiniz? cURL için başka harika kullanımlar biliyor musunuz? İpuçlarınızı yorumlarda paylaşın.

Resim Kredisi: Komut Satırına Giriş İçinde Flickr aracılığıyla Usame Khalid tarafından.

Paylaş Paylaş Cıvıldamak E-posta Disk Alanını Boşaltmak için Bu Windows Dosyalarını ve Klasörlerini Silin

Windows bilgisayarınızdaki disk alanını temizlemeniz mi gerekiyor? İşte disk alanını boşaltmak için güvenle silinebilecek Windows dosya ve klasörleri.

Sonrakini Oku
İlgili konular
  • Linux
  • FTP
  • İndirme Yönetimi
  • terminal
Yazar hakkında Ivana Isadora Devcic(24 Makale Yayınlandı)

Ivana Isadora, serbest yazar ve çevirmen, Linux aşığı ve KDE hayranıdır. Ücretsiz ve açık kaynaklı yazılımları destekliyor ve tanıtıyor ve her zaman yeni, yenilikçi uygulamalar arıyor. Nasıl iletişime geçeceğinizi öğrenin Burada .

Ivana Isadora Devcic'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın