GNU/Linux >> Belajar Linux >  >> Linux

Perintah cURL Paling Banyak Digunakan Dan Populer Dalam Praktek

cURL, kependekan dari "Klien untuk URL", adalah alat baris perintah untuk mentransfer data menggunakan berbagai protokol. Artikel ini bertujuan untuk memberikan perintah yang banyak digunakan dan sebagai referensi praktis.

Daftar Isi

  • Unduh Satu File
  • Simpan Output cURL ke File
  • Sembunyikan Bilah Kemajuan
  • Ambil Banyak File Sekaligus
  • Ikuti Header Lokasi HTTP dengan Opsi -L
  • Lanjutkan/Lanjutkan Unduhan Sebelumnya
  • Gunakan Proxy dengan atau Tanpa Otentikasi
  • Tajuk HTTP Kueri
  • Unggah File ke Server FTP
  • Unduh File dari Server FTP
  • Daftar/Unduh Menggunakan Rentang
  • Informasi Lebih Lanjut Menggunakan Opsi Verbose dan Trace
  • Kirim Email Menggunakan Protokol SMTP
  • Pemeriksaan Dukungan HTTP/2
  • Simulasikan Metode HTTP
  • Buat Permintaan POST dengan Parameter
  • Kesimpulan

Anda dapat memanggil curl perintah dari terminal Anda tanpa memikirkan cara untuk menginstalnya, karena sudah diinstal sebelumnya di sebagian besar Sistem Operasi berbasis Linux.

Ada banyak kasus penggunaan untuk curl, seperti:

  • Unggahan FTP
  • Dukungan proxy
  • Koneksi SSL
  • postingan HTTP

cURL juga mendukung penggunaan semua protokol berikut:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP , SMTPS, TELNET, dan TFTP.

Unduh Satu File

Perintah berikut akan mendapatkan konten URL dan menampilkannya di STDOUT (yaitu di terminal Anda).

curl https://www.gnu.org

Untuk menyimpan output dalam file, Anda mengarahkannya seperti yang ditunjukkan di bawah ini. Ini juga akan menampilkan beberapa statistik unduhan tambahan.

curl https://www.gnu.org > gnu-org.html

Simpan Output cURL ke File

Kita dapat menyimpan hasil dari perintah cURL ke sebuah file dengan menggunakan -o /-O pilihan.

  • -o (huruf kecil o) hasilnya akan disimpan dalam nama file yang disediakan di baris perintah
  • -O (huruf besar O) nama file di URL akan diambil dan akan digunakan sebagai nama file untuk menyimpan hasilnya
curl -o my-gettext.html https://www.gnu.org/software/gettext/manual/gettext.html 

Hasilnya, sekarang halaman gettext.html akan disimpan dalam file bernama my-gettext.html . Anda juga dapat mencatat bahwa saat menjalankan cURL dengan -o pilihan, ini akan menampilkan pengukur kemajuan untuk unduhan sebagai berikut.

Saat Anda menggunakan cURL -O , itu akan menyimpan konten dalam file bernama 'gettext.html' itu sendiri di mesin lokal.

curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Catatan:Saat curl harus menulis data ke terminal, itu menonaktifkan Pengukur Kemajuan, untuk menghindari kebingungan dalam pencetakan. Kita bisa menggunakan > , -o , -O opsi untuk memindahkan hasilnya ke file.

Sembunyikan Bilah Kemajuan

cURL secara default menunjukkan bilah kemajuan. Untuk menyembunyikannya -s (--silent )pilihan dapat digunakan.

curl -s -O http://www.gnu.org/software/gettext/manual/gettext.html

Jika karena alasan tertentu tidak berfungsi di platform Anda, Anda selalu dapat mengarahkan ulang stderr ke /dev/null :

curl -O http://www.gnu.org/software/gettext/manual/gettext.html 2>/dev/null

Ambil Beberapa File Sekaligus

Tentu saja, kita dapat mengunduh banyak file sekaligus dengan menentukan URL di baris perintah.

curl -O https://www.gnu.org/software/gettext/manual/html_node/index.html -O https://www.gnu.org/software/gettext/manual/gettext.html 

Ikuti Header Lokasi HTTP dengan Opsi -L

Namun secara default cURL tidak mengikuti header Lokasi HTTP. Ini juga disebut sebagai Redirect. Ketika halaman web yang diminta dipindahkan ke tempat lain, maka header Lokasi HTTP akan dikirim sebagai Respons dan itu akan memiliki tempat halaman web yang sebenarnya berada.

