Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ad-inserter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/start-z31508/data/www/linuxcool.ru/wp-includes/functions.php on line 6114
Как установить Curl в Ubuntu/Linux mint и другие - linuxcool.ru

Curl является одним из недооцененных и в то же время крайне важных инструментов командной строки для передачи данных с использованием различных сетевых протоколов.

Как пользователь Linux, вы часто сталкиваетесь с curl, который используется для загрузки программного обеспечения из веб-хранилищ. Curl намного мощнее всего этого. Curl позволяет выполнять более сложные операции, чем простая загрузка файлов: любые HTTP-запросы, SSL-соединения, загрузка по FTP, аутентификация, управление прокси, установка тайм-аутов и многое другое.

Еще одним важным преимуществом является тот факт, что он предназначен для работы без взаимодействия с пользователем и может очень легко использоваться в сценариях. Вот почему curl используется во многих проектах по всему миру.

Цель этого краткого руководства – показать, как установить curl в Ubuntu.

Установка curl на Ubuntu

Поскольку curl – это популярное программное обеспечение с открытым исходным кодом, которое используется уже более двадцати лет, Ubuntu включает его в основной репозиторий.

Это означает, что установка curl в Ubuntu – это всего лишь одна команда. Но прежде чем устанавливать curl, я предлагаю сначала обновить локальный кеш пакетов.

Откройте терминал (используйте сочетание клавиш Ctrl + Alt + T в Ubuntu) и используйте следующую команду для обновления кэша пакетов Ubuntu:

sudo apt update

Теперь, когда вы обновили кеш, вы можете установить curl с помощью команды apt следующим образом:

sudo apt install curl

Что может быть проще, не так ли? После завершения установки вы можете проверить, все ли прошло нормально, используя команду:

curl --version

Эта команда покажет вам текущую установленную версию curl. На момент написания этой статьи вот что у меня получилось (у вас должно быть похожее):

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
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

Что может сделать CURL?

Хм … Все, что связано с передачей данных. Каждый пользователь использует браузер. Даже сейчас вы читаете эту статью через браузер. Что делает браузер, он запрашивает страницу и получает ее в ответ. Он может писать и читать куки. И затем он рендерит (отображает содержимое, изображения и исполняет сценарии JS).

CURL может делать все тоже что и браузер, за исключением последней части рендеринга, потому что это не связано с передачей данных. В заключение, CURL может загружать HTML-страницы, заполнять HTML-формы и отправлять их, загружать файлы с FTP/HTTP-сервера и загружать файлы на них, а также читать/записывать файлы cookie. Это делает его отличным инструментом для написания сценариев, отладки и криминалистического анализа и т. д.

Примеры команд Curl

Давайте посмотрим, что вы можете сделать с Curl.

1. Получить ответ от сервера. Получение HTML-страницы аналогично загрузке файла. Чтобы получить HTML-ответ от http://info.cern.ch введите

curl http://info.cern.ch/

