GNU/Linux >> Belajar Linux >  >> Linux

15+ contoh untuk perintah Linux cURL

Dalam tutorial ini, kita akan membahas perintah cURL di Linux. Ikuti terus saat kami memandu Anda melalui fungsi utilitas canggih ini dengan contoh untuk membantu Anda memahami semua kemampuannya.

Anda dapat menggunakan perintah cURL untuk mengunduh atau mengunggah data ke server, menggunakan salah satu dari 20+ protokol yang didukungnya. Data ini bisa berupa file, pesan email, atau halaman web.

Apa itu perintah cURL?

cURL adalah alat yang ideal untuk berinteraksi dengan situs web atau API, mengirim permintaan, dan menampilkan respons ke terminal atau mencatat data ke file. Terkadang Anda dapat menggunakannya sebagai bagian dari skrip yang lebih besar, menyerahkan data ke fungsi lain untuk diproses lebih lanjut.

Karena penggunaan utama cURL adalah untuk mengambil/mengunduh file dari server. Ia melakukan fungsi ini dengan baik, tetapi terkadang perintah wget lebih baik untuk pekerjaan itu.

Kami akan membahas beberapa perbedaan dan persamaan antara wget dan cURL nanti di artikel ini.

Kami akan menunjukkan cara menggunakan cURL di bagian di bawah ini.

Unduh file

Perintah paling dasar yang dapat kita berikan ke cURL adalah mengunduh situs web atau file. cURL akan menggunakan HTTP sebagai protokol defaultnya kecuali kami menentukan protokol yang berbeda. Untuk mengunduh situs web, cukup jalankan perintah ini:

$ curl http://www.google.com

Tentu saja, masukkan situs web atau halaman apa pun yang ingin Anda ambil.

Melakukan perintah dasar seperti ini tanpa opsi tambahan jarang berguna karena ini hanya memberi tahu cURL untuk mengambil kode sumber halaman yang Anda berikan.

Ketika kami menjalankan perintah kami, terminal kami diisi dengan HTML dan kode skrip web lainnya – bukan sesuatu yang sangat berguna bagi kami dalam formulir ini.

Mari unduh situs web sebagai dokumen HTML, dengan begitu konten dapat ditampilkan. Tambahkan opsi –output ke cURL untuk mencapai ini.

$ curl www.likegeeks.com --output likegeeks.html

Sekarang kita dapat membuka situs web yang kita unduh dan menampilkannya di browser web.

Jika Anda ingin mengunduh file online, perintahnya hampir sama. Tapi pastikan untuk menambahkan opsi –output ke cURL seperti yang kita lakukan pada contoh di atas.

Jika Anda gagal melakukannya, cURL akan mengirimkan output biner dari file online ke terminal Anda, yang kemungkinan besar akan menyebabkan malfungsi.

Berikut tampilannya saat kami memulai pengunduhan dokumen word 500KB.

Dokumen kata mulai diunduh, dan itu menunjukkan kemajuan pengunduhan di terminal. Saat unduhan selesai, file akan tersedia di direktori tempat kita menyimpannya.

Dalam contoh ini, kami tidak menentukan direktori, jadi file disimpan ke direktori kerja kami saat ini (direktori tempat kami menjalankan perintah cURL).

Juga, apakah Anda memperhatikan opsi -L yang kami tentukan dalam perintah cURL kami? Itu diperlukan untuk mengunduh file ini, dan kami membahas fungsinya di bagian selanjutnya.

Ikuti pengalihan

Jika Anda mendapatkan output kosong saat mencoba cURL situs web, itu mungkin berarti situs web tersebut memberi tahu cURL untuk mengarahkan ulang ke URL yang berbeda. Secara default, cURL tidak akan mengikuti pengalihan, tetapi Anda dapat memberitahukannya dengan tombol -L.

$ curl -L www.likegeeks.com

Dalam penelitian kami untuk artikel ini, kami merasa perlu untuk menentukan -L di sebagian besar situs web, jadi pastikan untuk mengingat trik kecil ini. Anda bahkan mungkin ingin menambahkannya ke sebagian besar perintah cURL Anda secara default.

Hentikan dan lanjutkan unduhan

Jika unduhan Anda terganggu, atau jika Anda perlu mengunduh file besar tetapi tidak ingin melakukan semuanya dalam satu sesi, cURL menyediakan opsi untuk menghentikan dan melanjutkan transfer.

Untuk menghentikan transfer secara manual, Anda cukup mengakhiri proses cURL dengan cara yang sama seperti Anda menghentikan hampir semua proses yang sedang berjalan di terminal Anda, dengan kombinasi ctrl+c.

Unduhan kami telah dimulai tetapi terputus dengan ctrl+c, sekarang mari kita lanjutkan dengan sintaks berikut:

$ curl -C - example.com/some-file.zip --output MyFile.zip

Sakelar -C adalah yang melanjutkan transfer file kami tetapi juga memperhatikan bahwa ada tanda hubung (-) langsung setelahnya. Ini memberitahu cURL untuk melanjutkan transfer file tetapi untuk melihat terlebih dahulu bagian yang sudah diunduh untuk melihat byte terakhir yang diunduh dan menentukan di mana untuk melanjutkan.

