Linux'ta Curl Komutu Nasıl Kullanılır

Web sayfalarını getirmek ve dosyaları doğrudan terminalinizden indirmek için curl komutunun kullanımını açıklayan kapsamlı bir kılavuz

bu kıvrılmak komut, Linux'un size sunduğu bir başka ilginç komut satırı aracıdır. kıvrılmak komutu, kullanıcının sunucudan dosya almasına izin verir.

kıvrılmak RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, DOSYA, GOPHER, LDAP, LDAPS, POP3, POP3S, vb.

kıvrılmak komutu, sizin için web sayfalarını getirmekten çok daha fazlasını yapar. Bu komutla kullanılabilen seçenekleri bilmek, onu kullanımınız için daha çok yönlü hale getirir. Kullanımı hakkında iyi bir fikir edinmek için öğreticiye dalalım. kıvrılmak bazı kısa örnekler kullanarak komut verin.

Kurulum

kullanmadan önce kıvrılmak komutu, sisteminizde zaten kurulu olup olmadığını kontrol edin. komutu kullanın kıvrılma --versiyon olup olmadığını kontrol etmek için kıvrılmak kurulur.

durumunda kıvrılmak kurulu değil, aşağıdaki adımları kullanın.

Ubuntu ve Debian tabanlı sistemlerde, kullanmak:

sudo apt-get güncellemesi
sudo apt-get install curl

RHEL, CentOs ve Fedora dağıtımlarında, kullanmak:

sudo yum curl yükleme

şimdi kullan kıvrılma --versiyon düzgün şekilde kurulduğundan emin olmak için komut.

kıvrılma --versiyon

Çıktı:

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30. 0 librtmp/2.3 Yayın Tarihi: 2018-01-24 Protokoller: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Özellikler: AsynchDNS IDN IPv6 Büyük Dosya GSS-API SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL gaurav@ubuntu:~$ 

Artık kullanmaya hazırız kıvrılmak emretmek.

CURL komutuyla kullanılabilen seçenekler

İlk önce, mevcut olan öne çıkan seçeneklerden bazılarına bir göz atalım. kıvrılmak emretmek.

SeçenekAçıklama
-uFTP sunucusundan dosya indirmek için
-Ckesintiye uğramış bir indirmeyi sürdürmek için
sonucunu kaydetmek için kıvrılmak önceden tanımlanmış bir dosya adıyla komut
-BENCEtanımlanmış bir URL'nin HTTP başlıklarını almak için
sonucunu kaydetmek için kıvrılmak orijinal dosya adıyla komut
--libcurlkullanan C kaynak kodunun çıktısını almak için libcurl belirtilen seçenek için
-xURL'ye erişmek için bir proxy kullanmak için
-#indirme durumunu göstermek için ilerleme çubuğunu görüntülemek için

CURL kullanarak bir web sayfası alma

bu kıvrılmak komutu, herhangi bir seçenek olmadan kullanıldığında, komutta belirtilen URL'nin içeriğini getirir.

Sözdizimi:

kıvrılma [URL]

Örnek:

curl // her şey.how

Çıktı:

gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}html.i-amphtml-fie{height:100%!important;width:100%!important}html:not([amp4ads ]),html:not([amp4ads]) body{height:auto!important}html:not([amp4ads]) body{margin:0!important}body{-webkit-text-size-adjust:100%;- moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}html.i-amphtml-singledoc.i-amphtml-embedded{-ms-touch -action:pan-y;touch-action:pan-y}html.i-amphtml-fie>body,html.i-amphtml-singledoc>body{overflow:visible!important}html.i-amphtml-fie:değil (.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not(.i-amphtml-inabox)>body{konum:relative!important}html.i-amphtml-webview>body{overflow-x :hidden!important;overflow-y:visible!important;min-height:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;bitti akış-y:oto!important;konum:mutlak!important;üst:0!important;sol:0!important;sağ:0!important;alt:0!important;margin:0!important;görüntüleme:blok!important} html.i-amphtml-ios-embed.i-amphtml-ios-overscroll,html.i-amphtml-ios-embed.i-amphtml-ios-overscroll>#i-amphtml-wrapper{-webkit-overflow-scrolling: touch!important}#i-amphtml-wrapper>body{position:relative!important;border-top:1px katı şeffaf!important}#i-amphtml-wrapper+body{visibility:visible}#i-amphtml-wrapper+body .i-amphtml-lightbox-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -element{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}amp-instagram {padding:54px 0px 0px!important;background-color:#fff}amp-iframe iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[abonelikler -dialog],gövde:değil(.i-amphtml-s ubs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [abonelikler-bölümü]{display:none!important}amp-deneme,amp-live-list>[güncelleme]{görüntüleme :yok}.i-amphtml-jank-meter{konum:sabit;arka plan rengi:rgba(232,72,95,0.5);alt:0;sağ:0;renk:#fff;font-size:16px; z-index:1000;padding:5px}amp-list[resizable-children]>.i-amphtml-loading-container.amp-hidden{display:none!important}amp-list [getirme hatası],amp-listesi [daha fazla yükle] [daha fazla yükle],amp-list[daha fazla yükle] [daha fazla yükle],amp-list[daha fazla yükle] [daha fazla yükle],amp-list[yükle] -more] [load-more-loading]{display:none}amp-list[diffable] div[rol=list]{display:block}amp-story-page,amp-story[standalone]{min-height:1px !important;display:block!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;width:100%!important}amp-story[bağımsız]{background- color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amphtm l-loader-background{display:none!important}amp-story-page:değil(:tipin ilki):not([mesafe]):not([aktif]){transform:translateY(1000vh)!important }amp-autocomplete{position:relative!important;display:inline-block!important}amp-autocomplete>input,amp-autocomplete>textarea{padding:0.5rem;border:1px solid rgba(0,0,0,0.33) }.i-amphtml-autocomplete-results,amp-autocomplete>input,amp-autocomplete>textarea{font-size:1rem;line-height:1.5rem}[amp-fx^=fly-in]{visibility:hidden} amp-script[nodom]{konum:fixed!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;visibility:hidden} 

Burada, web sayfasının içeriği doğrudan terminalinize kaynak kodu olarak getirilir.

seçenekleri kullanabilirsiniz ve ile kıvrılmak bu içeriği bir dosyada saklama komutu.

Ne zaman seçeneği kullanıldığında, URL'nin içeriği, kullanıcı tanımlı bir dosya adıyla geçerli dizininize kaydedilir.

Sözdizimi:

curl -o [kullanıcı tanımlı_dosyaadı] [URL]

Örnek:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Toplam % Alınan % Xferd Ortalama Hız Süre Süre Süre Mevcut Dload Yükleme Toplam Harcanan Sol Hız 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$ 

Bu örnekte, 'allthings.how' URL'sinden gelen içerik, mevcut çalışma dizinimde ath.html adlı bir HTML dosyası olarak kaydedilir. Bu HTML dosyasını açtığımda, kaydedilen web sayfasına yönlendirileceğim.

CURL komutunu kullanarak dosya indirme

Kullanmak curl komutuyla seçeneği de içeriği veya web sayfasını veya indirilebilir bir paketi dosya olarak kaydeder ancak bu dosyayı orijinal adıyla kaydeder.

Bunu bir örnek üzerinden görelim:

Örnek:

Burada kullandım kıvrılmak ile komut adlı bir Ubuntu paketini indirme seçeneğikiraz ağacı_0.37.6-1.1_all.deb' Ubuntu paket deposundan.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Toplam % Alınan % Xferd Ortalama Hız Süre Süre Süre Mevcut Dload Yükleme Toplam Harcanan Sol Hız 100 613k 100 613k 0 0 220k 0 0:00:02 0:00:02 --:--:-- 220k gaurav@ubuntu:~/workspace$

Çıktı:

trinity@ubuntu:~/workspace$ ls ath.html kiraz ağacı_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$

Böylece paket şimdi indirilir ve orijinal adıyla mevcut çalışma dizinine (CWD) kaydedilir.

Dosya indirirken İlerleme Çubuğu görüntüleme

Kullanırken bir estetik değişiklik daha mevcuttur. kıvrılmak Dosya indirme komutu. Dosya indirme işleminizin ilerlemesini, terminalinizde bir İlerleme Çubuğu şeklinde görüntüleyebilirsiniz. eklemeniz yeterli -# Bir dosyayı indirmek için komutunuzla seçenek.

Bu tweak'in bir örneğini görelim.

Sözdizimi:

curl -# -O [URL]

Örnek:

gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## ################################################# ################################################# #################################### %100.0 gaurav@ubuntu:~/workspace$ 

Çıktı:

gaurav@ubuntu:~/workspace$ ls ath.html kiraz ağacı_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$ 

Bu çıktıda 'adlı bir paket indirdiğimi gözlemleyebilirsiniz.emacs-defaults_47.0.tar.xz' CWD'mde ve indirme işlemi devam ederken ilerleme çubuğu terminalde görüntülenir.

CURL'de kesintiye uğrayan indirmeye devam ediliyor

Çoğu zaman, daha büyük boyutlu dosyaları indirmeniz gereken bir durum ortaya çıkabilir. Bazen elektrik kesintisi veya ağ arızası gibi bazı nedenlerden dolayı indirme işlemi, tam dosya indirilmeden işlemin ortasında iptal edilebilir. bassan da Ctrl+C terminalde işlem durdurulur.

bu kıvrılmak komutu ile kullanıldığında -C seçeneği kesintiye uğrayan indirmeyi sürdürür.

Sözdizimi:

curl -C - -O [URL]

Örnek:

Bu çizimde Ubuntu web sitesinden Ubuntu 20.04 ISO imajını indirmeye çalıştım.

gaurav@ubuntu:~/workspace$ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 % Toplam % Alınan % Xferd Ortalama Hız Zaman Zaman Zaman Mevcut Dload Yükleme Toplam Harcanan Sol Hız 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Burada, indirme işlemini kasıtlı olarak iptal ettim. Ctrl+C.

Şimdi kullanacağım -C seçeneği ile kıvrılmak Aynı kaynak web sitesinden kesintiye uğrayan indirmeye devam etme komutu.

Çıktı:

gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 ** Şuradan aktarıma devam ediliyor bayt konumu 1851392 % Toplam % Alınan % Xferd Ortalama Hız Süre Süre Süre Geçerli Dload Yükleme Toplam Harcanan Sol Hız 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 98278

İndirme, durdurulduğu yerden alındı.

CURL kullanarak bir FTP sunucusundan dosya indirme

ile oldukça kolaydır. kıvrılmak kullanarak FTP sunucusundan bir dosya indirme komutu -u seçenek. URL'yi girmeden önce kullanıcı adını ve şifreyi komuta girmelisiniz.

Sözdizimi:

curl -u [kullanıcı adı]:[şifre] [URL]

Örnek olarak, çevrimiçi bir genel FTP kullanacağım.

Örnek:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Toplam Alınan % Xferd Ortalaması Hız Zaman Zaman Zaman Mevcut Dload Yükleme Toplam Harcanan Sol Hız 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Burada, 'adlı bir dosya indirdim.16-Eyl-20-16-0-0.csv' bu ftp sunucusundan aldım ve orijinal adıyla CWD'me kaydettim. İndirilen dosyayı kullanarak kontrol edeceğim ls emretmek.

gaurav@ubuntu:~/workspace$ ls -al toplam 1092 drwxrwxr-x 3 gaurav gaurav 4096 16 Eylül 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 16 Eyl 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16 Eyl 16:15 16-Eyl-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 16 Eylül 11:45 ath.html gaurav@ubuntu:~/workspace$

CURL kullanarak birden fazla dosyayı birlikte indirme

kullanarak aynı anda birden fazla dosya indirme kıvrılmak komut çok basit bir iştir. sen sadece kullan seçeneği ile kıvrılmak yukarıdaki bloklarda gerçekleştirdiğimiz şekilde benzer komut.

Sözdizimi:

curl -O [URL-1] -O [URL-2] -O[URL-n]

Örnek:

gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Toplam Alınan % % Xferd Ortalama Hız Süre Süre Süre Geçerli Dload Yükleme Toplam Harcanan Sol Hız 100 63500 100 63500 0 0 55458 0 0:00 :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/workspace $ 

Bu örnekte Ubuntu deposundan iki farklı paket indirdim.

Çıktı:

gaurav@ubuntu:~/workspace$ ls -al toplam 9596 drwxrwxr-x 3 gaurav gaurav 4096 16 Eylül 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 16 Eyl 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16 Eyl 16:15 16-Eyl-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 16 Eylül 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 16 Eylül 16:29 apache2_2.4.29. orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 16 Eylül 11:45 ath.html gaurav@ubuntu:~/workspace$ 

İki paket curl komutu kullanılarak aynı anda indirilir.

CURL ile bir URL'nin HTTP başlıklarını getirme

Herhangi bir URL'nin HTTP Başlıkları alanları, kullanıcı aracısı, içerik türü, kodlama vb. gibi yararlı bilgiler içerir. Bu başlık dosyaları ayrıca ileti gövdesinde gönderilen nesne hakkında bilgi sağlar. İstek ve yanıtla ilgili ayrıntılar da bu HTTP başlıklarından elde edilir.

Kullanabilirsiniz kıvrılmak ile komut -BENCE bir URL'nin bu HTTP başlıklarını alma seçeneği.

Sözdizimi:

curl -I [URL]

Örnek:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 Tamam İçerik Türü: metin/html; charset=ISO-8859-1 P3P: CP="Bu bir P3P politikası değildir! Daha fazla bilgi için g.co/p3phelp adresine bakın." Tarih: 16 Eylül 2020 Çarşamba 11:17:00 GMT Sunucu: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Transfer-Kodlama: yığın Bitiş: 16 Eylül 2020 Çar 11:17:00 GMT Cache- Kontrol: özel Set-Çerez: 1P_JAR=2020-09-16-11; sona erer=Cum, 16-Ekim-2020 11:17:00 GMT; yol=/; etki alanı=.google.com; Set Cookie'yi elde edin: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; sona erer=Per, 18-Mart-2021 11:17:00 GMT; yol=/; etki alanı=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

Bu örnekte, ' HTTP başlıklarını getirdim.www.firefox.com‘.

CURL kullanarak C-Source Code alma

kullanma kıvrılmak ile komut --libcurl seçeneği C kaynak kodunu getirebilir. Bunun sıradan kullanıcılar için önemli bir faydası yoktur, ancak Sistem Programcıları, Güvenlik Analistleri ve Uygulama Geliştiricileri için çok yararlı olduğu kanıtlanabilir.

Sözdizimi:

curl [URL] > dosyaadı --libcurl [kod_dosyaadı]

Örnek:

Bu örnekte, URL'nin içeriğini getirdim her şey.nasıl ve adlı bir dosyada sakladı gy_ath.html. C kaynak kodu ayrı olarak depolanır. kaynak.c dosya.

curl //www.allthings.how > gy_ath.html --libcurl source.c 

Çıktı:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Toplam % Alınan % Xferd Ortalama Hız Süre Süre Geçerli Dload Yükleme Toplam Harcanan Sol Hız 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Şimdi indirilen dosyaları kontrol edelim.

gaurav@ubuntu:~/workspace$ ls -al toplam 404 drwxrwxr-x 3 gaurav gaurav 4096 16 Eylül 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 16 Eylül 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 16 Eylül 17:13 gy_ath.html -rw-r--r-- 1 gaurav gaurav 1535 16 Eylül 17:13 source.c gaurav@ubuntu:~/workspace$

bu kaynak.c dosya kaynak kodunu içerir. Bu, terminalde şu şekilde görüntülenebilir: kedi emretmek. Aşağıda verilen bloğa çıktıdan birkaç satır koydum.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* curl komut satırı aracı tarafından oluşturulan örnek kod ********** * Tüm curl_easy_setopt() seçenekleri belgelenmiştir adresinde: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html **************************************** ****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; CURL *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, "//www.allthings.how"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

Bir URL'ye erişmek için CURL'de bir proxy kullanma

Giriş bölümünde tartışıldığı gibi, kıvrılmak komutu, FTP, SMTP, HTTPS, SOCKS vb. gibi geniş bir protokol yelpazesini destekler. Bazen dosya aktarımı için bir proxy sunucusu kullanmak, aktarım hızınızı artırmak ve ayrıca kimliğinizi korumak istediğinizde önemli hale gelir. kıvrılmak komutunu ekleyerek dosyaları proxy sunucusu üzerinden aktarmak için kolayca kullanılabilir. -x buna seçenek.

Örnek:

curl -x [proxy_address]:[port] [URL]

Yukarıdaki örnekte, proxy'nizin kimlik doğrulama gerektirmediğini varsaydım. Proxy, aktarımı başlatmak için kimlik doğrulama gerektiriyorsa, aşağıdaki komutu kullanabilirsiniz.

curl -u [kullanıcı adı]:[parola] -x [proxy_address]:[port] [URL]

Bu basit yöntemi kullanarak, dosyaları bir proxy sunucusu üzerinden seçenekli olarak aktarabiliriz. -x ile kullanılır kıvrılmak emretmek.

Çözüm

Bu kısa eğitimde, nasıl yapılacağını öğrendik kıvrılmak komutu, içeriği doğrudan terminalinizden indirmenize yardımcı olur. Ayrıca bu komutla çeşitli görevler için kullanılabilecek farklı seçenekleri de öğrendik.