Kami dapat memaksa cURL untuk mengikuti pengalihan menggunakan -L pilihan, seperti yang ditunjukkan di bawah ini.

curl -L https://www.google.com

Lanjutkan/Lanjutkan Unduhan Sebelumnya

Menggunakan cURL -C pilihan, Anda dapat melanjutkan unduhan yang sudah dihentikan karena alasan tertentu. Ini akan membantu saat Anda mengunduh file besar, dan unduhan terputus.

Jika kita mengatakan -C - , kemudian cURL akan menemukan dari mana untuk memulai melanjutkan unduhan. Kami juga dapat memberikan offset -C <offset> . Byte offset yang diberikan akan dilewati dari awal untuk file sumber.

Mulai unduhan besar menggunakan curl , dan tekan Ctrl-C untuk menghentikannya di antara unduhan.

curl -O https://www.gnu.org/software/gettext/manual/gettext.html

Menggunakan curl -C - , kita dapat melanjutkan pengunduhan dari bagian yang ditinggalkan sebelumnya.

curl -C - -O https://www.gnu.org/software/gettext/manual/gettext.html

Gunakan Proxy dengan atau Tanpa Otentikasi

Jika Anda berada di belakang server proxy yang mendengarkan pada port 8080 di proxy.domainanda.com, lakukan:

curl -x proxy.yourdomain.com:8080 -U user:password -O https://www.gnu.org/software/gettext/manual/gettext.html 

tempat Anda dapat melewati -U user:password jika proxy Anda tidak memerlukan otentikasi.

Header HTTP Kueri

Header HTTP memungkinkan server web jarak jauh mengirim informasi tambahan tentang dirinya sendiri bersama dengan permintaan sebenarnya. Selain itu, ini memberikan detail kepada klien tentang bagaimana permintaan ditangani.

Untuk menanyakan header HTTP dari situs web, lakukan:

curl -I https://www.gnu.org
HTTP/1.1 200 OK
Date: Mon, 13 Jul 2020 21:22:32 GMT
Server: Apache/2.4.7
Content-Location: home.html
Vary: negotiate,accept-language,Accept-Encoding
TCN: choice
Strict-Transport-Security: max-age=63072000
Access-Control-Allow-Origin: (null)
Accept-Ranges: bytes
Cache-Control: max-age=0
Expires: Mon, 13 Jul 2020 21:22:32 GMT
Content-Type: text/html
Content-Language: en

Unggah File ke Server FTP

cURL juga dapat digunakan untuk mengunggah file ke server FTP dengan -T pilihan.

curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.server.com

Akibatnya, perintah di atas akan mengunggah file bernama myfile.txt ke server FTP. Anda juga dapat mengunggah beberapa file sekaligus menggunakan operasi jangkauan.

curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.server.com

Secara opsional kita dapat menggunakan . untuk mendapatkan input dari STDIN dan mentransfer ke remote.

curl -u ftpuser:ftppass -T - ftp://ftp.server.com/mynewfile.txt

Perintah di atas akan mendapatkan input dari pengguna dari Input Standar dan menyimpan konten di server ftp dengan nama mynewfile.txt .

Anda dapat memberikan satu -T untuk setiap URL dan pasangan menentukan apa yang akan diunggah di mana.

Unduh File dari Server FTP

cURL juga dapat digunakan untuk mengunduh file dari server FTP. Jika jalur FTP yang diberikan adalah direktori, secara default ia akan mencantumkan file di bawah direktori tertentu.

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/mysql.php

Perintah di atas akan mendownload mysql.php file dari server ftp dan simpan di direktori lokal.

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Di sini, URL yang diberikan merujuk ke direktori. Jadi cURL akan mencantumkan semua file dan direktori di bawah URL yang diberikan.

Daftar/Unduh Menggunakan Rentang

cURL mendukung rentang yang akan diberikan dalam URL. Saat rentang diberikan, file yang cocok dengan rentang tersebut akan diunduh. Akan sangat membantu untuk mengunduh paket dari situs mirror FTP.

curl http://ftp.us.debian.org/debian/pool/main/[a-z]/

Perintah di atas akan menampilkan semua paket dari a-z rentang di terminal.

Informasi Lebih Lanjut Menggunakan Opsi Verbose dan Trace

Anda dapat mengetahui apa yang terjadi menggunakan -v pilihan. Opsi ini mengaktifkan mode verbose dan akan mencetak detailnya.

