Bir süredir Linux uygulamaları için terminal odaklı kurulum talimatlarını takip ediyorsanız, muhtemelen aşağıdakilerle karşılaşmışsınızdır: curl
bir noktada veya başka bir yerde komut verin. cURL, URL’lerle veri aktarımı için bir komut satırı aracıdır. En basit kullanımlardan biri, komut satırı aracılığıyla bir dosya indirmektir. Ancak bu yanıltıcıdır, çünkü cURL çok daha fazlasını yapabilen inanılmaz derecede güçlü bir araçtır.
cURL nedir?
İlk olarak 1996 yılında Daniel Sternberg tarafından web sunucularından finansal verileri almak ve IRC kanallarına yayınlamak için yazılan cURL, tarayıcı kullanmadan veri almak için güçlü bir araç haline geldi. Her zaman terminali kullanıyorsanız, bu cephaneliğinizdeki en önemli araçlardan biri olacaktır.
Çoğu Linux dağıtımında, cURL sistemde önceden kuruludur ve onu hemen kullanabilirsiniz. Kurulu olmasa bile çoğu depoda bulunur, böylece Yazılım Merkezini kullanarak kolayca kurabilirsiniz.
Windows için “kıvrılma benzeri” bir komut yoktur ve macOS’ta önceden yüklenmiş cURL vardır ancak oldukça fazla bayrak Linux sürümü olarak.
Kurulum
Daha fazla ilerlemeden önce cURL’nin sistemimizde kurulu olduğundan emin olmalıyız.
Linux
Debian/Ubuntu tabanlı dağıtımlarda cURL’yi kurmak için aşağıdaki komutu kullanın:
sudo apt install curl
Arch tabanlı dağıtımlarda:
sudo pacman -S curl
Fedora/CentOS/RHEL’de:
sudo dnf install curl
Mac os işletim sistemi
macOS için önceden yüklenmiştir, bu nedenle herhangi bir şey yapmanıza gerek yoktur.
pencereler
- Windows 7/10/11 için şuraya gidin: cURL indirme sayfası ve çalıştırdığınız mimariye göre 64-bit veya 32-bit paketler arasından seçim yapın. Mimarinizi bilmiyorsanız, 2006’dan sonra yapılan donanımların büyük çoğunluğu üzerinde olduğundan 64-bit güvenli bir bahistir.
- Doğrudan sistem sürücüsünde veya “C:Program Files” içinde bir klasör oluşturun ve buna “cURL” adını verin.
- İndirdiğiniz zip dosyasına geri dönün, açın ve “bin” klasörünün içindeki “curl.exe” dosyasını bulun. Bunu, oluşturduğunuz cURL klasörüne kopyalayın. Kopyaladığınız EXE tamamen bağımsızdır ve Linux üzerinde çalıştırabileceğiniz her permütasyonu çalıştırabilir.
- Bu komutu gerçekten kullanışlı hale getirmek için, komut isteminden herhangi bir yerde çalıştırılabilmesi için onu Windows’taki PATH değişkenine eklemeliyiz.
- Başlat menünüze tıklayın, yazın
environment
, ve bas Girmek. - “Ortam Değişkenleri…” üzerine tıklayın. Artık ortam değişkenleri ayarlarınızda olmalısınız.

- “Yol” ortam değişkenini seçin, ardından “Düzenle…” seçeneğini tıklayın.
- Yol düzenleme iletişim penceresindeyken, “Yeni”ye tıklayın ve “curl.exe”nizin bulunduğu dizini yazın – örneğin, “C:Program FilescURL”.

- Bu süreçte açtığınız diyalog pencerelerinde “Tamam”a tıklayın ve terminalinizde cURL bulundurmanın keyfini çıkarın!
Linux’ta kullanılabilen cURL’deki her bayrak Windows sürümünde çalışmalıdır.
Bilgelere söz: komut isteminin asla Windows Terminali ile karıştırılmaması gerektiğini unutmayın. Windows Terminal, benzer işlevsellik sunan ancak tamamen farklı çalışan PowerShell’de bulunan kendi cURL sürümüyle birlikte gelir.
cURL’yi kullanma
Başlamak için yazmanız yeterlidir curl maketecheasier.com
terminalinizde ve tuşuna basın Girmek.
Herhangi bir çıktı almıyorsanız, bunun nedeni bu sitenin sunucusunun www olmayan etki alanına rastgele bağlantı isteklerine yanıt verecek şekilde yapılandırılmamış olmasıdır. Var olmayan veya çevrimiçi olmayan bir sunucuyu yokladıysanız, cURL’nin ana bilgisayarı çözemediğini söyleyen bir hata mesajı alırsınız.

