Linux'ta 'Curl' Komutunun Nasıl Kullanılacağına İlişkin 15 İpucu


1990'ların ortasında, İnternet henüz emekleme aşamasındayken, Daniel Stenberg adlı İsveçli bir programcı, sonunda bugün curl olarak bildiğimiz şeye dönüşen bir proje başlattı.

Başlangıçta, bir web sayfasından döviz kurlarını periyodik olarak indirecek ve IRC kullanıcılarına ABD doları cinsinden İsveç Kronu eşdeğerlerini sağlayacak bir bot geliştirmeyi hedefledi.

Uzun lafın kısası, proje büyüdü ve yol boyunca çeşitli protokoller ve özellikler eklendi; gerisi tarih oldu. Şimdi her iki ayağımızı da kullanarak dalalım ve Linux'ta verileri ve daha fazlasını aktarmak için curl'un nasıl kullanılacağını öğrenelim!

Aşağıdaki 15 curl komutundan oluşan listeyi sizin için bir araya getirdik.

1. Kıvrılma Sürümünü Görüntüle

-V veya --version seçenekleri yalnızca sürümü değil aynı zamanda geçerli sürümünüzde desteklenen protokolleri ve özellikleri de döndürür.

curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. Bir Dosya İndirin

Dosya indirmek istiyorsanız curl'u -O veya -o seçenekleriyle birlikte kullanabilirsiniz. İlki, dosyayı geçerli çalışma dizinine uzak konumdakiyle aynı adla kaydederken, ikincisi farklı bir dosya adı ve/veya konum belirtmenize olanak tanır.

curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. Kesintiye Uğrayan İndirmeyi Devam Ettirin

İndirme işlemi herhangi bir nedenle kesintiye uğradıysa (örneğin, Ctrl + c kullanarak), çok kolay bir şekilde devam ettirebilirsiniz. -C – (çizgi C, boşluk çizgisi) kullanımı curl'a indirme işlemine kaldığı yerden devam etmesini söyler.

curl -C - -O http://yourdomain.com/yourfile.tar.gz

4. Birden Fazla Dosya İndirin

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

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

5. URL'leri Dosyadan İndirin

curl'u xargs ile birleştirirseniz, bir dosyadaki URL listesinden dosyaları indirebilirsiniz.

xargs -n 1 curl -O < listurls.txt

6. Kimlik Doğrulamalı veya Kimlik Doğrulamasız Proxy Kullanın

proxy.alanadiniz.com adresindeki 8080 bağlantı noktasını dinleyen bir proxy sunucusunun arkasındaysanız bunu yapın.

curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

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

7. HTTP Başlıklarını Sorgulayın

HTTP başlıkları uzak web sunucusunun gerçek istekle birlikte kendisi hakkında ek bilgiler göndermesine olanak tanır. Bu, müşteriye isteğin nasıl ele alındığına ilişkin ayrıntılar sağlar.

Bir web sitesinden HTTP başlıklarını sorgulamak için şunları yapın:

curl -I linux-console.net

Bu bilgi aynı zamanda tarayıcınızın geliştirici araçlarında da mevcuttur.

8. Parametrelerle POST isteği yapın

Aşağıdaki komut firstName ve lastName parametrelerini karşılık gelen değerleriyle birlikte https://yourdomain.com/info.php adresine gönderecektir. .

curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

Normal bir HTML formunun davranışını simüle etmek için bu ipucunu kullanabilirsiniz.

9. Kimlik Doğrulamalı veya Kimlik Doğrulamasız Dosyaları FTP Sunucusundan İndirin

Uzak bir FTP sunucusu ftp://yourftpserver adresinde bağlantı bekliyorsa, aşağıdaki komut geçerli çalışma dizinine yourfile.tar.gz dosyasını indirecektir.

curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

FTP sunucusu anonim girişlere izin veriyorsa -u kullanıcı adı:şifre'yi atlayabilirsiniz.

10. Dosyaları Kimlik Doğrulamalı veya Kimlik Doğrulamasız bir FTP sunucusuna yükleyin

mylocalfile.tar.gz adlı yerel dosyayı curl kullanarak ftp://yourftpserver'a yüklemek için şunu yapın:

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

11. Kullanıcı Aracısını Belirleyin

Kullanıcı aracısı, HTTP isteğiyle birlikte gönderilen bilgilerin bir parçasıdır. Bu, istemcinin istekte bulunmak için hangi tarayıcıyı kullandığını gösterir. Mevcut curl sürümümüzün varsayılan olarak neyi kullandığını görelim ve daha sonra bunu "Ben yeni bir web tarayıcısıyım" olarak değiştirelim:

curl -I http://localhost --user-agent "I am a new web browser"

12. Web Sitesi Çerezlerini Saklayın

https://www.cnn.com'a göz attığınızda bilgisayarınıza hangi çerezlerin indirildiğini görmek ister misiniz? Bunları cnncookies.txt dosyasına kaydetmek için aşağıdaki komutu kullanın. Daha sonra dosyayı görüntülemek için cat komutunu kullanabilirsiniz.

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

13. Web Sitesi Çerezlerini Gönderin

Son ipucunda alınan çerezleri aynı siteye yapacağınız sonraki taleplerde kullanabilirsiniz.

curl --cookie cnncookies.txt https://www.cnn.com

14. Ad Çözünürlüğünü Değiştirin

Bir web geliştiricisiyseniz ve alanadınız.com'un yerel sürümünü yayınlamadan önce test etmek istiyorsanız, curl çözümlemesini http://www.alanadiniz.com yapabilirsiniz. localhost'unuza şu şekilde:

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

Böylece, http://www.alanadiniz.com sorgusu, Curl'e siteyi DNS veya /etc/hosts dosyası kullanmak yerine localhost'tan istemesini söyleyecektir.

15. İndirme Hızını Sınırlayın

Curl'ün bant genişliğinizi tüketmesini önlemek için indirme hızını aşağıdaki gibi 100 KB/s ile sınırlayabilirsiniz.

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Özet

Bu yazımızda curl'un kökenine dair kısa bir tarihçe paylaştık ve 15 pratik örnekle nasıl kullanılacağını anlattık.

Bu makalede gözden kaçırmış olabileceğimiz başka curl komutları biliyor musunuz? Bunları yorumlarda topluluğumuzla paylaşmaktan çekinmeyin! Ayrıca sorularınız varsa bize bildirmekten çekinmeyin. Sizden haber almak için sabırsızlanıyoruz!