curl, terminal aracılığıyla bir web sunucusuyla iletişim kurmak için güçlü bir komut satırı aracıdır. Her ikisi de içeriği bir sunucuya yükleyip indirebildiğinden ve çapraz platformda çalıştığından, genellikle popüler wget komutuyla karıştırılır. Yani, işleri açıklığa kavuşturmak için, işte wget ve curl ile başlamak için bilmeniz gereken bazı popüler curl komutları arasındaki farklar.
curl vs wget
Yüzeyde, hem curl hem de wget, web sunucularından içerik talep edebilen ve indirebilen bir yardımcı program olarak görülebilir. Ancak, derine inerseniz, çözülecek çok şey var. curl, HTTPS, SFTP'den IMAP'ye, POP3'e kadar birçok protokolü desteklerken, wget yalnızca HTTP, HTTPS ve FTP'yi destekler.
Diğer bir önemli fark, wget'in özyinelemeli indirmeyi desteklerken curl'nin desteklememesidir. Bu nedenle wget, web sayfasından bağlantılı olduğu sayfalara kadar her şeyi indirirken curl indirmez. Öte yandan curl, API'ler sağlayan libcurl kitaplığına dayanır. Bu nedenle, GUI tabanlı uygulamaların yanı sıra komut satırı komut dosyasında da kolayca kullanılabilir. Curl'yi, bir web sunucusundan içerik yükleyip indirebilen, basitleştirilmiş bir komut satırı web tarayıcısı olarak düşünebilirsiniz.
Curl üzerine yükleme pencereler
curl, Unix tabanlı veya Unix benzeri İşletim sistemlerinde önceden yüklenmiş olarak gelir ve dolayısıyla doğrudan macOS'ta kullanılabilir. Ancak, Windows gibi Unix dışı sistemlerde bir “libcurl” kitaplığı yardımıyla da kullanılabilir.
Windows'ta tek yapmamız gereken libcurl zip dosyasını indirmek ve komut istemiyle onu kullanılabilir hale getirmek için birkaç değişiklik yapmak. Öncelikle, Windows 32 bit veya 64 bit için libcurl zip dosyasını buna göre indirin. Dosyayı indirdikten sonra, içeriği bir klasöre çıkartın. Bağlam için, aşağıdaki libcurl klasörünün çıkarılan içeriğinin bir ekran görüntüsüdür.
Çıkarılan klasör içinde şuraya gidin: çöp Kutusu klasörüne gidin ve aşağıdaki dosyaları kopyalayın - "Curl.exe" ve "curl-ca-bundle".
"C:" sürücüsünde "curl" adlı bir klasör oluşturun ve kopyalanan her iki dosyayı da yapıştırın. Bunu yaptıktan sonra, komut isteminde "C: \ curl" klasörüne gittiğinizde doğrudan curl komutunu kullanabilirsiniz.
Alternatif olarak, curl'yi doğrudan cmd'den çalıştırmak istiyorsanız, bir ortam değişkeni oluşturmanızı tavsiye ederim. Bunu yapmak için Başlat menüsüne gidin ve "Sistem ortamı değişkenlerini düzenleyin”Ve ilk aramayı tıklayın.
Sistem Özellikleri açılır penceresinde, alttaki Ortam değişkenleri düğmesine tıklayın.
Ortam değişkeni ekranında, bir kullanıcı ortam değişkeni eklemek için üst yarıdaki Yeni düğmesine tıklayın.
Yeni Kullanıcı Değişkeni ekranında aşağıdaki girişi ekleyin. Bunu gönderin, değişiklikleri kaydetmek için Tamam'a ve ardından Uygula'ya tıklayın.
Değişken adı: curl Değişken değeri: C: \ curl
Tamamlandığında, değişiklikleri kaydetmek için Ortam değişkeni menüsünün altındaki Tamam'ı tıklayın. Bunu gönderin, curl komutunu doğrudan komut isteminde kullanabilmelisiniz. Test etmek için aşağıdaki komutu girin
curl --version
Alternatif olarak şunları da yapabilirsiniz: Windows için WSL'yi etkinleştir ve Windows'ta bash'dan curl komutlarını çalıştırmak için Ubuntu bash kabuğunu kullanın.
En İyi Curl Komutları ve Nasıl Kullanılır
Komutlara başlamadan önce, Windows komut satırında tek tırnakların çalışmadığını unutmayın. Bunları çift tırnağa dönüştürmeniz gerekir. Bash kabuğu için, her zamanki gibi tek tırnaklarla da çalışacaktır.
1. HTML koduna göz atın
Curl'nin en temel faydası, bir web sayfasının HTML koduna göz atmaktır. Bunu yapmak için, curl komutunun sonuna web sayfasının web URL'sini ekleyin.
curl https://example.com
Bu komut, çıktıyı terminalde gösterecektir. URL'den önce "-O" anahtarını belirterek dosyanın içeriğini de indirebilirsiniz. Bu, dosyayı sisteminize aynı uzak dosya adıyla kaydedecektir. Örneğin, sunucudaki HTML dosyası adı “home.html” ise, yerel olarak da “home.html” olarak kaydedilecektir.
curl -O http://example.com/home.html
Alternatif olarak, verileri özel dosya adlarıyla da saklayabilirsiniz. Bunun için, komutu daha küçük bir "-o" harfiyle ve ardından dosya adını ekleyin.
curl http://example.com/home.html -o sample-file.txt
Birden çok uzak dosya URL'si belirleyerek birden çok dosyayı da indirebilirsiniz.
2. curl ile dosya indirme
Wget'e benzer şekilde curl kullanarak dosyaları indirebilirsiniz. -O anahtarını kullanabilir ve dosya adını belirtebilirsiniz, aksi takdirde dosya uzak dosya adıyla kaydedilir.
curl -O http://example.com/linux.iso
Örneğin, aşağıdaki komut web sunucusundan Linux nane'nin en son sürümünü indirecektir.
curl -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
İlerlemeyi karma şeklinde görüntülemek için "- #" veya "- ilerleme çubuğu" da kullanabilirsiniz.
3. Başarısız İndirmeye Devam Etme
Ayrıca, indirme işlemi kesintiye uğrarsa, “-C -” anahtarını kullanarak devam edebilirsiniz. Komut aşağıdaki gibi görünecektir.
curl -C http://example.com/linux.iso
Örneğin, aşağıdaki komut indirmeyi son başarısız noktadan devam ettirecektir.
curl -C - -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
4. IP Bilgileri
Bir makine hakkındaki tüm ağ bilgilerini almak için aşağıdaki curl komutunu kullanabilirsiniz.
curl ipinfo.io
Alternatif olarak, IP adresini biliyorsanız ve konum koordinatları, şehir, saat dilimi vb. Gibi diğer ayrıntıları istiyorsanız, aşağıdaki komut varyasyonunu kullanabilirsiniz.
curl ipinfo.io/14.141.173.170
5. E-posta Gönderin
Curl, SMTP, POP3 protokolünü desteklediğinden, e-posta göndermek için bile kullanabilirsiniz. Aşağıda, Gmail aracılığıyla bir e-posta göndermenin bir örneği bulunmaktadır.
Aşağıdaki komutta e-posta adresini ve şifreyi uygun şekilde değiştirin.
curl --url "smtps: //smtp.gmail.com: 587" --ssl-reqd --posta-gönderen "gö[email protected]" - posta-rcpt "alıcı@gmail.com" --yükleme- dosya "C: \ mail.txt" - kullanıcı "gö[email protected]: şifre"
Google hesabı için daha az güvenli uygulamalara erişimi açtığınızdan emin olun
6. Sözlük
Libcurl tarafından sağlanan dikt protokolü, bir kelimenin anlamını kolayca bulmak için kullanılabilir. Anlamın kaynağı WordNet'tir. Aynısını yapmak için komut aşağıdadır.
curl dict: //dict.org/d: ingilizce-kelime
7. POST komutları
Bir curl komutu yardımıyla bir web sunucusuna POST istekleri gönderebilirsiniz. Sözdizimi aşağıdaki gibidir
curl -X POST -F "name = kullanıcı-adı" -F "şifre = şifre" http://www.example.com
POST form verileri ayrıca bir JSON dosyası biçiminde gönderilebilir. Bunu yapmak için aşağıdaki komutu kullanın.
curl -H "İçerik Türü: uygulama / json" https://www.example.com
8. Dosyaları Dönüştür
Curl, çok parçalı form verilerini desteklediğinden, dosyaları yüklemek ve hatta anında dönüştürülmesini sağlamak için kullanabilirsiniz. Örneğin, bu HTML dosyasını bir PDF'ye dönüştürmek istiyorum. Bu nedenle, bunu yapmak için Docverter API'yi kullanacağım. Docverter API, HTML, Markdown'dan birden fazla dosya formatını destekler ve bunları Docx, PDF, ePub vb. Formatlara dönüştürebilir.
Alternatif olarak, excel e-tablolarını, belgelerini vb. Dönüştürmek için Google Drive API v3'ü de kullanabilirsiniz.
curl "http://c.docverter.com/convert" -F'den = html -F'den = pdf -F input_files [] = @ dosyanızın-adı -o "çıktı-dosyası-adı.pdf"
Kapanış Sözleri
curl, çoğunlukla veri, dosya ve formların paylaşımı için programlarda kullanılır. Yukarıda belirtilen komutun yanı sıra, curl ile kullanabileceğiniz çeşitli başka API'ler, kombinasyonlar veya kabuk komut dosyaları vardır. Bunun hakkında GitHub depolarında veya Stack Overflow'da daha fazla bilgi edinebilirsiniz. Herhangi bir curl komutuyla ilgili daha fazla sorun veya sorgu için, aşağıdaki yorumlarda bana bildirin.
Ayrıca Oku: 14 En İyi Kodlama Uygulamaları (Android ve iOS)