Curl Aracı

cURL, çeşitli protokoller kullanarak, veri aktarımı sağlamak için kütüphane ve komut satırı aracı sunan bir bilgisayar yazılımı projesidir. cURL projesi, libcurl ve cURL olarak ikiye ayrılır. İlk olarak 1997 yılında yayınlanmıştır. İsminde bulunan "c" İngilizce'deki client kelimesinden gelmektedir.

https://curl.se/

Support

DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, SCRAM-SHA, NTLM, Negotiate and Kerberos),  dosya aktarımı özgeçmişi, proxy tünelleme ve daha fazlası.

cURL sözdizimi.

curl [OPTIONS] URL

cURL Kurulumu

APT Paket yöneticileri için (DEBIAN | UBUNTU)

CURL yeni dağıtımların çoğunda kurulu gelmektedir. Kurulu değil ise, curl aracının en son sürümünü yükleyin.

sudo apt install curl -y 

YUM Paket yöneticileri için (RHEL | ORACLE)

CURL yeni dağıtımların çoğunda kurulu gelmektedir. Kurulu değil ise, curl aracının en son sürümünü yükleyin.

sudo yum install curl -y

curl versiyonunu öğrenmek için aşağıdaki komut satırını çalıştırabilirsiniz.

curl --version 

HTTP için cURL Kullanımı

 curl aracını herhangi bir seçenek olmadan kullanıldığınızda, verilen URL'nin kaynak kodunu standart çıktıya yazdırır.

curl google.com
curl https://google.com 

curl aracı varsayılan olarak sunucu, istenen sayfanın farklı bir konuma taşındığını bildirir. Başlık ve bir 3XX yanıt kodu olarak bir çıktı alırsınız. Yani eğer bir yönlendirme var ise herhangi bir seçenek belirtmez iseniz curl devam etmez. Sitenin tüm yönlendirmeler dahil hedefe ulaşana kadar gitmesini istiyorsanız -L seçeneğini kullanmanız gerekir. 

curl -L https://google.com 

curl -I seçeneğiyle birlikte kullanıldığında, belirli bir URL'nin HTTP başlıklarını (header) görüntüler.

curl -I https://www.kali.org/ 

Dosya İndirme için cURL Kullanımı

curl aracı ile terminale yazdırılan kaynak kodunun standart çıktısını indirebiliriz. curl ile bir dosyayı indirmek için -o seçeneği, kaydedilen dosyanın adını belirlemenizi sağlar.

Şimdi curl ile sıkıştırılmış biraz daha büyük bir dosyayı indirelim. Görseldeki gibi, dosyanın toplam dosya boyutu, anlık olarak ne kadar indiği, indirme hızı, kalan zaman gibi bir çok bilgiyi sunar.

curl -o zimra.tgz https://s3.amazonaws.com/files.zimbra.com/downloads/zdesktop/7.3.1/b13063/zdesktop_7_3_1_ga_b13063_20170628044421_linux_x64.tgz 

Büyük harf -O ise, dosyayı orijinal dosya adıyla kaydeder:

curl -O https://s3.amazonaws.com/files.zimbra.com/downloads/zdesktop/7.3.1/b13063/zdesktop_7_3_1_ga_b13063_20170628044421_linux_x64.tgz 

curl aracı ile birden fazla dosyayı aynı anda indirebiliriz. Bunun için her indirme linkinden sonra tekrar -o veya -O seçeneğini kullanmanız yeterlidir.

curl -O https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-virt-3.15.4-x86_64.iso -O https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.1.tar.xz 

Eğer indirdiğiniz dosya boyutu yüksek (ISO vb.) ise ve herhangi bir aksilikten internet bağlantınız kesilirse indirme devam etmez. Bu gibi durumlarda -C seçeneği ile kopma veya kesintiler olsa bile internet bağlantınız geldiği zaman indirmeye devam edecektir.

curl -C - -O  https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.1.tar.xz

Dosyaları indirirken,  internet hızınızı sınırlamak için--limit-rate seçeneği ile belirli  bir limit belirleyebiliriz.

Verilen hız, bir sonek eklenmedikçe bayt/saniye cinsinden ölçülür.  kilobayt için 'k' veya 'K' ,  megabayt  için "m" veya "M"  gigabayt  için "g" veya "G" kullanın.

 Örnekler: 200K, 3m ve 1G.

curl --limit-rate 512k -O https://indir.pardus.org.tr/ISO/Pardus21/Pardus-21.1-XFCE-amd64.iso 

Bazı durumlarda sistem tarafından engellendiğimiz için veya farklı durumlardan kullanıcı ajanlarını taklit etmemiz gerekebilir.  -A seçeneği ile user agent takliti gerçekleştirebiliriz. Kullanıcı ajanları internet üzerinden bulabilirsiniz. Aşağıdaki örnekte Windows Mozilla kullanılmıştır.

curl -O -A "user-agent" download.file
curl -O -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0"  https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.1.tar.xz 

Elinizde bir indirme listesi var ise bunları tek tek yazmak yerine bir metin dosyasından okutup indirebilirsiniz.

xargs -n 1 curl -O < indirmelistesi.txt 

xargs komutu ile bir komuttan gelen standart çıktıyı başka bir komuta argüman olarak yönlendirebilirsiniz.

Proxy için cURL Kullanımı

Eğer ortamınızda bir proxy sunucusu var ise -x seçeneği ile proxy ip adresi bilgisini yazıp dosyalarınızı indirebilirsiniz.

curl -x proxy-server -O https://indir.pardus.org.tr/ISO/Pardus21/Pardus-21.1-XFCE-amd64.iso

Parola korumalı bir proxy ortamından  dosya indirmek için.

curl -U username:password -x proxy-server -O https://indir.pardus.org.tr/ISO/Pardus21/Pardus-21.1-XFCE-amd64.iso

FTP için cURL Kullanımı

 CURL yalnızca HTTP’yi değil FTP’yi de birçok protokolü destekliyor. Aşağıdaki komut satırını örnek alarak FTP üzerinden dosya indirebilirsiniz.

 curl -O ftp://ftpsunucu/dosya.zip

Parola korumalı bir ftp sunucudan dosya indirmek için.

 curl -u username:password -O ftp://ftpsunucu/dosya.zip
Blog'a Dön