Cara Menggunakan Perintah Curl dalam Linux

Panduan luas yang menerangkan penggunaan perintah curl untuk mengambil halaman web dan memuat turun fail terus dari terminal anda

The keriting arahan ialah satu lagi utiliti baris arahan yang menarik yang ditawarkan oleh Linux kepada anda. keriting arahan membenarkan pengguna untuk mengambil fail daripada pelayan.

keriting ialah pilihan popular pembangun aplikasi dan pengguna Linux yang kerap kerana sokongannya untuk beberapa protokol seperti RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FILE, GOPHER, LDAP, LDAPS, POP3, POP3S, dsb.

keriting command melakukan lebih daripada sekadar mengambil halaman web untuk anda. Mengetahui pilihan yang tersedia dengan arahan ini menjadikannya lebih serba boleh untuk kegunaan anda. Marilah kita menyelami tutorial untuk mendapatkan pemahaman yang baik tentang penggunaan keriting arahan menggunakan beberapa contoh ringkas.

Pemasangan

Sebelum menggunakan keriting arahan, semak sama ada ia telah dipasang pada sistem anda. Gunakan arahan curl --version untuk menyemak sama ada keriting dipasang.

Dalam kes jika keriting tidak dipasang, gunakan langkah berikut.

Pada sistem berasaskan Ubuntu dan Debian, gunakan:

sudo apt-get kemas kini
sudo apt-get install curl

Pada distro RHEL, CentO dan Fedora, gunakan:

sudo yum pasang curl

Sekarang gunakan curl --version arahan untuk memastikan ia dipasang dengan betul.

curl --version

Pengeluaran:

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 Tarikh Keluaran: 2018-01-24 Protokol: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Ciri-ciri: Fail AsynchDNS GWSSSBNE SPLMNTASPNT IPv6 LargeGorgeDNS GWSSSBNT libz TLS-SRP HTTP2 UnixSockets HTTPS-proksi PSL gaurav@ubuntu:~$ 

Kini kami bersedia untuk menggunakan keriting perintah.

Pilihan tersedia dengan arahan CURL

Mari kita lihat dahulu beberapa pilihan menonjol yang tersedia dengan keriting perintah.

PilihanPenerangan
-uuntuk memuat turun fail daripada pelayan FTP
-Cuntuk menyambung semula muat turun yang terganggu
-ountuk menyimpan hasil daripada keriting arahan dengan nama fail yang telah ditetapkan
-sayauntuk mendapatkan pengepala HTTP bagi URL yang ditentukan
-Ountuk menyimpan hasil daripada keriting arahan dengan nama fail asal
--libcurluntuk mengeluarkan kod sumber C yang menggunakan libcurl untuk pilihan yang ditetapkan
-xuntuk menggunakan proksi untuk mengakses URL
-#untuk memaparkan bar kemajuan untuk menunjukkan status muat turun

Mendapatkan semula halaman web menggunakan CURL

The keriting arahan, apabila digunakan tanpa sebarang pilihan, mengambil kandungan URL yang dinyatakan dalam arahan.

Sintaks:

curl [URL]

Contoh:

curl //allthings.how