Transfer file kami dilanjutkan dan kemudian melanjutkan untuk menyelesaikan pengunduhan dengan sukses.

Tentukan batas waktu

Jika Anda ingin cURL mengabaikan apa yang dilakukannya setelah jangka waktu tertentu, Anda dapat menentukan batas waktu dalam perintah. Ini sangat berguna karena beberapa operasi di cURL tidak memiliki batas waktu secara default, jadi harus ditentukan jika Anda tidak ingin itu terhenti tanpa batas.

Anda dapat menentukan waktu maksimum untuk mengeksekusi perintah dengan sakelar -m. Ketika waktu yang ditentukan telah berlalu, cURL akan keluar dari apa pun yang dilakukannya, meskipun sedang mengunduh atau mengunggah file.

cURL mengharapkan waktu maksimum Anda ditentukan dalam hitungan detik. Jadi, untuk timeout setelah satu menit, perintahnya akan terlihat seperti ini:

$ curl -m 60 example.com

Jenis batas waktu lain yang dapat Anda tentukan dengan cURL adalah jumlah waktu yang dihabiskan untuk menghubungkan. Ini membantu memastikan bahwa cURL tidak menghabiskan banyak waktu untuk mencoba menghubungi host yang offline atau tidak dapat dijangkau.

Ia menerima detik sebagai argumen:

$ curl --connect-timeout 60 example.com

Menggunakan nama pengguna dan kata sandi

Anda dapat menentukan nama pengguna dan kata sandi dalam perintah cURL dengan sakelar -u. Misalnya, jika Anda ingin mengautentikasi dengan server FTP, sintaksnya akan terlihat seperti ini:

$ curl -u username:password ftp://example.com

Anda dapat menggunakan ini dengan protokol apa pun, tetapi FTP sering digunakan untuk transfer file sederhana seperti ini.

Jika kita ingin mendownload file yang ditampilkan pada screenshot di atas, kita cukup mengeluarkan perintah yang sama tetapi menggunakan path lengkap ke file tersebut.

$ curl -u username:password ftp://example.com/readme.txt

Gunakan proxy

Sangat mudah untuk mengarahkan cURL untuk menggunakan proxy sebelum terhubung ke host. cURL akan mengharapkan proxy HTTP secara default kecuali jika Anda menentukan sebaliknya.

Gunakan sakelar -x untuk menentukan proxy. Karena tidak ada protokol yang ditentukan dalam contoh ini, cURL akan menganggapnya sebagai proxy HTTP.

$ curl -x 192.168.1.1:8080 http://example.com

Perintah ini akan menggunakan 192.168.1.1 pada port 8080 sebagai proxy untuk terhubung ke example.com.

Anda dapat menggunakannya dengan protokol lain juga. Berikut adalah contoh tampilan menggunakan proxy HTTP untuk cURL ke server FTP dan mengambil file.

$ curl -x 192.168.1.1:8080 ftp://example.com/readme.txt

cURL mendukung banyak jenis proxy dan opsi lain untuk digunakan dengan proxy tersebut, tetapi memperluas lebih jauh akan berada di luar cakupan panduan ini. Lihat halaman manual cURL untuk informasi lebih lanjut tentang tunneling proxy, proxy SOCKS, otentikasi, dll.

Unduh file berukuran besar yang terpotong

Kami telah menunjukkan bagaimana Anda dapat menghentikan dan melanjutkan transfer file, tetapi bagaimana jika kami ingin cURL hanya mengunduh sebagian file? Dengan begitu, kita dapat mengunduh file besar dalam beberapa bagian.

Dimungkinkan untuk mengunduh hanya bagian tertentu dari file, jika Anda perlu tetap berada di bawah batas unduhan atau sesuatu seperti itu. Anda dapat menggunakan flag –range untuk melakukannya.

Anda harus menulis ukuran dalam byte. Jadi jika kita ingin mendownload file .iso Ubuntu terbaru dalam potongan 100 MB, perintah pertama kita akan terlihat seperti ini:

$ curl --range 0-99999999 http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso ubuntu-part1

Perintah kedua perlu mengambil byte berikutnya dan mengunduh potongan 100 MB lainnya.

$ curl --range 0-99999999 http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso ubuntu-part1
$ curl --range 100000000-199999999 http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso ubuntu-part2

Ulangi proses ini hingga cURL mengunduh semua potongan. Langkah terakhir adalah menggabungkan potongan menjadi satu file, yang dapat dilakukan dengan perintah cat.

$ cat ubuntu-part? > ubuntu-18.04.3-desktop-amd64.iso

Sertifikat klien

Untuk mengakses server menggunakan otentikasi sertifikat alih-alih otentikasi dasar, Anda dapat menentukan file sertifikat dengan opsi –cert.

$ curl --cert path/to/cert.crt:password ftp://example.com

cURL memiliki banyak opsi untuk format file sertifikat.