Чтобы получить список сообщений в качестве ответа от сервера ( https://jsonplaceholder.typicode.com/posts ),

curl https://jsonplaceholder.typicode.com/posts

Поскольку мы знаем, как получить ответ от сервера, мы можем загрузить файл (например, логотип Google).

curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

Выше команда будет загружать двоичные данные изображения, которые вы не можете просмотреть в терминале. Вам нужно сохранить их, а затем использовать просмотрщик фотографий, чтобы увидеть их.

Обратите внимание, что различные флаги параметров могут быть размещены в любом месте команды вместо строгого назначения. Так что не беспокойтесь, если вы поместили какую-либо опцию в конец, в то время как примеры имели флаг в начале.

2. Сохраните файл с именем файла по умолчанию. Каждый файл, который подается в Интернете, имеет имя файла. Чтобы использовать то же имя файла, что и загруженное имя файла, используйте флаг -O.

curl -O http://www.google.com/robots.txt

3. Сохраните файл с произвольным именем. Чтобы сохранить имя файла под своим собственным именем, используйте флаг -o, за которым (строго) следует пользовательское имя.

curl -O http://www.google.com/robots.txt googleRobots.txt

4. Скачать несколько файлов. Чтобы загрузить несколько файлов, разделите их пробелами.

curl url1 url2 url3 

Если вы хотите использовать флаг -O для всех URL, используйте

curl url1 url2 url3 -O -O -O

Тот же обходной путь должен быть сделан для любого флага. Это связано с тем, что первое вхождение определенного флага относится к первому URL, второе – к второму URL и т. д.

5. Загрузите ряд файлов. У curl есть встроенная возможность загружать ряд файлов с сервера. Это можно проиллюстрировать на следующем примере.

curl http://www.google.com/logo/logo[1-9].png

Выше команда загрузит файлы начиная от logo1.png, logo2.png, logo3.png и до logo9.png.

6. Возобновить загрузку. Если вы уже частично перенесли файл, вы можете возобновить передачу, используя флаг -C. Смещение, с которого необходимо продолжить передачу, следует передать в качестве параметра для флага -C.

curl -C 1024 https://linuxcool.ru/files/largeFile.mpv -O

7. Выгрузить файл. Чтобы загрузить файл на сервер, необходимо использовать флаг -T с указанием пути к файлу в вашей локальной системе.

curl -T uploadFile.txt https://linuxcool.ru/files

8. Удалить файл. Чтобы удалить файл с именем deleteFile.txt на сервере, можно использовать флаг -X, который предназначен для любого глагола/метода HTTP (например, GET, POST, PUT, DELETE, PATCH). Большинство FTP-серверов имеют настроенный метод DELETE, если не все расширенные методы HTTP.

curl -X DELETE https://linuxcool.ru/files/deleteFile.txt

Вы также можете изменить указанную выше команду для любого метода HTTP, чтобы выполнить соответствующую задачу. Например, если на вашем сервере разрешен метод TRUNCATE (это метод HTTP, а не стандартный), который удаляет только содержимое, а не файла, можно использовать команду, аналогичную приведенной ниже.

curl -X TRUNCATE https://linuxcool.ru/files/mysql.dump

Выше были упомянуты основные виды использования curl. Но могут возникнуть трудности с которыми необходимо бороться, такие как перенаправления, аутентификация пользователей, SSL-сертификаты и т. д. Мы можем называть их надстройками, поскольку они являются необязательными, но при этом остаются важными для определенных целей.

Давайте посмотрим на некоторые из этих аддонов и как справиться с этим с помощью curl в следующем разделе.

9. Избегайте перенаправлений. Когда вы запрашиваете http://www.google.com, вам будет представлена только региональная страница, такая как www.google.ru. Это делается с помощью перенаправлений (HTTP-пакеты с кодами состояния в диапазоне 300-399). Вы можете избежать перенаправлений с опцией –L.

curl -L htttp://www.google.com

10. Аутентификация. Когда сервер настроен для обслуживания только определенных лиц с учетными данными, им будут предоставлены имя пользователя и пароль. Войти в систему можно с помощью флага -u.

curl -u username:password https://linuxcool.ru/files/tasks.txt

11. Ограничить передачу данных. Если вы хотите установить лимит передачи данных, используйте флаг –limit-rate. Следующая команда попытается загрузить файл с ограничением скорости 10K.

curl --limit-rate 10K https://linuxcool.ru/files/logoDetails.tgz

12. Показать/Скрыть статус передачи. Если ответ перенаправляется из терминала, например при загрузке, в curl автоматически отображается индикатор состояния/хода выполнения для передачи. Если вы не хотите видеть индикатор прогресса, просто добавьте команду с флагом -s. Прогресс не будет показан для ответа, направленного на терминал.

13. Игнорировать SSL-сертификаты. Помните ли вы ситуации, когда вам нужно было выдавать исключение сертификата безопасности для посещения некоторых веб-сайтов? Если вы доверяете источникам и хотите выполнить передачу данных, вы можете игнорировать проверку сертификата SSL с помощью флага -k.

curl -k https://notSoSecure.org/files/logoDetails.tgz

14. Получить информацию заголовка. Чтобы отобразить информацию заголовка вместе с переданными данными, используйте флаг -i.

curl -i http://www.google.com/robots.txt

15. Получить только информацию заголовка. Если вам нужны только заголовки, а не данные, используйте флаг -I

curl -I http://www.google.com/robots.txt

16. Изменить User-Agent. Некоторые веб-сайты и серверы не позволяют определенным типам устройств получать доступ к своим системам. Но как они узнают, что мы используем устройство определенного типа? Это связано с полем заголовка HTTP User-Agent. Мы можем изменить этот пользовательский агент с флагом -A.

curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png

17. Отправка данных на сервер. Если серверу нужны некоторые данные такие как токен или ключ API, используйте флаг -d для отправки данных. Данные, которые необходимо отправить, должны следовать за флагом в команде. Можно использовать «&» для объединения нескольких данных. Обычно это делается с помощью запросов GET и POST в браузерах. Это один из способов отправки информации о форме.

curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent

18. Записать куки в файл. Файлы cookie представляют собой небольшую информацию, которая позволяет поддерживать сеанс с протоколом HTTP без сохранения состояния. Чтобы записать cookie в файл, следует использовать флаг -c с именем файла cookie.

curl -c googleCookie.txt http://www.google.com/files

19. Чтение cookie из файла. Чтобы прочитать cookie из файла, можно использовать флаг -b и имя файла cookie.

curl -b googleCookie.txt http://www.google.com/files

Обратите внимание, что флаг -b читает cookie только из файла. Поэтому, если сервер повторно отправляет другой файл cookie, вам может понадобиться использовать опцию -c для их записи.

20. Начать новую сессию. Если вы хотите начать новый сеанс, отбросив куки, используйте флаг -j. Он начинает новый сеанс, даже если вы предоставили файл cookie для чтения с флагом -b.

curl -b googleCookie.txt http://www.google.com/files -j

Поздравляем! Вы сделали все до конца. Если вы найдете эту статью полезной, поделитесь ею с друзьями и подпишитесь на нас в социальных сетях.

А знаете ли вы что:
Curl изначально назывался urlget. Позже он был переименован в httpget и в конечном итоге переименован в curl. Кстати, curl означает «URL клиента».

Остались вопросы? Не стесняйтесь, оставьте комментарий ниже.