Линук цурл команда може учинити много више од преузимања датотека. Сазнајте за шта је способан цурл и када бисте га требали користити уместо вгет-а.
Преглед садржаја
цурл вс. вгет : Која је разлика?
Људи се често боре да идентификују релативне снаге вгет и цурл команди. Команде се функционално преклапају. Сваки од њих може да преузме датотеке са удаљених локација, али ту се сличност завршава.
вгет је а фантастичан алат за преузимање садржаја и датотека. Може да преузима датотеке, веб странице и директоријуме. Садржи интелигентне рутине за прелазак преко линкова на веб страницама и рекурзивно преузимање садржаја преко целе веб странице. Ненадмашан је као менаџер преузимања на командној линији.
коврџе задовољава сасвим другачију потребу. Да, може да преузима датотеке, али не може рекурзивно да се креће по веб локацији тражећи садржај за преузимање. Оно што цурл заправо ради је да вам омогућава интеракцију са удаљеним системима тако што постављате захтеве тим системима и преузимате и приказујете њихове одговоре вама. Ти одговори могу бити садржај и датотеке веб странице, али такође могу садржати податке обезбеђене путем веб услуге или АПИ-ја као резултат „питања“ постављеног у цурл захтеву.
А цурл није ограничен на веб локације. цурл подржава преко 20 протокола, укључујући ХТТП, ХТТПС, СЦП, СФТП и ФТП. И вероватно, због свог супериорног руковања Линук цевима, цурл се може лакше интегрисати са другим командама и скриптама.
Аутор цурл-а има веб страницу која описује разлике које види између цурл и вгет.
Инсталирање цурл-а
Од рачунара који су коришћени за истраживање овог чланка, Федора 31 и Мањаро 18.1.0 су већ имали инсталиран цурл. цурл је морао бити инсталиран на Убунту 18.04 ЛТС. На Убунту-у покрените ову команду да бисте је инсталирали:
sudo apt-get install curl
Тхе цурл Версион
Опција –версион чини цурлрепорт својом верзијом. Такође наводи све протоколе које подржава.
curl --version
Преузимање веб странице
Ако покажемо цурл на веб страницу, она ће је преузети за нас.
curl https://www.bbc.com
Али његова подразумевана радња је да га испусти у прозор терминала као изворни код.
Пазите: Ако не кажете цурл-у да желите да се нешто сачува као датотека, он ће то увек избацити у прозор терминала. Ако је датотека коју преузима бинарна датотека, исход може бити непредвидљив. Шкољка може покушати да протумачи неке од вредности бајтова у бинарној датотеци као контролне знакове или излазне секвенце.
Чување података у датотеку
Рецимо цурл-у да преусмери излаз у датотеку:
curl https://www.bbc.com > bbc.html
Достављене информације су:
% Укупно: Укупан износ који треба преузети.
% примљених: Проценат и стварне вредности до сада преузетих података.
% Ксферд: Проценат и стварно послато, ако се подаци учитавају.
Просечна брзина преузимања: Просечна брзина преузимања.
Просечна брзина отпремања: Просечна брзина отпремања.
Укупно време: Процењено укупно трајање преноса.
Утрошено време: до сада протекло време за овај трансфер.
Преостало време: Процењено време преостало да се трансфер заврши
Тренутна брзина: Тренутна брзина преноса за овај пренос.
Пошто смо преусмерили излаз са цурл на датотеку, сада имамо датотеку која се зове „ббц.хтмл“.
Двоструким кликом на ту датотеку отвориће се ваш подразумевани претраживач тако да приказује преузету веб страницу.
Имајте на уму да је адреса у адресној траци претраживача локална датотека на овом рачунару, а не удаљена веб локација.
Не морамо да преусмеравамо излаз да бисмо креирали датотеку. Можемо да креирамо датотеку користећи опцију -о (излаз) и кажемо цурл-у да креира датотеку. Овде користимо опцију -о и дајемо име датотеке коју желимо да креирамо „ббц.хтмл“.
curl -o bbc.html https://www.bbc.com
Коришћење траке напретка за праћење преузимања
Да бисте заменили информације о преузимању засноване на тексту једноставном траком напретка, користите опцију -# (трака напретка).
curl -x -o bbc.html https://www.bbc.com
Поновно покретање прекинутог преузимања
Лако је поново покренути преузимање које је прекинуто или прекинуто. Почнимо са преузимањем велике датотеке. Користићемо најновију верзију дугорочне подршке за Убунту 18.04. Користимо опцију –оутпут да наведемо име датотеке у коју желимо да је сачувамо: „убунту180403.исо.“
curl --output ubuntu18043.iso http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso
Преузимање почиње и иде ка завршетку.
Ако насилно прекинемо преузимање помоћу Цтрл+Ц, враћамо се на командну линију и преузимање се прекида.
Да бисте поново покренули преузимање, користите опцију -Ц (настави на). Ово узрокује да цурл поново покрене преузимање на одређеној тачки или померању унутар циљне датотеке. Ако користите цртицу – као помак, цурл ће погледати већ преузети део датотеке и одредити тачан помак који ће користити за себе.
curl -C - --output ubuntu18043.iso http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso
Преузимање је поново покренуто. цурл извештава о померању на којем се поново покреће.
Преузимање ХТТП заглавља
Са опцијом -И (глава), можете да преузмете само ХТТП заглавља. Ово је исто као и слање ХТТП ХЕАД команда на веб сервер.
curl -I www.twitter.com
Ова команда преузима само информације; не преузима никакве веб странице или датотеке.
Преузимање више УРЛ-ова
Користећи каргс можемо преузети више УРЛ адресе одмах. Можда желимо да преузмемо серију веб страница које чине један чланак или водич.
Копирајте ове УРЛ адресе у уређивач и сачувајте их у датотеци под називом „урлс-то-довнлоад.ткт“. Можемо користити каргс да третирати садржај сваког реда текстуалног фајла као параметра који ће се, заузврат, увијати.
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#0 https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#1 https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#2 https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#3 https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#4 https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#5
Ово је команда коју треба да користимо да би каргс проследили ове УРЛ адресе да се увијају један по један:
xargs -n 1 curl -ONote that this command uses the -O (remote file) output command, which uses an uppercase “O.” This option causes curl to save the retrieved file with the same name that the file has on the remote server.
The -n 1 option tells xargs to treat each line of the text file as a single parameter.
When you run the command, you’ll see multiple downloads start and finish, one after the other.
Checking in the file browser shows the multiple files have been downloaded. Each one bears the name it had on the remote server.
Downloading Files From an FTP Server
Using curl with a File Transfer Protocol (FTP) server is easy, even if you have to authenticate with a username and password. To pass a username and password with curl use the -u (user) option, and type the username, a colon “:”, and the password. Don’t put a space before or after the colon.
This is a free-for-testing FTP server hosted by Rebex. The test FTP site has a pre-set username of “demo”, and the password is “password.” Don’t use this type of weak username and password on a production or “real” FTP server.
curl -u demo:password ftp://test.rebex.netцурл открива да га усмеравамо на ФТП сервер и враћа листу датотека које су присутне на серверу.
Једина датотека на овом серверу је датотека „реадме.ткт“, дужине 403 бајта. Хајде да га преузмемо. Користите исту команду као малопре, са доданим именом датотеке:
curl -u demo:password ftp://test.rebex.net/readme.txtДатотека се преузима и цурл приказује њен садржај у прозору терминала.
У скоро свим случајевима, биће згодније да се преузета датотека сачува на диск уместо нас, уместо да се прикаже у прозору терминала. Још једном можемо користити излазну команду -О (удаљена датотека) да бисмо датотеку сачували на диску, са истим именом датотеке као на удаљеном серверу.
curl -O -u demo:password ftp://test.rebex.net/readme.txtДатотека се преузима и чува на диску. Можемо користити лс да проверимо детаље датотеке. Има исто име као датотека на ФТП серверу и исте је дужине, 403 бајта.
ls -hl readme.txtСлање параметара на удаљене сервере
Неки удаљени сервери ће прихватити параметре у захтевима који им се шаљу. Параметри се могу користити за форматирање враћених података, на пример, или се могу користити за одабир тачних података које корисник жели да преузме. Често је могуће комуницирати са вебом интерфејси за програмирање апликација (АПИ) користећи цурл.
Као једноставан пример, ипифи веб-сајт има АПИ може бити упитан да би се утврдила ваша спољна ИП адреса.
curl https://api.ipify.orgДодавањем параметра формата у команду, са вредношћу „јсон“ можемо поново да захтевамо нашу спољну ИП адресу, али овог пута ће враћени подаци бити кодирани у ЈСОН формат.
curl https://api.ipify.org?format=jsonЕво још једног примера који користи Гоогле АПИ. Враћа ЈСОН објекат који описује књигу. Параметар који морате да наведете је Међународни стандардни број књиге (ИСБН) број књиге. Можете их пронаћи на задњој корици већине књига, обично испод бар кода. Параметар који ћемо овде користити је „0131103628.“
curl https://www.googleapis.com/books/v1/volumes?q=isbn:0131103628Враћени подаци су свеобухватни:
Понекад коврџа, Понекад вгет
Ако бих желео да преузмем садржај са веб локације и да структуру стабла веб локације рекурзивно претражим за тај садржај, користио бих вгет.
Ако бих желео да комуницирам са удаљеним сервером или АПИ-јем и евентуално преузмем неке датотеке или веб странице, користио бих цурл. Нарочито ако је протокол био један од многих које вгет не подржава.