Ada lebih banyak opsi terkait sertifikat juga:–cacert, –cert-status, –cert-type, dll. Lihat halaman manual untuk daftar lengkap opsi.

CURL senyap

Jika Anda ingin menekan pengukur kemajuan dan pesan kesalahan cURL, sakelar -s menyediakan fitur itu. Itu masih akan menampilkan data yang Anda minta, jadi jika Anda ingin perintahnya menjadi 100% diam, Anda harus mengarahkan output ke file.

Gabungkan perintah ini dengan flag -O untuk menyimpan file di direktori kerja Anda saat ini. Ini akan memastikan bahwa cURL kembali dengan 0 keluaran.

$ curl -s -O http://example.com

Atau, Anda dapat menggunakan opsi –output untuk memilih tempat menyimpan file dan menentukan nama.

$ curl -s http://example.com --output index.html

Dapatkan header

Meraih header alamat jarak jauh sangat sederhana dengan cURL, Anda hanya perlu menggunakan opsi -I.

$ curl -I example.com

Jika Anda menggabungkan ini dengan opsi –L, cURL akan mengembalikan header dari setiap alamat yang dialihkan.

$ curl -I -L example.com

Beberapa header

Anda dapat meneruskan header ke cURL dengan opsi -H. Dan untuk melewati beberapa header, Anda hanya perlu menggunakan opsi -H beberapa kali. Ini contohnya:

$ curl -H 'Connection: keep-alive' -H 'Accept-Charset: utf-8 ' http://example.com

Poskan (unggah) file

POST adalah cara umum bagi situs web untuk menerima data. Misalnya, ketika Anda mengisi formulir online, ada kemungkinan besar bahwa data dikirim dari browser Anda menggunakan metode POST. Untuk mengirim data ke situs web dengan cara ini, gunakan opsi -d.

$ curl -d 'name=geek&location=usa' http://example.com

Untuk mengunggah file, bukan teks, sintaksnya akan terlihat seperti ini:

$ curl -d @filename http://example.com

Gunakan tanda -d sebanyak yang Anda butuhkan untuk menentukan semua data atau nama file berbeda yang Anda coba unggah.

Anda dapat menggunakan opsi -T jika Anda ingin mengunggah file ke server FTP.

$ curl -T myfile.txt ftp://example.com/some/directory/

Kirim email

Mengirim email hanyalah mengunggah data dari komputer Anda (atau perangkat lain) ke server email. Karena cURL dapat mengunggah data, kami dapat menggunakannya untuk mengirim email. Ada banyak opsi, tetapi inilah contoh cara mengirim email melalui server SMTP:

$ curl smtp://mail.example.com --mail-from [email protected] --mail-rcpt [email protected] --upload-file email.txt

Anda perlu memformat file email Anda dengan benar. Sesuatu seperti ini:

$ cat email.txt

From: Web Administrator <[email protected]>

To: John Doe <[email protected]>

Subject: An example email

Date: Sat, 7 Dec 2019 02:10:15




John,

Hope you have a great weekend.

-Admin

Seperti biasa, opsi yang lebih terperinci dan khusus dapat ditemukan di halaman manual cURL.

Baca pesan email

cURL mendukung IMAP (dan IMAPS) dan POP3, Anda dapat menggunakan keduanya untuk mengambil pesan email dari server email.

Login menggunakan IMAP seperti ini:

$ curl -u username:password imap://mail.example.com

Perintah ini akan mencantumkan kotak surat yang tersedia, tetapi tidak menampilkan pesan tertentu. Untuk melakukannya, tentukan UID pesan dengan opsi –X.

$ curl -u username:password imap://mail.example.com -X 'UID FETCH 1234'

Perbedaan antara cURL dan wget

Terkadang orang membingungkan cURL dan wget karena keduanya mampu mengambil data dari server. Tapi ini adalah satu-satunya kesamaan yang mereka miliki.

Kami telah menunjukkan dalam artikel ini kemampuan cURL. wget menyediakan serangkaian fungsi yang berbeda. wget adalah alat terbaik untuk mengunduh situs web dan mampu melintasi direktori dan tautan secara rekursif untuk mengunduh seluruh situs.

Untuk mengunduh situs web, gunakan wget. Jika menggunakan beberapa protokol selain HTTP atau HTTPS, atau untuk mengunggah file, gunakan cURL. cURL juga merupakan pilihan yang baik untuk mengunduh file individual dari web, meskipun wget juga dapat melakukannya dengan baik.

Saya harap Anda menemukan tutorial yang bermanfaat. Terus kembali.


Linux
  1. Perintah killall Linux untuk Pemula (8 Contoh)

  2. 15+ contoh untuk perintah pembaruan yum

  3. 7 Contoh Perintah Linux df

  1. 12 Contoh Perintah IP untuk Pengguna Linux

  2. Contoh perintah curl Linux – Bagian 2

  3. Contoh perintah curl Linux – Bagian 1

  1. Perintah Curl di Linux dengan Contoh

  2. Perintah dir Linux untuk pemula (10 contoh)

  3. Perintah Linux rm Dijelaskan untuk Pemula (8 Contoh)