cURL’nin gerçekten yararlı bir şey yapmasını sağlamak için bir protokol belirlememiz gerekecek. Örneğimizde, bu sitenin ana sayfasını sorgulamak için HTTPS protokolünü kullanıyoruz. Tip curl https://www.maketecheasier.com
.

Her şey yolunda giderse, devasa bir veri duvarına bakıyor olmalısınız. Bu verileri biraz daha kullanılabilir hale getirmek için cURL’ye onu bir HTML dosyasına koymasını söyleyebiliriz:
curl https://www.maketecheasier.com > ~/Downloads/mte.html

Bu komut, sitemizin çıktısının içeriğini İndirilenler klasörünüzdeki bir HTML dosyasına yerleştirir. Favori dosya yöneticinizle klasöre gidin ve az önce oluşturduğunuz dosyaya çift tıklayın. Bu sitenin ana sayfasının HTML çıktısının bir anlık görüntüsünü açmalıdır.

Benzer şekilde, kullanabilirsiniz -o
aynı sonucu elde etmek için bayrak:
curl -o ~/Downloads/mte.html https://www.maketecheasier.com
Yönlendirmeleri Takip Etme
Çoğu site trafiği otomatik olarak “http”den “https” protokolüne yönlendirir. cURL’de, aynı şeyi şu şekilde elde edebilirsiniz: -L
bayrak. Bu, okunabilir bir sayfa veya dosyaya ulaşana kadar otomatik olarak 301 yönlendirmelerini takip edecektir.
curl -L http://google.com.

İndirmeye Devam Etme
Büyük dosyaları indirirken, İnternet hızınıza bağlı olarak, kesintiler son derece rahatsız edici olabilir. Neyse ki, cURL’nin bir özgeçmiş işlevi vardır. geçmek -C
flag bu konuyla hemen ilgilenecektir.
Gerçek dünyadan bir örnek göstermek için, Debian’ın ISO test sürümünün indirilmesini kasıtlı olarak düğmesine basarak yarıda kestim. Ctrl ve C yakalamanın ortasında.

Bir sonraki komutumuz için, -C
bayrak. Örneğin,
curl -C - -o ~/Downloads/debiantesting.iso -L https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-dvd/debian-testing-amd64-DVD-1.iso

