Cara Menggunakan Perintah Curl di Linux

Panduan ekstensif yang menjelaskan penggunaan perintah curl untuk mengambil halaman web dan mengunduh file langsung dari terminal Anda

ikal perintah adalah salah satu yang lebih menarik utilitas baris perintah Linux yang ditawarkan Anda. perintah curl memungkinkan pengguna untuk mengambil file dari server.

curl adalah pilihan populer dari pengembang aplikasi dan pengguna Linux yang sering karena dukungannya untuk sejumlah protokol seperti RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FILE, GOPHER, LDAP, LDAPS, POP3, POP3S, dll.

perintah curl melakukan lebih dari sekadar mengambil halaman web untuk Anda. Mengetahui opsi yang tersedia dengan perintah ini membuatnya lebih fleksibel untuk Anda gunakan. Mari kita selami tutorial untuk mendapatkan pemahaman yang baik tentang penggunaan perintah curl menggunakan beberapa contoh singkat.

Instalasi

Sebelum menggunakan perintah curl, periksa apakah sudah terinstal di sistem Anda. Gunakan perintah curl –version untuk memeriksa apakah curl sudah diinstal.

Jika curl tidak diinstal, gunakan langkah-langkah berikut.

Pada sistem berbasis Ubuntu dan Debian, gunakan:

sudo apt-get update

sudo apt-get install curl

Pada distro RHEL, CentOs dan Fedora, gunakan:

sudo yum install curl

Sekarang gunakan perintah curl –version untuk memastikan bahwa itu diinstal dengan benar.

ikal –versi

Keluaran:

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 Tanggal Rilis: 24-01-2018 Protokol: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Fitur: AsynchDNS IDN IPv6 Berkas besar SSL GSS-API NTBLM SSL GSS-API libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL [ dilindungi email ] :~$

Sekarang kita siap untuk menggunakan perintah curl.

Opsi tersedia dengan perintah CURL

Mari kita lihat sekilas beberapa opsi menonjol yang tersedia dengan perintah curl.

Pilihan

Keterangan

-u

untuk mengunduh file dari server FTP

-C

untuk melanjutkan unduhan yang terputus

-Hai

untuk menyimpan hasil dari perintah curl dengan nama file yang telah ditentukan

-SAYA

untuk mendapatkan tajuk HTTP dari URL yang ditentukan

-HAI

untuk menyimpan hasil dari perintah curl dengan nama file asli

–libcurl

untuk menampilkan kode sumber C yang menggunakan libcurl untuk opsi yang ditentukan

-x

untuk menggunakan proxy untuk mengakses URL

-#

untuk menampilkan bilah kemajuan untuk menunjukkan status unduhan

Mengambil halaman web menggunakan CURL

keriting perintah, bila digunakan tanpa pilihan apapun, mengambil isi dari URL yang ditentukan dalam perintah.

Sintaksis:

ikal [URL]

Contoh:

curl https://allthings.how

Keluaran:

[ dilindungi email ] :~$ curl https://allthings.how <!DOCTYPE html> <html lang=”en-US” amp=”” i-amphtml-layout=”” i-amphtml-no-boilerplate=” ” transform=”self;v=1″> <head><meta charset=”UTF-8″><style amp-runtime=”” i-amphtml-version=”0120082903233002″>html{overflow-x:hidden! penting}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:not(.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not (.i-amphtml-inabox)>body{position:relative!important}html.i-amphtml-webview>body{overflow-x:hidden!important;overflow-y:visible!important;min-height:100vh!important;overflow-y:visible!important;min-height:100vh!important }html.i-amphtml-ios-embed-leg acy>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;overflow-y:auto!important;position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;right:0!important;bottom:0!important ;margin:0!important;display:block!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 solid transparent!important}#i-amphtml-wrapper+body {visibility:visible}#i-amphtml-wrapper+body.i-amphtml-lightbox-unsurt,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body [i-amphtml-lightbox].i-amphtml-lightbox-unsurt{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden! penting;melimpah-y:tersembunyi!impor tant}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}[subscriptions-dialog],body:not(.i-amphtml-subs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none !important}amp-experiment,amp-live-list>[update]{display:none}.i-amphtml-jank-meter{position:fixed;background-color:rgba(232,72,95,0.5);bottom :0;kanan:0;color:#fff;font-size:16px;z-index:1000;padding:5px}amp-list[resizable-children]>.i-amphtml-loading-container.amp-hidden{ display:none!important}amp-list [fetch-error],amp-list[load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list [load-more] [load-more-failed],amp-list[load-more] [load-more-loading]{display:none}amp-list[diffable] div[role=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[standalone]{background-color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story.amp-active>div,amp-story.i-amphtml-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([distance]):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]{position:fixed!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important; visibilitas: tersembunyi}

