Paano Gumamit ng curl upang Mag-download ng Mga File Mula sa Linux Command Line

Ang Linux kulot Ang utos ay maaaring gumawa ng higit pa sa pag-download ng mga file. Alamin kung ano kulot ay may kakayahang, at kung kailan mo dapat gamitin ito sa halip na wget.

curl vs. wget: Ano ang Pagkakaiba?

Ang mga tao ay madalas na nakikipagpunyagi upang makilala ang mga kaugnay na lakas ng wget at kulot utos. Ang mga utos ay mayroong ilang functional overlap. Maaari nilang makuha ang bawat file mula sa malalayong lokasyon, ngunit doon natatapos ang pagkakapareho.

wget ay isang kamangha-manghang tool para sa pag-download ng nilalaman at mga file. Maaari itong mag-download ng mga file, web page, at direktoryo. Naglalaman ito ng matalinong mga gawain upang dumaan sa mga link sa mga web page at recursively na mag-download ng nilalaman sa isang buong website. Ito ay hindi maunahan bilang isang command-line download manager.

kulot natutugunan ang isang kabuuan iba't ibang mga pangangailangan. Oo, maaari itong makuha ang mga file, ngunit hindi ito maaaring muling mag-navigate sa isang website na naghahanap ng nilalaman na makukuha. Ano kulot ang tunay na ginagawa ay hinayaan kang makipag-ugnay sa mga malalayong system sa pamamagitan ng paggawa ng mga kahilingan sa mga sistemang iyon, at pagkuha at pagpapakita ng kanilang mga sagot sa iyo. Ang mga tugon na iyon ay maaaring nilalaman ng web page at mga file, ngunit maaari rin silang maglaman ng data na ibinigay sa pamamagitan ng isang serbisyo sa web o API bilang resulta ng "tanong" na tinanong ng kahilingan ni curl.

At kulot ay hindi limitado sa mga website. kulot Sinusuportahan ang higit sa 20 mga protokol, kabilang ang HTTP, HTTPS, SCP, SFTP, at FTP. At masasabi, dahil sa higit na paghawak nito ng mga pipa ng Linux, kulot ay maaaring mas madaling isama sa iba pang mga utos at script.

Ang may-akda ng kulot ay may isang webpage na naglalarawan sa mga pagkakaiba na nakikita niya sa pagitan kulot at wget.

Pag-install ng curl

Sa mga computer na ginamit upang saliksikin ang artikulong ito, mayroon ang Fedora 31 at Manjaro 18.1.0 kulot naka install na kulot kailangang mai-install sa Ubuntu 18.04 LTS. Sa Ubuntu, patakbuhin ang utos na ito upang mai-install ito:

sudo apt-get install curl

Ang curl na Bersyon

Ang --versi gumagawa ng pagpipiliankulotiulat ang bersyon nito Inililista din nito ang lahat ng mga protokol na sinusuportahan nito.

curl --versi

Pagkuha ng isang Pahina sa Web

Kung ituturo natin kulot sa isang web page, kukunin ito para sa amin.

curl //www.bbc.com

Ngunit ang default na pagkilos nito ay upang itapon ito sa window ng terminal bilang source code.

Mag-ingat: Kung hindi mo sasabihin kulot nais mo ang isang bagay na nakaimbak bilang isang file, gagawin nito palagi itapon ito sa bintana ng terminal. Kung ang file na kinukuha nito ay isang binary file, maaaring hindi mahulaan ang kinalabasan. Maaaring subukang bigyang-kahulugan ng shell ang ilang mga byte na halaga sa binary file bilang mga character na kontrol o makatakas na mga pagkakasunud-sunod.

Pag-save ng Data sa isang File

Sabihin natin kay curl na i-redirect ang output sa isang file:

curl //www.bbc.com> bbc.html

Sa oras na ito hindi namin makita ang nakuhang impormasyon, ipinapadala ito diretso sa file para sa amin. Dahil walang output ng window ng terminal upang maipakita, kulot naglalabas ng isang hanay ng impormasyon sa pag-unlad.

Hindi ito nagawa sa nakaraang halimbawa sapagkat ang impormasyon ng pag-usad ay nakakalat sa buong code ng mapagkukunan ng web page, kaya kulot awtomatikong pinigilan ito.

Sa halimbawang ito,kulot napansin na ang output ay nai-redirect sa isang file at ligtas itong makabuo ng impormasyon sa pag-unlad.

