Ada beberapa cara untuk mengontrol dan berkomunikasi dengan data di terminal Linux dan curl
adalah cara terbaik untuk melakukannya. curl
adalah alat baris perintah yang dapat Anda gunakan untuk mentransfer data dari atau ke server. Anda dapat menggunakan curl
perintah untuk mendownload dan mengupload data menggunakan salah satu protokol yang didukung, yang terdiri dari FTP, HTTP, SFTP, HTTPS, dan SCP. Curl memiliki berbagai fitur, termasuk kemampuan untuk membatasi bandwidth, melanjutkan transfer, autentikasi pengguna, dukungan untuk server proxy, dan banyak lagi.
Di bawah ini adalah daftar protokol yang saat ini didukung oleh curl
:
- FTP/FTPS
- Gopher
- HTTP
- HTTP/2
- SMTP/SMTPS
- IMAP/IMAPS
- UKM
- POP3/POP3S
- RTMP
- SCP
- SFTP
- RTSP
- LDAP/LDAPS
- Telnet dan TFTP
- RTSP
Fitur tambahan meliputi:
- Otentikasi pengguna dan sandi
- Dasar
- Digest Plain
- NTLM
- CRAM-MD5
- Kerberos
- Negosiasi
- Kue
- Penerowongan proxy
- Lanjutkan operasi transfer file
- Sertifikat SSL
- Unggahan formulir HTTP dan HTTPS
wget
dan curl
sering dibandingkan karena fungsinya tumpang tindih sampai tingkat tertentu. Kedua alat dapat mengambil konten dari Internet tetapi wget memiliki lebih banyak fitur seperti web scraping, download rekursif serta lebih ramah pengguna. wget dianggap sebagai opsi yang lebih baik jika Anda hanya ingin mengunduh file di terminal.
Mempelajari curl
dasar-dasar perintah akan membantu Anda dalam mengunggah dan mengunduh file dengan prosedur otentikasi HTTP tingkat lanjut. Selanjutnya, wget
hanya mendukung FTP dan HTTP(S), sedangkan curl
mendukung lebih banyak protokol.
Itu saja tentang curl
memerintah. Sekarang mari kita langsung ke terminal.
Menginstal 'curl' di Linux
Jika Anda tidak memiliki curl
di sistem Linux Anda, Instal dengan menggunakan perintah berikut. Jika tidak, lewati langkah penginstalan dan lanjutkan ke contoh.
sudo apt-get update
sudo apt-get install curl -y
Sekarang, verifikasi curl
tersedia di sistem Anda dengan memeriksa versinya:
curl --version
Contoh penggunaan 'curl'
Kita bisa melakukan banyak hal keren menggunakan curl
. Mari kita lihat beberapa di antaranya.
Mendapatkan IP eksternal server
Ada sumber daya yang luar biasa di internet, yang memungkinkan Anda mendapatkan alamat IP internet Anda – https://ifconfig.me (dinamai dengan kejayaan utilitas konfigurasi jaringan Linux yang terkenal – ifconfig
).
Jika Anda mengirim permintaan HTTP ke situs itu menggunakan curl, itu akan mengembalikan alamat IP eksternal Anda di terminal dalam bentuk string sederhana:
curl https://ifconfig.me
Jadi, Anda dapat dengan mudah memasukkan hasil ini ke variabel bash:
MY_EXTERNAL_IP=$(curl -s https://ifconfig.me)
echo $MY_EXTERNAL_IP
Ini hasilnya:
Di sini, -s
argumen memungkinkan untuk menghindari keluaran kemajuan unduhan curl:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12 100 12 0 0 181 0 --:--:-- --:--:-- --:--:-- 181
Prakiraan cuaca
Apakah Anda ingin merasa diri Anda seperti peretas dan menampilkan informasi cuaca langsung di terminal? Anda dapat melakukannya menggunakan curl
!
curl http://wttr.in/LOCATION
Menyimpan output 'curl' ke file teks
Anda dapat menyimpan output dari curl
perintah ke file yang ditentukan.
Berikut ini contoh menyimpan output JSON API (StarWars demo API) ke file:
curl https://swapi.dev/api/planets/1/ -o Tatooine.json
curl
cukup pintar untuk mendeteksi unduhan file biner. Berikut ini contoh mengunduh salah satu perangkat lunak manajemen infrastruktur-sebagai-kode sumber terbuka paling populer Terraform (pelajari lebih lanjut tentang Terraform):
curl https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip -o terraform_0.15.0_linux_amd64.zip
Mengunduh banyak file
Anda dapat menggunakan curl
untuk mengunduh banyak file sekaligus. Cukup tambahkan -o
argumen sebanyak yang Anda butuhkan.
curl -o https://example.com/files/file-1 -o file-2 https://example.com/files/file-2 -o file-3 https://example.com/files/file-3
Membatasi kecepatan unduh
Fitur lain yang berguna dari curl
adalah pembatasan kecepatan download file. Anda dapat melakukannya dengan menggunakan --limit-rate
argumen dan menentukan tingkat kecepatan:
curl --limit-rate 1M -O https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip
Kecepatan yang diberikan diukur dalam byte/detik, kecuali sufiks ditambahkan. Menambahkan 'k' atau 'K' akan menghitung angka sebagai kilobyte, 'm' atau M' menjadikannya megabyte, sedangkan 'g' atau 'G' menjadikannya gigabyte.
Mengunduh daftar URL
Dalam contoh ini, kami akan mengunduh semua file yang tercantum dalam file teks. Untuk melakukan itu, Anda perlu menggunakan kombinasi xargs
dengan curl
perintah:
xargs -n 1 curl -O < urllists.txt
Ini hasilnya:
Otentikasi dasar
Anda dapat menggunakan -u
argumen untuk memberikan nama pengguna dan kata sandi untuk otentikasi HTTP dasar (otentikasi dasar):
curl -u username:password -O https://example.com/files/README
Mendapatkan header URL
Header HTTP adalah pasangan nilai kunci yang dipisahkan oleh titik dua yang berisi informasi seperti jenis konten sumber daya yang diminta, agen pengguna, pengkodean, dll. Dengan permintaan atau respons, header ditransfer antara klien dan server. Untuk mendapatkan informasi tajuk situs web apa pun, gunakan -I
argumen:
curl -I https://hands-on.cloud
Menggunakan cookie
Dalam permintaan berikutnya ke situs web yang sama, Anda mungkin perlu menggunakan cookie.
Untuk menyimpan cookie yang diterima dari server web, gunakan perintah berikut:
curl -s -o /dev/null -c google_cookies.txt 'https://www.google.com'
Berikut argumennya:
-s
– mode senyap, curl tidak mencetak informasi kemajuan unduhan-o /dev/null
– jangan mencetak keluaran halaman web ke terminal-c google_cookies.txt
– simpan informasi cookie ke file
Untuk menggunakan cookie yang diterima dari permintaan sebelumnya, gunakan perintah berikut:
curl -b google_cookies.txt 'https://www.google.com'
Memeriksa dukungan HTTP/2
Gunakan -I
, --http2
dan -s
opsi bersama untuk memverifikasi apakah situs yang ditentukan mendukung header HTTP/2:
curl -I --http2 -s https://hands-on.cloud/ | grep HTTP
Ringkasan
Dalam artikel ini, kami membahas contoh penggunaan curl
yang paling umum digunakan memerintah. Kami berharap, artikel ini akan memungkinkan Anda untuk memulai dengan utilitas yang kuat ini. Jika Anda menyukai artikel ini, tolong bantu kami untuk menyebarkannya ke seluruh dunia!