20 Ocak 2021 Çarşamba

Curl komutunun kullanımı için 15 Basit öneri (Linux)


 

Linux Curl Komutu Nedir?

Curl komutu bugün Linux'un en güzide komutlarından biri ancak geçmişi 1990 yılının ortalarına kadar gidiyor. Esasında İsveçli bir programcının (Daniel Stenberg) projesi olarak dünyaya gelmiş. Amacı ise periyodik olarak bir web sayfasından döviz kurlarını indirmek ve IRC kullanıcılarına ABD doları cinsinden İsveç Kronu eşdeğerlerini sağlamakmış.

Sonuçta bu projeye farklı özellikler eklenmiş ve son derece başarılı hale gelmiş. 

tecmint.com'da sağolsun 15 curl komutunu derlemiş ve yazmış.

Ben de hem öğrenmek hem de Türkçe okumak isteyenler için aşağıya derledim.

1. curl Version bilgisini almak

-V ya da --version opsionları yalnız versiyon bilgisini vermekle kalmıyor aynı zamanda mevcut versiyon ile desteklenen protokol ve özellikleri de gösteriyor.

2. Dosya indirmek

Curl dosya indirmek için de kullanılabilir. -O seçeneği ile kullanıldığında dosyayı geçerli çalışma dizinine uzak konumdakiyle aynı adla kaydederken, -o kullanılırsa farklı bir dosya adı ve / veya konum belirlenmesine izin verir.

3. Yarıda kesilen bir indirme işlemine devam etmek

Bir indirme herhangi bir nedenle kesildiyse (örneğin, Ctrl + c ile kesildiyse), curl sayesinde kolayca devam ettirilebilir. 

-C - (C'den sonra boşluk ve sonra tekrar tire) kullanımı curl'e "indirmeye kaldığı yerden başla" der.

4. Birden fazla dosya indirmek 

Aşağıdaki komutla, sırasıyla http://yoursite.com ve http://mysite.com'dan info.html ve about.html'yi tek seferde indirebilirsiniz.

$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html

5. Bir dosyadan URL indirme

Curl xargs ile birleştirildiğinde dosyaları bir dosyadaki URL listesinden indirmek mümkün oluyor.

Xargs nedir? Xargs standart girdiden veri akışlarını okuyan, ardından komut satırları oluşturan ve çalıştıran bir komuttur. Bir komutun çıktısını alabilir ve onu başka bir komutun argümanı olarak iletebilir. Komut belirtilmezse, xargs varsayılan olarak echo'yu çalıştırır.

Peki curl ile birlikte kullanımı nasıl? Aşağıdaki gibi:

$ xargs -n 1 curl -O < listurls.txt

6. Kimlik Doğrulaması (Authentication) olan veya olmayan bir Proxy kullanmak

proxy.alanadiniz.com adresinde 8080 numaralı bağlantı noktasını dinleyen bir proxy sunucusunun arkasındaysanız;

$ curl -x proxy.alanadiniz.com:8080 -U user:password -O http://alanadiniz.com/dosyaniz.tar.gz

Proxy'niz kimlik doğrulaması gerektirmiyorsa -U user:password kısmını atlayabilirsiniz.

7. HTTP Üstbilgilerini Sorgulama

HTTP üstbilgileri (Headers), uzak web sunucusunun gerçek istekle birlikte kendisi hakkında ek bilgi göndermesine izin verir. 
 
Bir web sitesindeki HTTP başlıklarını sorgulamak için aşağıdaki komut kullanılabilir:
$ curl -I www.sparta.com.tr

8. Parametrelerle bir POST isteğinde bulunma

Aşağıdaki komut, firstName ve lastName parametrelerini ve bunlara karşılık gelen değerleri https://alanadi.com/info.php adresine gönderecektir.

$ curl --data "firstName=Sinem&lastName=Basaran" https://alanadi.com/info.php
 
Normal bir HTML formunun davranışını simüle etmek için bu komut kullanılabilir.

9.  FTP Sunucusundan kimlik doğrulama olmadan dosya indirme (Download)

Uzak bir FTP sunucusu ftp: // herhangibirftpserver adresinde bağlantı bekliyorsa, aşağıdaki komut dosya.tar.gz dosyanızı geçerli çalışma dizinine indirecektir.

$ curl -u username:password -O ftp://herhangibirftpserver/dosyaadi.tar.gz

10. FTP Sunucusuna kimlik doğrulama olmadan dosya yükleme (Upload)

yereldosya.tar.gz adlı yerel bir dosyayı curl kullanarak ftp: // herhangibirftpserver'a yüklemek için:

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. User Agent belirtme

User Agent, HTTP isteği ile birlikte gönderilen bilgilerin bir parçasıdır ve istemcinin istekte bulunmak için hangi tarayıcıyı kullandığını gösterir. 
 
Mevcut curl sürümünün varsayılan olarak ne kullandığını görmek ve daha sonra bunu "Ben yeni bir web tarayıcısıyım" olarak değiştirmek için aşağıdaki komut kullanılabilir:
 
$ curl -I http://localhost --user-agent "Ben yeni bir web tarayıcısıyım"

12. Web sayfası çerezlerini depolama

https://www.hurriyet.com.tr adresine göz attığınızda bilgisayarınıza hangi çerezlerin indirildiğini görmek ve bunları hurriyet.txt dosyasına kaydetmek için aşağıdaki komut kullanılabilir:

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

(Daha sonra dosyayı görüntülemek için cat hurriyet.txt komutu kullanılabilir.)

13. Web sayfası çerezlerini gönderme

12. maddede yer alan komut ile alınan çerezler, aynı siteye sonraki için talepler kullanılabilir:
 
$ curl --cookie hurriyet.txt https://www.hurriyet.com.tr

14. Name Resolution değiştirme

Bir web geliştiriciyseniz ve alaniniz.com'un yerel bir sürümünü yayınlamadan önce test etmek istiyorsanız, curl'ün http://www.alanınız.com'u yerel ana makinenize şu şekilde çözümlemesini sağlayabilirsiniz:
 
$ curl --resolve www.alanınız.com:80:localhost http://www.alanınız.com/  

Bu komutun kullanılması, http://www.alanınız.com sorgusu curl'e siteyi DNS veya /etc/hosts dosyası kullanmak yerine localhost'tan istemesini söyler.

15. İndirme hızını sınırlandırma

Curl'ün bant genişliğine zarar vermesini önlemek için indirme hızı aşağıdaki gibi 100 KB / s ile sınırlandırılabilir.

$ curl --limit-rate 100K http://alanınız.com/dosyanız.tar.gz -O

Hiç yorum yok:

Yorum Gönder

John the Ripper ile Şifre Kırmak

  JOHN THE RIPPER ARACIYLA ŞİFRE KIRMAK  John The Ripper, açık kaynak ve ücretsiz bir şifre kırma aracı. Her ne kadar Unix için çıkmış ols...