Ang impormasyong ibinigay ay:

  • % Kabuuan: Ang kabuuang halaga na makukuha.
  • % Natanggap: Ang porsyento at aktwal na mga halaga ng data na nakuha sa ngayon.
  • % Xferd: Ang porsyento at aktwal na naipadala, kung ang data ay ina-upload.
  • Average na Dload ng Bilis: Ang average na bilis ng pag-download.
  • Average na Bilis ng Pag-upload: Ang average na bilis ng pag-upload.
  • Kabuuang Oras: Ang tinatayang kabuuang tagal ng paglipat.
  • Nagastos na Oras: Ang lumipas na oras sa ngayon para sa paglipat na ito.
  • Natitirang oras: Ang natantyang oras na natitira upang makumpleto ang paglipat
  • Kasalukuyang Bilis: Ang kasalukuyang bilis ng paglipat para sa paglipat na ito.

Dahil na-redirect namin ang output mula sa kulot sa isang file, mayroon na kaming isang file na tinatawag na “bbc.html.”

Ang pag-double click sa file na iyon ay magbubukas sa iyong default browser upang maipakita nito ang nakuha na web page.

Tandaan na ang address sa browser address bar ay isang lokal na file sa computer na ito, hindi isang malayuang website.

Hindi namin kailangang mag-redirect ang output upang lumikha ng isang file. Maaari kaming lumikha ng isang file sa pamamagitan ng paggamit ng -o Pagpipilian (output), at pagsasabi kulot upang likhain ang file. Narito ginagamit namin ang -o pagpipilian at pagbibigay ng pangalan ng file na nais naming lumikha ng "bbc.html."

curl -o bbc.html //www.bbc.com

Paggamit ng isang Progress Bar Upang Subaybayan ang Mga Pag-download

Upang mapalitan ang isang simpleng impormasyon sa pag-download na batay sa teksto ng isang simpleng progress bar, gamitin ang -# (Progress bar) na pagpipilian.

curl -x -o bbc.html //www.bbc.com

Ang pag-restart ng isang nagambalang Pag-download

Madaling i-restart ang isang pag-download na natapos o nagambala. Magsimula tayo ng isang pag-download ng isang malalaking file. Gagamitin namin ang pinakabagong pagbuo ng Long Term Support ng Ubuntu 18.04. Ginagamit namin ang --output pagpipilian upang tukuyin ang pangalan ng file na nais naming i-save ito sa: "ubuntu180403.iso."

curl --output ubuntu18043.iso //releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso

Nagsisimula ang pag-download at gagana patungo sa pagkumpleto.

Kung puwersahin naming makagambala ang pag-download sa Ctrl + C , bumalik kami sa command prompt, at ang pag-download ay inabandunang.

Upang muling simulan ang pag-download, gamitin ang -C (Magpatuloy sa) pagpipilian. Ito ay nadudulot kulot upang muling simulan ang pag-download sa isang tinukoy na punto o offset sa loob ng target na file. Kung gagamit ka ng gitling - bilang offset, kulot titingnan ang na-download na bahagi ng file at matukoy ang tamang offset na gagamitin para sa sarili nito.

curl -C - --output ubuntu18043.iso //releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso

Ang pag-download ay restart. kulot Iniuulat ang offset kung saan ito restart.

Kinukuha ang mga HTTP header

Kasama ang -Ako Pagpipilian (ulo), maaari mong makuha ang mga HTTP header lamang. Ito ay kapareho ng pagpapadala ng utos na HTTP HEAD sa isang web server.

kulot -ako www.twitter.com

Kinukuha lamang ng utos na ito ang impormasyon lamang; hindi ito nagda-download ng anumang mga web page o file.

Pagda-download ng Maramihang mga URL

Gamit xargs maaari kaming mag-download ng maraming mga URL nang sabay-sabay. Marahil nais naming mag-download ng isang serye ng mga web page na bumubuo ng isang solong artikulo o tutorial.

Kopyahin ang mga URL na ito sa isang editor at i-save ito sa isang file na tinatawag na "urls-to-download.txt." Pwede natin gamitin xargs upang tratuhin ang nilalaman ng bawat linya ng text file bilang isang parameter kung saan ito feed sa kulot, naman.

//tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#0 //tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#1 //tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#2 //tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#3 //tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#4 //tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#5

Ito ang utos na kailangan nating gamitin upang magkaroon xargs ipasa ang mga URL na ito sa kulot paisa-isa:

xargs -n 1 curl -O <urls-to-download.txt

Tandaan na ang utos na ito ay gumagamit ng -O (remote file) na utos ng output, na gumagamit ng isang malalaking "O." Ang opsyong ito ay sanhi kulot upang mai-save ang nakuhang file na may parehong pangalan na mayroon ang file sa remote server.

