Cara Menggunakan Perintah Curl di Linux

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

Itu keriting command adalah satu lagi utilitas baris perintah yang menarik yang ditawarkan Linux kepada Anda. keriting perintah memungkinkan pengguna untuk mengambil file dari server.

keriting 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.

keriting perintah 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 keriting perintah menggunakan beberapa contoh singkat.

Instalasi

Sebelum menggunakan keriting perintah, periksa apakah sudah diinstal di sistem Anda. Gunakan perintah ikal --versi untuk memeriksa apakah keriting dipasang.

Jika keriting tidak diinstal, gunakan langkah-langkah berikut.

Pada sistem berbasis Ubuntu dan Debian, menggunakan:

sudo apt-get update
sudo apt-get install curl

Pada distro RHEL, CentOs dan Fedora, menggunakan:

sudo yum install curl

Sekarang gunakan ikal --versi perintah 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: file dict 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 libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL gaurav@ubuntu:~$ 

Sekarang kita siap untuk menggunakan keriting memerintah.

Opsi tersedia dengan perintah CURL

Mari kita lihat sekilas beberapa opsi menonjol yang tersedia dengan keriting memerintah.

PilihanKeterangan
-uuntuk mengunduh file dari server FTP
-Cuntuk melanjutkan unduhan yang terputus
-Haiuntuk menyimpan hasil keriting perintah dengan nama file yang telah ditentukan
-SAYAuntuk mendapatkan tajuk HTTP dari URL yang ditentukan
-HAIuntuk menyimpan hasil keriting perintah dengan nama file asli
--libcurluntuk menampilkan kode sumber C yang menggunakan libcurl untuk opsi yang ditentukan
-xuntuk menggunakan proxy untuk mengakses URL
-#untuk menampilkan bilah kemajuan untuk menunjukkan status unduhan

Mengambil halaman web menggunakan CURL

Itu keriting perintah, ketika digunakan tanpa opsi apa pun, mengambil konten URL yang ditentukan dalam perintah.

Sintaksis:

ikal [URL]

Contoh:

curl //semuanya.bagaimana

Keluaran:

gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}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}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!penting ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over flow-y:auto!penting;posisi:absolut!penting;atas:0!penting;kiri:0!penting;kanan:0!penting;bawah:0!penting;margin:0!penting;tampilan:blok!penting} 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-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -elemen{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}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-s ubs-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;right: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 !penting;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-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([distance]):not([active]){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;visibility:hidden} 

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

Anda dapat menggunakan opsi -Hai dan -HAI dengan keriting perintah untuk menyimpan konten ini ke dalam file.

Kapan -Hai Jika opsi digunakan, konten URL disimpan ke direktori Anda saat ini dengan nama file yang ditentukan pengguna.

Sintaksis:

curl -o [nama file_pengguna] [URL]

Contoh:

gaurav@ubuntu:~/workspace$ curl -o ath.html //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 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/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 -HAI opsi 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 keriting perintah dengan -HAI opsi untuk mengunduh paket Ubuntu bernama 'cherrytree_0.37.6-1.1_all.deb' dari repositori paket Ubuntu.

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

Keluaran:

trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/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 keriting perintah untuk mendownload 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:

gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## ############################################################# ############################################################# ########################################################### 100.0% gaurav@ubuntu:~/ruang kerja$ 

Keluaran:

gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/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, proses dibatalkan.

Itu keriting perintah ketika digunakan dengan -C opsi melanjutkan unduhan yang terputus.

Sintaksis:

ikal -C - -O [URL]

Contoh:

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

gaurav@ubuntu:~/workspace$ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 % Total % Diterima % Kecepatan Rata-rata Xferd 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

Di sini, saya sengaja membatalkan proses pengunduhan dengan Ctrl+C.

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

Keluaran:

gaurav@ubuntu:~/workspace$ curl -C - -O //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 Dload Saat Ini 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

Caranya cukup mudah dengan keriting perintah untuk mengunduh file dari server FTP menggunakan -u pilihan. 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:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Total % Diterima % Rata-rata Xferd 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 gaurav@ubuntu:~/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 ls memerintah.

gaurav@ubuntu:~/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 gaurav@ubuntu:~/workspace$

Mengunduh banyak file bersama-sama menggunakan CURL

Mengunduh banyak file sekaligus menggunakan keriting perintah adalah tugas yang sangat sederhana. Anda hanya menggunakan -HAI pilihan dengan keriting perintah serupa dengan cara yang telah kami lakukan di blok di atas.

Sintaksis:

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

Contoh:

gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Total % Diterima % Xferd Kecepatan Rata-rata 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 gaurav@ubuntu:~/workspace $ 

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

Keluaran:

gaurav@ubuntu:~/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 gaurav@ubuntu:~/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.

Kamu dapat memakai keriting perintah dengan -SAYA opsi untuk mendapatkan header HTTP ini dari URL.

Sintaksis:

ikal -I [URL]

Contoh:

gaurav@ubuntu:~/workspace$ curl -Saya 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-QbS6GzCu-QbKiunPoPJ6d kadaluarsa=Kamis, 18-Mar-2021 11:17:00 GMT; jalur=/; domain=.google.com; HttpOnly gaurav@ubuntu:~/ruang kerja$

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

Mengambil Kode Sumber-C menggunakan CURL

Menggunakan keriting perintah dengan --libcurl opsi 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 URL semuanya.bagaimana dan menyimpannya dalam file bernama gy_ath.html. Kode sumber C disimpan secara terpisah di sumber.c mengajukan.

curl //www.allthings.how > gy_ath.html --libcurl source.c 

Keluaran:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Total % Diterima % Xferd Rata-rata Kecepatan Waktu Waktu Waktu Saat Ini Dload Upload Total Habiskan Kecepatan Kiri 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Sekarang mari kita periksa file yang diunduh.

gaurav@ubuntu:~/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 gaurav@ubuntu:~/workspace$

Itu sumber.c file berisi kode sumber. Ini dapat ditampilkan di terminal menggunakan kucing memerintah. Saya telah meletakkan beberapa baris dari output di blok yang diberikan di bawah ini.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* Contoh kode yang dihasilkan oleh alat baris perintah curl ********** * Semua opsi curl_easy_setopt() didokumentasikan di: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ******************************** ****************************************/ #termasuk 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, "//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, keriting perintah mendukung berbagai protokol seperti FTP, SMTP, HTTPS, SOCKS dll Kadang-kadang menggunakan server proxy untuk mentransfer file menjadi penting ketika Anda ingin meningkatkan kecepatan transfer Anda dan juga melindungi identitas Anda. keriting perintah dapat dengan mudah digunakan untuk mentransfer file melalui server proxy dengan menambahkan -x pilihan untuk itu.

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 [proxy_address]:[port] [URL]

Dengan menggunakan metode sederhana ini, kita dapat mentransfer file melalui server proxy dengan opsi -x digunakan dengan keriting memerintah.

Kesimpulan

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