İndirme başarıyla kaldığı yerden başladı.
Birden Fazla Dosya İndirme
cURL, birden çok dosyayı indirmenin en sezgisel yoluna sahip olmadığından, her biri kendi uzlaşmasına sahip iki yöntem vardır.
İndirmekte olduğunuz dosyalar numaralandırılmışsa (örneğin, dosya1, dosya2, vb.), tüm dosya aralığını almak için parantezleri kullanabilir ve çıktıyla birlikte belirlediğiniz çıktı içinde “#” kullanabilirsiniz. -o
bayrak. Bunu biraz daha az kafa karıştırıcı hale getirmek için işte bir örnek:
curl "http://example.com/file[1-5].zip" -o "#1_#2"
Bunu yapmanın daha basit bir yolu ile -O
(--remote-name
). Bu bayrak, cURL’nin uzak dosyayı aynı ada sahip yerel bir dosyaya indirmesini sağlar. Bir çıktı belirtmeniz gerekmediğinden, dosyaları indirmek istediğiniz dizinde terminal açıkken bu komutu kullanmalısınız.
curl -O "https://example.com/file1.zip" -O "https://example.com/file2.zip"
İndirilecek çok sayıda numaralandırılmış dosyanız varsa, --remote-name-all
bunun için daha iyi bir bayrak:
curl --remote-name-all "https://example.com/file[1-5].zip"
Köşeli parantez kullanarak URL’yi yeniden yazmak zorunda kalmadan aynı siteden gelen numaralandırılmamış dosyaları bile belirtebilirsiniz:
curl --remote-name-all "https://example.com/{file1.zip,anotherfile.zip,thisisfun.zip}"
Kimlik Doğrulama ile İndirme
Kimlik doğrulama gerektiren dosyaları indirin (örneğin, özel bir FTP sunucusundan alırken) -u
bayrak. Her kimlik doğrulama isteği, ikisini ayıran iki nokta üst üste gelecek şekilde, önce kullanıcı adı ve ikinci olarak parola ile yapılmalıdır. İşleri basitleştirmek için bir örnek:
curl -u username:password -o ~/Downloads/file.zip ftp://example.com/file.zip
Bu, arkadaşımız bonobo_bob’un FTP sunucusunda kimliğini doğrulayacak ve dosyayı İndirilenler klasörüne indirecektir.
Dosyaları Bölme ve Birleştirme
Herhangi bir nedenle büyük bir dosya indirmek ve onu parçalara bölmek isterseniz, bunu cURL’ler ile yapabilirsiniz. --range
bayrak. İle birlikte --range
, bitirmek istediğiniz bayt ile başlamak istediğiniz baytı belirtmelisiniz. Aralığın sonunu belirtmezseniz, dosyanın geri kalanını indirir.
Aşağıdaki komutta cURL, Arch Linux’un ilk 100 MB kurulum görüntüsünü indirecektir:
curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso
Sonraki 100 MB için şunu kullanın: --range 100000000-199999999
, vb. kullanarak bu komutları zincirleyebilirsiniz. &&
işlenen:
curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 100000000-199999999 -o arch.part2 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 200000000-299999999 -o arch.part3 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 300000000-399999999 -o arch.part4 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 400000000-499999999 -o arch.part5 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 500000000-599999999 -o arch.part6 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 600000000-699999999 -o arch.part7 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 700000000- -o arch.part8 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso
Yukarıdaki komut yapısını harfi harfine izlediyseniz, cURL’den indirmesini istediğiniz yerde sekiz dosya görünmelidir.