curl -v https://www.gnu.org

Perintah about akan menampilkan sebagai berikut:

*   Trying 209.51.188.148:443...
* Connected to www.gnu.org (209.51.188.148) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=emacs.org
*  start date: Jun 17 09:07:40 2020 GMT
*  expire date: Sep 15 09:07:40 2020 GMT
*  subjectAltName: host "www.gnu.org" matched cert's "www.gnu.org"
*  issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
*  SSL certificate verify ok.
> GET / HTTP/1.1
> Host: www.gnu.org
> User-Agent: curl/7.71.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 13 Jul 2020 21:56:04 GMT
< Server: Apache/2.4.7
< Content-Location: home.html
< Vary: negotiate,accept-language,Accept-Encoding
< TCN: choice
< Strict-Transport-Security: max-age=63072000
< Access-Control-Allow-Origin: (null)
< Accept-Ranges: bytes
< Cache-Control: max-age=0
< Expires: Mon, 13 Jul 2020 21:56:04 GMT
< Transfer-Encoding: chunked
< Content-Type: text/html
< Content-Language: en
< 
...

Kirim Email Menggunakan Protokol SMTP

cURL juga dapat digunakan untuk mengirim email menggunakan protokol SMTP. Anda harus menentukan from-address, to-address, dan mailserver ip-address seperti yang ditunjukkan di bawah ini.

curl --mail-from [email protected] --mail-rcpt [email protected] smtp://mailserver.com 

Setelah perintah di atas dimasukkan, itu akan menunggu pengguna untuk memberikan data ke email. Setelah Anda membuat pesan, ketik . (titik) sebagai baris terakhir, yang akan segera mengirimkan email.

Pemeriksaan Dukungan HTTP/2

Jika Anda memiliki rilis cURL terbaru, Anda dapat menggunakan --http2 opsi untuk memeriksa apakah URL tertentu mendukung protokol HTTP/2 baru. Oleh karena itu, jika situs mendukung HTTP/2, Anda akan melihat HTTP/2.0 200 di header, bukan HTTP/1.1 200 .

curl -I --http2 https://www.opensource.com

Simulasikan Metode HTTP

 GET metode yang digunakan untuk mengambil sumber daya dari URL tertentu. Sederhana curl https://www.gnu.org/ perintah akan menggunakan GET sebagai metode HTTP default, namun juga dapat ditentukan menggunakan --request GET atau -X GET .

curl --request GET https://www.gnu.org

 POST metode ini digunakan untuk mengirim informasi ke server web (misalnya komentar di forum). Ini dapat ditentukan menggunakan --request POST atau -X POST .

curl --request POST https://yourwebsite.com

 DELETE metode menghapus sumber daya dari server web yang terkait dengan URL tertentu. Ini dapat ditentukan menggunakan --request DELETE atau -X DELETE .

curl --request DELETE https://yourwebsite.com

 PUT metode membuat atau mengganti sumber daya berdasarkan data yang dikirimkan klien ke server web. (misalnya membuat halaman web baru atau memperbarui yang sudah ada). Ini dapat ditentukan menggunakan --request PUT atau -X PUT .

curl --request PUT https://yourwebsite.com

Buat Permintaan POST dengan Parameter

Perintah berikut akan mengirimkan animal1 dan animal2 parameter, bersama dengan nilainya yang sesuai, ke https://yourdomain.com/animals.php

curl --request POST --data "animal1=cat&animal2=dog" https://yourdomain.com/animals.php

Anda dapat menggunakan tip ini untuk mensimulasikan perilaku formulir HTML biasa.

Kesimpulan

Dalam postingan ini, kami menjelaskan apa itu cURL dan apa yang dapat Anda lakukan dengan beberapa perintah dasar. Untuk mempelajari lebih lanjut tentang cURL, Anda dapat mengunjungi situs web proyek.


Linux
  1. Perintah Linux - Gambaran Umum dan Contoh

  2. 40 Perintah Dasar Linux yang Sering Digunakan

  3. Alat Pengujian Penetrasi Paling Populer Di 2022

  1. Perintah reboot dan shutdown Linux

  2. Tutorial Subversion:10 Perintah SVN yang Paling Banyak Digunakan dengan Contoh

  3. perintah ip vs ifconfig pro dan kontra

  1. 10 Tema Ikon Terbaik dan Terpopuler untuk Linux

  2. Perintah Linux:pekerjaan, bg, dan fg

  3. Perintah Nginx Paling Berguna di Sistem Linux