Cards

Curl əmri - quraşdırılması və istifadəsi

Tarixçə.

1990-cı illərin ortalarında, internet hələ başlanğıcda ikən, Daniel Stenberq adlı İsveçli bir proqramist, bugün “curl” olaraq bildiyimiz şeyə təkmilləşən bir proyektə start verdi.

İlk vaxtlar, bir veb səhifəsindən məzənnə məlumatlarını periodik olaraq endirir və İsveç Xronu ilə ABŞ dolları arasındaki məzənnə məlumatını IRC istifadəçilərinə göndərirdi.

Proyekt müvəffəqiyyətli oldu və vaxt keçdikcə müxtəlif protokollar, funksiyalar əlavə edildi.

İndi isə, sizə curl-un istifadəsi ilə əlaqədar bir neçə əmr barədə məlumat verəcəyik.

Quraşdırılması.

Əvvəlcə curl-u sistemimizə quraşdıraq.

# apt-get install curl   (Debian-Ubuntu bazalı sistemlərdə)
# yum install curl       (RHEL / CentOS / Fedora)
# zypper install curl    (OpenSUSE)
# pacman -Sy curl        (Arch, Manjaro)

 

Doğrulama edirik:

# dpkg -l | grep curl
# rpm -qa | grep curl
# zypper se curl
# pacman -Qi curl

 

İndi isə, curl-dan istifadəyə keçək.

1. Proqramın versiyasına baxış.

-v -–version olaraq müəyyən edilmiş variantlar, bizə sadəcə versiyanı yox, eyni zamanda dəstəklənən protokollar və hazırki versiyadaki funksiyalar barəsində də məlumat verir.

┌─[alliswell@parrot]─[~]
└──╼ $curl --version
curl 7.66.0 (x86_64-pc-linux-gnu) libcurl/7.66.0 OpenSSL/1.1.1d zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.39.2 librtmp/2.3
Release-Date: 2019-09-11
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

 

2. Faylın endirilməsi.

Hər hansı bir faylı endirmək üçün -O və ya -o parametrindən istifadə edirik. Fayl, proqramın işə salındığı direktoriyaya endiriləcəkdir.

$ curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
$ curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

 

3. Yarıda kəsilmiş endirilmənin davam etdirilməsi.

Əgər endirilmə hər hansı səbəbdən kəsilərsə (məs. CTRL+C ilə), -c – (tre c boşluq tre) parametrilə endirilməni qaldığı yerdən davam etdirə bilərik.

$ curl -C - -O http://yourdomain.com/yourfile.tar.gz

 

4. Bir neçə faylın eyni anda endirilməsi.

$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

 

5. URL-lərin fayldan endirilməsi.

Məsələn, bir neçə urldə hansısa endiriləcək fayllar varsa, həmin url-ləri bir fayla əlavə edərək, oradan eyni anda endirə bilərik. Bunun üçün xargs-dan istifadə edəcəyik.

$ xargs -n 1 curl -O < listurls.txt

 

6. İdentifikasiya ilə və ya identifikasiyasız proxy istifadə etmək

Əgər proxy.yourdomain.com 8080-ci portda proxy server arxasındasınızsa, o zaman bu şəkildə edin:

$ curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

Proxy identifikasiya istəmirsə, -U user:password hissəsini atlaya bilərsiniz.

 

7. HTTP header sorğulama.

$ curl -I datasec.az

 

8. Müəyyən parametrlərlə POST sorğulama.

$ curl --data "firstName=Anar&lastName=Abdullayev" https://yourdomain.com/info.php

 

9. İdentifikasiya ilə və ya identifikasiyasız şəkildə FTP serverdən faylın endirilməsi.

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

Əgər FTP server hər cür daxilolmanı qəbul edirsə, -u username:password hissəsini atlaya bilərsiniz.

 

10. FTP serverə istər identifikasiya ilə, istərsə də identifikasiyasız şəkildə faylın upload edilməsi.

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

 

11. Xüsusi user agent

User agent, HTTP sorğusu zamanı göndərilən informasiyanın bir hissəsidir. Bu, sorğulayanın sorğunu etmək üçün hansı brauzeri istifadə etdiyini göstərir. Hazırki curl versiyamızın default olaraq nə istifadə etdiyinə baxaq və sonra “I am a new web browser” ilə əvəz edək.

$ curl -I http://localhost --user-agent "I am a new web browser"

 

12. Veb sayt cookie-lərini saxlamaq.

Hər hansı bir sayta daxil olarkən komputerinizə hansı cookie-lərin endirildiyini aşağıdaki parametrlə görə və onu yaddaşda ayrıca fayl şəklində saxlaya bilərsiniz. Cat əmrindən istifadə edərək yaddaşda saxladığımız fayla baxış keçirə bilərik.

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

 

13. Veb sayt cookie-lərin göndərilməsi

Siz, əvvəlki sayt sorğusunda qəbul edilən cookie-ləri yeni sorğu zamanı da istifadə edə bilərsiniz.

$ curl --cookie cnncookies.txt https://www.cnn.com

 

14. Lokaldaki saytınıza domen adıyla baxış.

Əgər veb saytla məşğul olursunuzsa və lokalda hələ yayımlanmamış “yourdomain.com” saytınızı test etmək istəyirsinizə, curl-un resolve parametrindən istifadə edə bilərsiniz:

$ curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

 

15. Endirmə sürətinə limit qoyma.

Şəbəkənizin çox yüklənməməsi üçün curl ilə endirmə sürətinə limit qoya bilərsiniz.

$ curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O

 

 

24.11.2019 12:07
alliswell

blog comments powered by Disqus