Bu dosyaları yeniden birleştirmek için cat
Linux veya macOS kullanıyorsanız şöyle komut verin:
cat arch.part? > arch.iso
Windows için, kullanmanız gerekecek copy
şöyle komut:
copy /b arch.part* arch.iso
Diğer Faydalı Özellikler
cURL için birçok işaret ve kullanım vardır:
-#
– Tuttuğunuz şeyde ne kadar uzakta olduğunuzu belirtmek için bir ilerleme çubuğu kullanır. Örnek:curl -# https://asite.com/somefile.zip > ~/somefile.zip
.-a
– cURL’den üzerine yazmak yerine bir dosyaya eklemesini ister. Örnek:curl -ao ~/collab-full.x https://example-url.com/collab-part26.x
.--head
– Çıktı verileri olmadan yalnızca yanıt başlığını sunucudan alır. Bu, bir web sitesinde hata ayıklarken veya sunucunun istemcilere programlanmış yanıtlarına göz atarken kullanışlıdır. Örnek:curl --head https://example-url.com
.--limit-rate
– Sınırlı bant genişliğine sahip bir indirme siparişi verir. cURL’nin sisteminizdeki tüm mevcut bant genişliğini tüketmesini istemediğiniz durumlarda kullanışlıdır. Basit bir sayı, saniyede bayt olarak yorumlanacaktır. K, saniyede kilobaytı temsil eder; M, saniyede megabaytı temsil eder. Örnek:curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip
.-o
– Daha önce belirtildiği gibi, cURL’nin kullanması için bir çıktı dosyası belirler. Örnek:curl -o ~/Downloads/file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip
.--proxy
– Bir proxy ile çalışmak istiyorsanız, bunu yapmanın yolu budur. Örnek:curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip
.
cURL ve Wget karşılaştırması
Her ikisi de aynı yıl (1996) piyasaya sürüldü, cURL ve Wget, sıradan gözlemciler için hemen hemen kardeş programlardır. Yine de biraz daha derine inin ve bu iki kız kardeşin farklı amaçları olduğunu görebilirsiniz.
Wget
- İnternetten veri almak için tamamen sıfırdan inşa edilmiştir.
- ihtiyacı yok
-L
veya-o
cURL gibi bayraklar; sadece yazwget [url]
ve git! - Bir dizindeki her şeyi almak için özyinelemeli olarak indirebilir.
-r
bayrak. - Bir kullanıcının günlük kullanım için ihtiyaç duyduğu tüm işlevlere sahiptir ve günlük sistem yöneticisi görevlerini yerine getirir.
- (Linux’ta) Çok fazla bağımlılığa ihtiyaç duymaz; hepsi kutunun dışında mevcut olmalıdır.
cURL
- Geniş bayrak repertuarı ve uzaktan erişim için kullanışlı işlevler.
- Yerel ağ (LDAP) ve ağ yazıcılarını (Samba) destekler.
- gzip sıkıştırma kitaplıkları ile iyi çalışır.
- Geliştiricilerin cURL’nin işlevselliğini içeren yazılım veya bash komut dosyaları yazmasına izin veren libcurl’a bağlıdır.
Kısacası, Wget İnternetten bir şeyler almak için “herkesin araç kutusu” iken cURL, uzman kullanıcılar ve sistem yöneticileri için daha ayrıntılı kontrol ile bunu genişletiyor.
Sıkça Sorulan Sorular
1. Linux’ta bir sertifika hatası aldım. Nasıl düzeltirim?
“Akran sertifikası veren güvenilir değil olarak işaretlendi” gibi bir hata alırsanız, bunu düzeltmenin en kolay yolu, dağıtımınızdaki ortak sertifika paketini yeniden yüklemektir.
Debian/Ubuntu tabanlı sistemler için:
sudo apt reinstall ca-certificates
Fedora/CentOS/RHEL için:
dnf reinstall ca-certificates
Arch tabanlı sistemler için:
pacman -S ca-certificates
Arch’ta paket önbelleğinizi kullanarak temizlemek isteyebileceğinizi unutmayın. pacman -Scc
sertifika paketini yeniden yüklemeden önce.
Hala bu hatayı alıyorsanız, sunucu tarafında bir sorun olabilir.
2. cURL ve bash komutlarını birlikte çalıştırmak güvenli midir?
Linux uygulamalarını kurmanın en yaygın yolu olmasa da, size kullanmaktan başka seçenek bırakmayan çok sayıda geliştirici (NodeJS’nin arkasındaki kişiler gibi) vardır. curl
bash aracılığıyla çalışan bir kök erişim komutunun yanı sıra (örn. curl [argument] | sudo -E bash -
) yazılımı yüklemek için.
Biraz korkutucu görünebilir, ancak uygulamanın arkasındaki insanlar güvenilirse, bir şeyleri kırmanız pek olası değildir. Kötü niyetli aktörler her yerdedir ve Arch’ın AUR’si gibi depolara sızabilir; curl
root erişim komutlarıyla birlikte kullanmak, paket yöneticiniz aracılığıyla yapmaktan genellikle daha güvensiz değildir.
3. Tor ile cURL kullanabilir miyim?
Evet! Tor Browser’ı (veya bağımsız bir tor hizmetini) başlatın ve --proxy
bayrak. Tor, diğer uygulamalarda IP’nizi maskelemek için kullanabileceğiniz yerel bir proxy sağlar. Tor ile kullanılan bir cURL örneği:
curl --proxy localhost:9050 http://example.com
Bağımsız Tor hizmetleri, dinleme bağlantı noktası olarak 9050’yi kullanırken Tor tarayıcısı 9150 bağlantı noktasını kullanır.
Toplama
cURL, Linux dünyasının değişen yapısı içinde, terminal kullanıcılarının cephaneliğinde önemli bir araç olarak konumunu koruyarak dirençli olduğunu kanıtlamıştır.
Komut satırında yeniyseniz, en kullanışlı Linux komutlarından bazılarına göz atın. İnternetten veri indirmek yerine sadece Web’de arama yapmak istiyorsanız, terminale de göz atabilirsiniz.