Di sini, konten halaman web diambil langsung ke terminal Anda sebagai kode sumber.

Anda dapat menggunakan opsi -o dan -O dengan perintah curl untuk menyimpan konten ini ke dalam file.

Ketika opsi -o digunakan, konten URL disimpan ke direktori Anda saat ini dengan nama file yang ditentukan pengguna.

Sintaksis:

curl -o [nama file_pengguna] [URL]

Contoh:

[email protected] :~/workspace$ curl -o ath.html https://allthings.how % Total % Diterima % Xferd Kecepatan Rata-rata Waktu Waktu Waktu Dload Saat Ini Unggah Total Kecepatan Kiri 100 199k 100 199k 0 0 58743 0 0: 00:03 0:00:03 –:–:– 58743 [ dilindungi email ] :~/workspace$ ls ath.html [ dilindungi email ] :~/workspace$

Dalam contoh ini, konten dari URL ‘allthings.how’ disimpan sebagai file HTML bernama ath.html di direktori kerja saya saat ini. Saat membuka file HTML ini, saya akan diarahkan ke halaman web yang disimpan.

Mengunduh file menggunakan perintah CURL

Menggunakan opsi -O dengan perintah curl juga menyimpan konten atau halaman web atau paket yang dapat diunduh sebagai file tetapi menyimpan file ini dengan nama aslinya.

Mari kita lihat ini melalui sebuah contoh:

Contoh:

Di sini saya telah menggunakan perintah curl dengan opsi -O untuk mengunduh paket Ubuntu bernama ‘ cherrytree_0.37.6-1.1_all.deb ‘ dari repositori paket Ubuntu.

[ dilindungi email ] :~/workspace$ curl -O http://kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Total % Diterima % Kecepatan Rata-rata Xferd Waktu Waktu Waktu Dload Saat Ini Unggah Total Menghabiskan Kecepatan Kiri 100 613rb 100 613k 0 0 220rb 0 0:00:02 0:00:02 –:–:– 220rb [email protected] :~/workspace$

Keluaran:

[ dilindungi email ] :~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb [ dilindungi email ] :~/workspace$

Jadi, paket tersebut sekarang diunduh dan disimpan di direktori kerja saat ini (CWD) dengan nama aslinya.

Menampilkan Bilah Kemajuan saat mengunduh file

Ada satu lagi modifikasi estetika yang tersedia saat menggunakan perintah curl untuk mengunduh file. Anda dapat melihat kemajuan unduhan file Anda dalam bentuk Bilah Kemajuan ke terminal Anda. Anda hanya perlu menambahkan opsi -# dengan perintah Anda untuk mengunduh file.

Mari kita lihat contoh tweak ini.

Sintaksis:

ikal -# -O [URL]

Contoh:

[ dilindungi email ] :~/workspace$ curl -# -O http://archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ##### ############################################################# ############################################################# ##################################### 100.0% [email protected] :~/workspace$

Keluaran:

[ dilindungi email ] :~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz [ dilindungi email ] :~/workspace$

Dalam output ini, Anda dapat mengamati bahwa saya telah mengunduh paket bernama ‘ emacs-defaults_47.0.tar.xz ‘ di CWD saya dan bilah kemajuan ditampilkan ke terminal saat pengunduhan sedang berlangsung.

Melanjutkan unduhan yang terputus di CURL

Sering kali, mungkin terjadi situasi di mana Anda harus mengunduh file dengan ukuran lebih besar. Terkadang karena beberapa alasan seperti kegagalan daya atau kegagalan jaringan, unduhan dapat dibatalkan di tengah proses tanpa mengunduh file lengkap. Bahkan jika Anda menekan Ctrl+C di terminal, prosesnya akan dibatalkan.

ikal perintah ketika digunakan dengan -C pilihan resume terputus-download.

Sintaksis:

ikal -C – -O [URL]

Contoh:

Dalam ilustrasi ini, saya telah mencoba mengunduh image ISO Ubuntu 20.04 dari situs web Ubuntu.

[ dilindungi email ] :~/workspace$ curl -O https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 % Total % Diterima % Xferd Kecepatan Rata-rata Waktu Waktu Waktu Dload Saat Ini Unggah Total Menghabiskan Kecepatan Kiri 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Disini saya sengaja membatalkan proses download dengan Ctrl+C.