Ang -n 1 Sinasabi ng pagpipilian xargs upang tratuhin ang bawat linya ng file ng teksto bilang isang solong parameter.

Kapag nagpatakbo ka ng utos, makakakita ka ng maraming pag-download na nagsisimula at nagtatapos, sunod-sunod.

Ang pagsusuri sa file browser ay nagpapakita ng maraming mga file na na-download. Ang bawat isa ay nagdala ng pangalang mayroon ito sa remote server.

KAUGNAYAN:Paano Magamit ang xargs Command sa Linux

Pagda-download ng Mga File Mula sa isang FTP Server

Gamit kulot na may isang File Transfer Protocol (FTP) server ay madali, kahit na kailangan mong patunayan sa isang username at password. Upang pumasa sa isang username at password sa kulot gamitin ang -u Pagpipilian (gumagamit), at i-type ang username, isang colon na ":", at ang password. Huwag maglagay ng puwang bago o pagkatapos ng colon.

Ito ay isang libreng-para-pagsubok na FTP server na naka-host sa pamamagitan ng Rebex. Ang site ng pagsubok na FTP ay may paunang itinakdang username ng "demo", at ang password ay "password." Huwag gamitin ang ganitong uri ng mahinang username at password sa isang produksyon o "totoong" FTP server.

curl -u demo: password ftp://test.rebex.net

kulot nalalaman na itinuturo namin ito sa isang FTP server, at ibinabalik ang isang listahan ng mga file na naroroon sa server.

Ang nag-iisang file sa server na ito ay isang file na "readme.txt", na may haba na 403 bytes. Kunin natin ito. Gumamit ng parehong utos tulad ng isang sandali ang nakalipas, kasama ang filename na naidagdag dito:

curl -u demo: password ftp://test.rebex.net/readme.txt

Ang file ay nakuha at kulot ipinapakita ang mga nilalaman nito sa window ng terminal.

Sa halos lahat ng mga kaso, magiging mas maginhawa upang mai-save ang nakuhang file sa disk para sa amin, sa halip na ipakita sa window ng terminal. Sa sandaling maaari pa nating magamit ang -O (remote file) output utos upang mai-save ang file sa disk, na may parehong filename na mayroon ito sa remote server.

curl -O -u demo: password ftp://test.rebex.net/readme.txt

Ang file ay nakuha at nai-save sa disk. Pwede natin gamitin ls upang suriin ang mga detalye ng file. Ito ay may parehong pangalan tulad ng file sa FTP server, at ito ay pareho ang haba, 403 bytes.

ls -hl readme.txt

KAUGNAYAN:Paano Magamit ang FTP Command sa Linux

Pagpapadala ng Mga Parameter sa Mga Remote na Server

Ang ilang mga remote server ay tatanggap ng mga parameter sa mga kahilingan na ipinadala sa kanila. Maaaring magamit ang mga parameter upang mai-format ang naibalik na data, halimbawa, o maaari silang magamit upang mapili ang eksaktong data na nais ng gumagamit na kunin. Kadalasan posible na makipag-ugnay sa ginagamit ng mga interface ng program ng web application (API) kulot.

Bilang isang simpleng halimbawa, ang ipify website ay may isang API na maaaring ma-queried upang alamin ang iyong panlabas na IP address.

curl //api.ipify.org

Sa pamamagitan ng pagdaragdag ng format parameter sa utos, na may halagang "json" maaari kaming muling humiling ng aming panlabas na IP address, ngunit sa oras na ito ang naibalik na data ay mai-encode sa format na JSON.

curl //api.ipify.org?format=json

Narito ang isa pang halimbawa na gumagamit ng isang Google API. Nagbabalik ito ng isang bagay na JSON na naglalarawan sa isang libro. Ang parameter na dapat mong ibigay ay ang numero ng International Standard Book Number (ISBN) ng isang libro. Mahahanap mo ang mga ito sa likod na takip ng karamihan sa mga libro, karaniwang sa ibaba ng isang barcode. Ang parameter na gagamitin namin dito ay "0131103628."

curl //www.googleapis.com/books/v1/volumes?q=isbn:0131103628

Ang ibinalik na data ay komprehensibo:

Minsan kulot, Minsan wget

Kung nais kong mag-download ng nilalaman mula sa isang website at hahanapin nang paulit-ulit ang istraktura ng puno ng website para sa nilalamang iyon, gagamitin ko ang wget.

Kung nais kong makipag-ugnay sa isang remote server o API, at posibleng mag-download ng ilang mga file o web page, gagamitin ko kulot. Lalo na kung ang protocol ay isa sa maraming hindi sinusuportahan ng wget.


$config[zx-auto] not found$config[zx-overlay] not found