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çenek | Açıklama |
-u | FTP sunucusundan dosya indirmek için |
-C | kesintiye uğramış bir indirmeyi sürdürmek için |
-Ö | sonucunu kaydetmek için kıvrılmak önceden tanımlanmış bir dosya adıyla komut |
-BENCE | tanımlanmış bir URL'nin HTTP başlıklarını almak için |
-Ö | sonucunu kaydetmek için kıvrılmak orijinal dosya adıyla komut |
--libcurl | kullanan C kaynak kodunun çıktısını almak için libcurl belirtilen seçenek için |
-x | URL'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.