Sekarang saya akan menggunakan opsi -C dengan perintah curl untuk melanjutkan unduhan yang terputus dari situs web sumber yang sama.

Keluaran:

[ dilindungi email ] :~/workspace$ curl -C – -O https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 ** Melanjutkan transfer dari posisi byte 1851392 % Total % Diterima % Xferd Kecepatan Rata-rata Waktu Waktu Waktu Saat Ini Dload Upload Total Menghabiskan Kecepatan Kiri 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 98278

Unduhan telah diambil dari tempat ia dibatalkan.

Mengunduh file dari server FTP menggunakan CURL

Cukup mudah dengan perintah curl untuk mengunduh file dari server FTP menggunakan opsi -u. Anda harus memasukkan nama pengguna dan kata sandi ke dalam perintah sebelum memasukkan URL.

Sintaksis:

curl -u [nama pengguna]:[kata sandi] [URL]

Sebagai ilustrasi, saya akan menggunakan FTP publik online.

Contoh:

[email protected] :~/workspace$ curl -O -u [email protected] :eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Total % Diterima % Xferd Average Kecepatan Waktu Waktu Waktu Saat Ini Dload Upload Total Menghabiskan Kecepatan Kiri 100 390 100 390 0 0 93 0 0:00:04 0:00:04 –:–:– 93 [email protected] :~/workspace$

Di sini, saya telah mengunduh file bernama ‘ 16-Sep-20-16-0-0.csv’ dari server ftp ini dan menyimpannya dengan nama aslinya di CWD saya. Saya akan memeriksa file yang diunduh menggunakan perintah ls.

[ dilindungi email ] :~/workspace$ ls -al total 1092 drwxrwxr-x 3 gaurav gaurav 4096 16 Sep 16:15. drwxr-xr-x 87 gaurav gaurav 266240 16 Sep 10:22.. -rw-r–r– 1 gaurav gaurav 390 16 Sep 16:15 16-Sep-20-16-0-0.csv -rw- r–r– 1 gaurav gaurav 204429 16 Sep 11:45 ath.html [email protected] :~/workspace$

Mengunduh banyak file bersama-sama menggunakan CURL

Mengunduh banyak file sekaligus menggunakan perintah curl adalah tugas yang sangat sederhana. Anda cukup menggunakan opsi -O dengan perintah curl yang serupa dengan cara yang telah kita lakukan di blok di atas.

Sintaksis:

curl -O [URL-1] -O [URL-2] -O[URL-n]

Contoh:

[ dilindungi email ] :~/workspace$ curl -O http://archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O http:/ /archive.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Total % Diterima % Xferd Rata-rata Kecepatan Waktu Waktu Waktu Dload Saat Ini Unggah Total Menghabiskan Kecepatan Kiri 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 [email dilindungi] :~/ruang kerja$

Dalam contoh ini, saya telah mengunduh dua paket berbeda dari repositori Ubuntu.

Keluaran:

[ dilindungi email ] :~/workspace$ ls -al total 9596 drwxrwxr-x 3 gaurav gaurav 4096 16 Sep 16:28. drwxr-xr-x 87 gaurav gaurav 266240 16 Sep 10:22.. -rw-r–r– 1 gaurav gaurav 390 16 Sep 16:15 16-Sep-20-16-0-0.csv -rw- r–r– 1 gaurav gaurav 63500 16 Sep 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r–r– 1 gaurav gaurav 8638793 16 Sep 16:29 apache2_2.4.29. orig.tar.gz -rw-r–r– 1 gaurav gaurav 204429 16 Sep 11:45 ath.html [ dilindungi email ] :~/workspace$

Kedua paket diunduh secara bersamaan menggunakan perintah curl.

Mengambil header HTTP dari URL dengan CURL

Bidang HTTP Header dari URL apa pun berisi informasi yang berguna seperti agen pengguna, tipe konten, penyandian, dll. File header ini juga memberikan informasi tentang objek yang dikirim di badan pesan. Detail tentang permintaan dan respons juga diperoleh dari header HTTP ini.

Anda dapat menggunakan perintah curl dengan opsi -I untuk mendapatkan header HTTP dari URL ini.

Sintaksis:

ikal -I [URL]

Contoh:

[ dilindungi email ] :~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP=”Ini bukan kebijakan P3P! Lihat g.co/p3phelp untuk info selengkapnya.” Tanggal: Rab, 16 Sep 2020 11:17:00 GMT Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMAORIGIN Transfer-Encoding: chunked Kedaluwarsa: Rab, 16 Sep 2020 11:17:00 GMT Cache- Kontrol: Set-Cookie pribadi: 1P_JAR=2020-09-16-11; kadaluarsa=Jum, 16-Okt-2020 11:17:00 GMT; jalur=/; domain=.google.com; Set-Cookie Aman: NID=204=SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbS6GvCu-QbKiunPoPJ6d kadaluarsa=Kitas, 18-Mar-2021 11:17:00 GMT; jalur=/; domain=.google.com; HttpOnly [ dilindungi email ] :~/ruang kerja$

Dalam contoh ini saya telah mengambil header HTTP dari ‘ www.firefox.com ‘.

Mengambil Kode Sumber-C menggunakan CURL

Menggunakan perintah curl dengan opsi –libcurl dapat mengambil kode sumber C. Ini tidak memiliki kegunaan yang signifikan bagi pengguna awam tetapi terbukti sangat membantu bagi Pemrogram Sistem, Analis Keamanan, dan Pengembang Aplikasi.

Sintaksis:

curl [URL] > nama file –libcurl [code_filename]

Contoh:

Dalam contoh ini, saya telah mengambil konten dari URL allthings.how dan menyimpannya dalam file bernama gy_ath.html. Kode sumber C disimpan secara terpisah di file source.c.

curl https://www.allthings.how > gy_ath.html –libcurl source.c

Keluaran:

[ dilindungi email ] :~/workspace$ curl https://www.allthings.how > gy_ath.html –libcurl source.c % Total % Diterima % Xferd Rata-rata Kecepatan Waktu Waktu Waktu Dload Saat Ini Unggah Total Menghabiskan Kecepatan Kiri 0 0 0 0 0 0 0 0 –:–:– 0:00:01 –:–:– 0 [email protected] :~/workspace$

Sekarang mari kita periksa file yang diunduh.

[ dilindungi email ] :~/workspace$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 16 Sep 17:08. drwxr-xr-x 87 gaurav gaurav 266240 16 Sep 10:22.. -rw-r–r– 1 gaurav gaurav 0 Sep 16 17:13 gy_ath.html -rw-r–r– 1 gaurav gaurav 1535 16 Sep 17:13 source.c [ dilindungi email ] :~/workspace$

File source.c berisi kode sumber. Ini dapat ditampilkan di terminal menggunakan perintah cat. Saya telah meletakkan beberapa baris dari output di blok yang diberikan di bawah ini.

C [email protected] :~/workspace$ cat source.c /********* Contoh kode yang dihasilkan oleh alat baris perintah curl ********** * Semua opsi curl_easy_setopt() adalah didokumentasikan di: * https://curl.haxx.se/libcurl/c/curl_easy_setopt.html ***************************** *******************************************/ #include <curl/curl.h> int main(int argc, char *argv[]) { CURLcode ret; ikal *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, “https://www.allthings.how”); curl_easy_setopt(hnd, CURLOPT_USERAGENT, “curl/7.58.0”); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

Menggunakan proxy di CURL untuk mengakses URL

Seperti yang dibahas dalam pendahuluan, perintah curl mendukung berbagai protokol seperti FTP, SMTP, HTTPS, SOCKS dll. Terkadang menggunakan server proxy untuk mentransfer file menjadi penting ketika Anda ingin meningkatkan kecepatan transfer Anda dan juga melindungi identitas Anda. perintah curl dapat dengan mudah digunakan untuk mentransfer file melalui server proxy dengan menambahkan opsi -x padanya.

Contoh:

curl -x [proxy_address]:[port] [URL]

Dalam contoh di atas, saya berasumsi bahwa proxy Anda tidak memerlukan otentikasi. Jika proxy memerlukan otentikasi untuk memulai transfer, Anda dapat menggunakan perintah berikut.

curl -u [nama pengguna]:[kata sandi] -x [alamat_proksi]:[port] [URL]

Dengan menggunakan metode sederhana ini, kita dapat mentransfer file melalui server proxy dengan opsi -x yang digunakan dengan perintah curl.

Kesimpulan

Dalam tutorial singkat ini, kita mempelajari bagaimana perintah curl terbukti membantu dalam mengunduh konten langsung dari terminal Anda. Kita juga belajar tentang berbagai opsi yang tersedia dengan perintah ini untuk digunakan untuk berbagai tugas.

Related Posts