Linux işletim sisteminde yer alan komutlar arasındaki curl komutunun ne olduğu sıklıkla sorulmaktadır. Bu komut birçok Unix bazlı olan sistemlerde karşımıza çıkan bir komut dizinidir ve Client URL’nin kısaltılmış hali olarak kullanılmaktadır. Komut sayesinde URL’lerin birbirine nasıl bağlandıklarını kontrol edebileceğiniz gibi veri transferlerinin yapılmasının da bir araç olarak tercih edebilirsiniz. Curl komutu nedir? Sorusunun tanımını sizlere bu şekilde yapabiliriz. Yazımızın devamında ise sizlere nasıl kullanıldığı hakkında bilgi vereceğiz.
Curl komutu bazı protokolleri desteklemektedir. Komut tarafından desteklenmekte olan protokoller ise şu şekildedir:
Görmüş olduğunuz gibi komut tarafından desteklenmekte olan protokollerin sayısı çok fazladır. Curl’un istemciler tarafından ücretsiz bir şekilde kullanılmakta olan URL transfer kütüphanesi olma özelliği de bulunmaktadır.
Sizlere Curl komutunun ne olduğunu gösterdiğimize göre artık nasıl kullanıldığı noktasında da bilgi verebiliriz. Komutu kullanma yoluna gideceğiniz sırada bir VPS girişi yapmanız gerekecektir. İşlemlerinizi yapmadan önce hangi sürümü kullandığınızı da kontrol etmeniz gerekir. Hangi Curl sürümünü kullandığınızı öğrenmek istediğiniz sırada şu komut dizinini kullanmanız gerekmektedir:
curl – version
Bu komutu girmenizin ardından karşınıza gelecek olan ekranda curl tarafından desteklenmekte olan bütün protokollerin listesi çıkacaktır. Sürüm hakkında bilgi aldığımız gibi artık bazı örnekleri de incelemeye hazırız.
Komutun kullanımını öğreneceğimiz sırada basit sözdiziminden başlayabiliriz. Curl komutunun basit sözdizimi ise şu şekilde karşımıza çıkar:
curl [OPTIONS] [URL]
Komutun en basit kullanım şeklinde bizlere bir sayfada yer almakta olan içerikler gösterilmektedir. Şu örneğimizi denediğiniz zaman sizlere denemealanadi.com sayfasındaki içerikler gösterilir:
curl denemealanadi.com
Bu komutu girdiğimiz zaman bizlere seçilen alan adının kaynak kodu hakkında bilgi verilir. Bu noktada bir kontrol belirlenmediği takdirde ise komut bunu http olarak yorumlayacaktır.
Uzak bir konumda yer alan dosyaları kısa süre içerisinde indirmek istediğiniz takdirde de curl komutlarından yardım alma yoluna gidebilirsiniz. Bunu yapacağınız sırada iki farklı yöntem deneme yoluna gidebilirsiniz. Bu yöntemler ise şu şekildedir:
Komutları kullanırken şu örneğimizden faydalanabilirsiniz:
Curl – O http://denemealanadi.com/denemedosyasi.tar.gz
Belirtmiş olduğumuz komuz bizlere dosyayı kaydetme noktasında denemedosyasi.tar.gz şeklinde kaydetme imkanı verecektir.
Curl – o yenidenemedosyasi.tar.gz http://denemealanadi.com/denemedosyasi.tar.gz
Bu komut ise dosyayı kaydederken yenidenemedosyasi.tar.gz şeklinde kaydetmemizi sağlayacaktır.
Curl – O http://denemealanadi.com/denemedosyasi.tar.gz -O http://denemeadi.com/denemeadi.tar.gz
Bu komutu kullanarak indirmek istediğiniz dosyalar farklı konumlarda bulunuyorsa sadece bir komut ile bu dosyaları indirme yoluna gidebilirsiniz. Farklı URL’ler kullanarak farklı dosyalar indirme sırasında bu şekilde listeleme yoluna gitmelisiniz.
Curl –C - - O http://denemealanadi.com/denemedosyası.tar.gz
Dosyalarınızı indirdiğiniz sırada herhangi bir sebepten dolayı indirme işleminiz askıya uğrarsa bu komut ile beraber devam ettirebilmeniz mümkündür.
Xargs – n 1 curl -0 < butunurller.txt
İndirmek istediğiniz bütün url’lerin yer aldığı butunurller.txt şeklinde bir dosyanız bulunuyorsa bu komutu kullanarak indirme işlemlerinizi tamamlayabilirsiniz.
Proxy sunucunuz olsa da Curl kullanabilme imkanınız bulunmaktadır. Denemeproxy.com şeklinde 8090 portunda yer almakta olan bir sunucunuz bulunuyorsa şu dosyaları indirebilirsiniz:
curl –x denemeproxy.com:8090 –U kullaniciadi:sifre -0 http://denemealanadi.com/denemedosyasi.tar.gz
Bu komut dizininde proxy’de bir doğrulama yönteminin kullanılmaması durumunda ise –U kullaniciadi:sifre bölümünü atlama imkanınız vardır.
Oluşturulan standart bir http isteğinin her zaman bir başlık içermekte olduğu görülmektedir. Burada yer almakta olan http başlı özellikle uzakta yer almakta olan web sunucularıyla birlikte ek bilgiler yollar. Bir web sitesini başlık bilgisi olmadan almak istediğiniz takdirde şu komutu kullanabilirsiniz:
curl –I www.denemealanadi.com
Curl komutlarını kullanarak yapabileceğiniz bir diğer işlem dizini ise POST ve GET istekleridir. GET isteğini yapmak için kullanabileceğiniz komut şu şekildedir:
curl http://denemealanadim.com
POST isteğini yapmak için kullanabileceğiniz komut ise şu şekildedir:
curl – data “text=merhaba” https://denemealanaadim.com/firstpage.jsp
curl –data “text=merhaba” https://denemealanadim.com/firstpage.jsp -- next https://denemealanadim.com/displayResult.jsp
Bu örnekte sizlere get isteğinin takip etmiş olduğu bir post isteği örneği gösterdik.
Bütün http istekleri kendi içerisinde bir kullanıcı aracına sahiptir. Bu kullanıcı aracıları ise web tarayıcılarının detaylarını bizlere göstermektedir. Varsayılan şeklinde kullanmış olduğumuz bir curl isteği ise bizlere kullanıcı aracısı olarak bilgiler vermektedir. İçerisinde curl ile beraber sürüm numaralarını içermektedir. Bu komutun kullanılmasındaki örnek sonuç ise şu şekildedir:
“GET / HTTP/1.1” 200 “curl/7/29/0”
Varsayılan kullanıcı aracısı olarak belirtilmiş olan bu bilgileri değiştirmek istediğiniz takdirde ise şu komutu kullanabilirsiniz:
Curl –I http://denemealanadim.com – user – agent “Yeni tarayıcım”
Bu komutu kullanmanızla beraber değişmiş olan sonuç ise şu şekilde olur:
“GET / HTTP/1.1” 200 “_” “Yeni tarayıcım”
Görmüş olduğunuz gibi Curl komutu birçok alanda kullanılabilmektedir. Bu komutu kullanabileceğiniz bir diğer alan ise; URL’den hangi çerezlerin indirildiğini kontrol etmektir. https://www.denemewebsitesi.com a erişiminiz varsa sonuçları bir dosyaya çıkarabilmeniz mümkündür. Çıkarmış olduğunuz çerezlerinizi kaydetmeniz de mümkündür. Bu noktada VM editörüyle cat kullanabilmeniz de mümkündür. Bu komut dizisinin örneği ise şu şekildedir:
curl – cookie-jar cerezlerim.txt https://www.denemewebsitesi.com /index.html –O
Bunun gibi olan diğer çerezleri ise bir dosyada tutabilmeniz ve web sitesine yollayabilmeniz mümkündür. Bu şekilde kullanabileceğiniz örnek komut dizini ise şu şekildedir:
curl – cookie Cerezlerim.txt https://www.denemewebsitesi.com
Desteklenen protokollerin arasında FTP’nin yer almakta olduğunu sizlere belirtmiştik. Bu komut sayesinde uzak masaüstünde yer almakta olan dosyaları kendi masaüstünüze indirebilirsiniz.
Curl –u kullaniciadi:sifre – ftp://denemeftpsunucusu/denemedosyasi.tar.gz
Örnek vermiş olduğumuz bu komut ftp://denemeftpsunucusu bağlantılarını kabul etmektedir. FTP bağlantıları anonim olarak oluşturulduğu takdirde ise kullanıcı adı ve şifre bilgilerini belirtmeyebilirsiniz. Komutu girdikten sonra ise ilerlemenin tamamlanmasını beklemelisiniz.
Farklı masaüstünden dosya çekebilme imkanınız bulunduğu gibi aynı zamanda farklı masaüstüne dosya yükleme imkanınız da bulunmaktadır. Bunun için kullanabileceğiniz komut dizini şu şekildedir:
Curl –u kullaniciadi:sifte –T denemedosyasi.tar.gz ftp://ornekftpsunucusu
Curl komutu kullanarak meydana gelecek olan sonuçların ne kadar büyük olacaklarını tahmin dahi edemezsiniz. Bu noktada trafiğe bir sınırlama koyarak curl tarafından boğulmaların önüne geçebilirsiniz. Trafiği 10 bin ile sınırlamak için şu komutu kullanmanız gerekir:
Curl – limit-rate 10K http://denemealanadi.com/denemedosyasi.tar.gz -0
Bir yanıt yazın