Pengeluaran:

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!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over aliran-y:auto!penting;kedudukan:mutlak!penting;atas:0!penting;kiri:0!penting;kanan:0!penting;bawah:0!penting;margin:0!penting;paparan: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}[langganan -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>[kemas kini]{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 [muat-lebih] [muat-lebih-butang],amp-senarai[muat-lagi] [muat-lebih-akhir],amp-senarai[muat-lagi] [muat-lebih-gagal],amp-senarai[muat -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[standalone]{min-height:1px !penting;paparan:blok!penting;tinggi:100%!penting;margin:0!penting;lapik:0!penting;limpahan:tersembunyi!penting;lebar:100%!penting}amp-cerita[berdiri]{latar belakang- warna:#202125!penting;kedudukan:relatif!penting}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amptm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([jarak]):not([aktif]){transform:translateY(1000vh)!important }amp-autolengkap{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, kandungan halaman web diambil terus ke terminal anda sebagai kod sumber.

Anda boleh menggunakan pilihan -o dan -O dengan keriting arahan untuk menyimpan kandungan ini ke dalam fail.

Bila -o pilihan digunakan, kandungan URL disimpan ke dalam direktori semasa anda dengan nama fail yang ditentukan pengguna.

Sintaks:

curl -o [nama fail_pengguna] [URL]

Contoh:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Jumlah % Diterima % Xferd Purata Kelajuan Masa Masa Masa Muat Naik Semasa Muat Naik Jumlah Dibelanjakan Kelajuan 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, kandungan daripada URL 'allthings.how' disimpan sebagai fail HTML bernama ath.html dalam direktori kerja semasa saya. Apabila membuka fail HTML ini, saya akan dialihkan ke halaman web yang disimpan.

Memuat turun fail menggunakan arahan CURL

Menggunakan -O pilihan dengan arahan curl juga menyimpan kandungan atau halaman web atau pakej yang boleh dimuat turun sebagai fail tetapi menyimpan fail ini dengan nama asalnya.

Mari kita lihat ini melalui contoh:

Contoh:

Di sini saya telah menggunakan keriting perintah dengan -O pilihan untuk memuat turun pakej Ubuntu bernama 'cherrytree_0.37.6-1.1_all.deb' daripada repositori pakej Ubuntu.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Jumlah % Diterima % Xferd Purata Kelajuan Masa Masa Masa Muat Naik Dload Semasa Jumlah Dibelanjakan Kelajuan Kiri 100 613k 100 613k 0 0 220k 0 0:00:02 0:00:02 --:--:-- 220k gaurav@ubuntu:~/ruang kerja$

Pengeluaran:

trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$

Jadi, pakej itu kini dimuat turun dan disimpan dalam direktori kerja semasa (CWD) dengan nama asalnya.

Memaparkan Bar Kemajuan semasa memuat turun fail

Terdapat satu lagi pengubahsuaian estetik yang tersedia semasa menggunakan keriting arahan untuk memuat turun fail. Anda boleh melihat kemajuan muat turun fail anda dalam bentuk Bar Kemajuan pada terminal anda. Anda hanya perlu menambah -# pilihan dengan arahan anda untuk memuat turun fail.

Mari kita lihat contoh tweak ini.

Sintaks:

curl -# -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:~/workspace$ 

Pengeluaran:

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 boleh melihat bahawa saya telah memuat turun pakej bernama 'emacs-defaults_47.0.tar.xz' dalam CWD saya dan bar kemajuan dipaparkan ke dalam terminal semasa muat turun sedang dijalankan.

Menyambung semula muat turun yang terganggu dalam CURL

Banyak kali, mungkin terdapat situasi di mana anda perlu memuat turun fail bersaiz lebih besar. Kadangkala disebabkan oleh beberapa sebab seperti kegagalan kuasa atau kegagalan rangkaian, muat turun mungkin dihentikan pada pertengahan proses tanpa memuat turun fail lengkap. Walaupun anda menekan Ctrl+C di terminal, proses itu dibatalkan.

The keriting arahan apabila digunakan dengan -C pilihan menyambung semula muat turun yang terganggu.

Sintaks:

curl -C - -O [URL]

Contoh:

Dalam ilustrasi ini, saya telah cuba memuat turun imej ISO Ubuntu 20.04 dari laman 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-417.1600250922-417.1600250922-417 Masa Masa Masa Muat Naik Semasa Muat Naik Jumlah Dibelanjakan Kelajuan 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 muat turun oleh Ctrl+C.

Sekarang saya akan menggunakan -C pilihan dengan keriting arahan untuk menyambung semula muat turun yang terganggu dari tapak web sumber yang sama.

Pengeluaran:

gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.16002509299.16002509299.16002509299.16002509291 kedudukan bait 1851392 % Jumlah % Diterima % Xferd Purata Kelajuan Masa Masa Masa Semasa Muat Naik Muat Naik Jumlah Dibelanjakan Kelajuan Kiri 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 9

Muat turun telah diambil dari tempat ia digugurkan.

Memuat turun fail daripada pelayan FTP menggunakan CURL

Ia agak mudah dengan keriting arahan untuk memuat turun fail daripada pelayan FTP menggunakan -u pilihan. Anda perlu memasukkan nama pengguna dan kata laluan ke dalam arahan sebelum memasukkan URL.

Sintaks:

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

Untuk ilustrasi, saya akan menggunakan FTP awam dalam talian.

Contoh:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Jumlah % Diterima % Purata Xferd Kelajuan Masa Masa Masa Muat Naik Semasa Muat Naik Jumlah Dibelanjakan Kiri Kelajuan 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Di sini, saya telah memuat turun fail bernama '16-Sep-20-16-0-0.csv’ daripada pelayan ftp ini dan menyimpannya dengan nama asalnya dalam CWD saya. Saya akan menyemak fail yang dimuat turun menggunakan ls perintah.

gaurav@ubuntu:~/workspace$ ls -al jumlah 1092 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 Sep 16 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 Sep 16 16:15 16-Sep-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 Sep 16 11:45 ath.html gaurav@ubuntu:~/workspace$

Memuat turun berbilang fail bersama-sama menggunakan CURL

Memuat turun berbilang fail sekali gus menggunakan keriting arahan adalah tugas yang sangat mudah. Anda hanya menggunakan -O pilihan dengan keriting perintah serupa dengan cara yang telah kami lakukan dalam blok di atas.

Sintaks:

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 % Jumlah % Diterima % Xferd Purata Kelajuan Masa Masa Masa Semasa Dload Muat Naik Jumlah Dibelanjakan Kelajuan Kiri 100 63500 100 63500 0 0 55458 0 0 55458 0 :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/ruang kerja $ 

Dalam contoh ini, saya telah memuat turun dua pakej berbeza daripada repositori Ubuntu.

Pengeluaran:

gaurav@ubuntu:~/ruang kerja$ ls -al jumlah 9596 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 Sep 16 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 Sep 16 16:15 16-Sep-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 Sep 16 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 Sep 16 16:29 apache2_2.4. orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 Sep 16 11:45 ath.html gaurav@ubuntu:~/workspace$ 

Kedua-dua pakej dimuat turun pada masa yang sama menggunakan arahan curl.

Mengambil pengepala HTTP URL dengan CURL

Medan Pengepala HTTP bagi mana-mana URL mengandungi maklumat berguna seperti ejen pengguna, jenis kandungan, pengekodan, dsb. Fail pengepala ini juga memberikan maklumat tentang objek yang dihantar dalam badan mesej. Butiran tentang permintaan dan respons juga diperoleh daripada pengepala HTTP ini.

Anda boleh gunakan keriting perintah dengan -saya pilihan untuk mendapatkan pengepala HTTP URL ini.

Sintaks:

curl -I [URL]

Contoh:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Jenis Kandungan: text/html; charset=ISO-8859-1 P3P: CP="Ini bukan dasar P3P! Lihat g.co/p3phelp untuk mendapatkan maklumat lanjut." Tarikh: Rab, 16 Sep 2020 11:17:00 GMT Pelayan: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN Transfer-Pengekodan: chunked Tamat tempoh: Rab, 16 Sep 2020 11:17:00 GMT Cache- Kawalan: Set-Kuki peribadi: 1P_JAR=2020-09-16-11; tamat tempoh=Jum, 16-Okt-2020 11:17:00 GMT; laluan=/; domain=.google.com; Selamat Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; tamat tempoh=Kha, 18-Mac-2021 11:17:00 GMT; laluan=/; domain=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

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

Mengambil Kod C-Source menggunakan CURL

menggunakan keriting perintah dengan --libcurl pilihan boleh mengambil kod sumber C. Ini tidak mempunyai kegunaan penting kepada pengguna awam tetapi boleh terbukti sangat membantu Pengaturcara Sistem, Penganalisis Keselamatan dan Pembangun Aplikasi.

Sintaks:

curl [URL] > nama fail --libcurl [code_filename]

Contoh:

Dalam contoh ini, saya telah mengambil kandungan URL segalanya.bagaimana dan menyimpannya dalam fail bernama gy_ath.html. Kod sumber C disimpan secara berasingan dalam sumber.c fail.

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

Pengeluaran:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Jumlah % Diterima % Xferd Purata Kelajuan Masa Masa Masa Muat Naik Semasa Muat Naik Jumlah Dibelanjakan Kelajuan Kiri 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Mari kita semak fail yang dimuat turun.

gaurav@ubuntu:~/workspace$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 Sep 16 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$

The sumber.c fail mengandungi kod sumber. Ini boleh dipaparkan pada terminal menggunakan kucing perintah. Saya telah meletakkan beberapa baris daripada output dalam blok yang diberikan di bawah.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* Kod sampel yang dihasilkan oleh alat baris arahan curl ********** * Semua pilihan curl_easy_setopt() didokumenkan di: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ******************************** *****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; CURL *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 proksi dalam CURL untuk mengakses URL

Seperti yang dibincangkan dalam pengenalan, keriting arahan menyokong pelbagai protokol seperti FTP, SMTP, HTTPS, SOCKS dll. Kadangkala menggunakan pelayan proksi untuk memindahkan fail menjadi penting apabila anda ingin meningkatkan kelajuan pemindahan anda dan juga melindungi identiti anda. keriting arahan boleh digunakan dengan mudah untuk memindahkan fail melalui pelayan proksi dengan melampirkan -x pilihan kepadanya.

Contoh:

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

Dalam contoh di atas, saya telah mengandaikan bahawa proksi anda tidak memerlukan pengesahan. Sekiranya proksi memerlukan pengesahan untuk memulakan pemindahan, anda boleh menggunakan arahan berikut.

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

Menggunakan kaedah mudah ini, kami boleh memindahkan fail melalui pelayan proksi dengan pilihan -x digunakan dengan keriting perintah.

Kesimpulan

Dalam tutorial ringkas ini, kami belajar bagaimana keriting arahan terbukti membantu dalam memuat turun kandungan terus dari terminal anda. Kami juga mempelajari tentang pilihan berbeza yang tersedia dengan arahan ini untuk digunakan untuk pelbagai tugas.