Команда curl предназначена для передачи данных по сети без взаимодействия с пользователем. Она предустановлена во многих дистрибутивах Linux.
Утилита поддерживает множество протоколов и её возможности огромны.
Содержание
Синтаксис
curl [опции...] <url>
Опции
- -d, --data <data>
- Данные HTTP POST
- -f, --fail
- Быстрый сбой без вывода ошибок
- -h, --help <category>
- Получить помощь по командам
- -i, --include
- Включить заголовки ответа протокола в выходные данные
- -o, --output <file>
- Запись в файл
- -O, --remote-name
- Запись вывода в файл с именем удаленного файла
- -s, --silent
- Безмолвный режим
- -T, --upload-file <file>
- Передать локальный ФАЙЛ в пункт назначения
- -u, --user <user:password>
- Пользователь сервера и пароль
- -A, --user-agent <name>
- Отправить User-Agent <имя> на сервер
- -v, --verbose
- Сделать операцию более разговорчивой
- -V, --version
- Показать номер версии и выйти
Установка
Проверьте, установлен ли curl
в вашей системе
oleg@mobile:~:$ curl
curl: try 'curl --help' for more information
При его отсутствии будет получено следующее
oleg@mobile:~:$ curl
curl command not found
Команда curl
легко устанавливается в любом дистрибутиве Linux.
Установка curl в Ubuntu
$ sudo apt install curl
Примеры использования команды curl в Linux
Скачивание файлов
Скачивание файла с сохранением под оригинальным именем
oleg@mobile:~/build/slackbuild64-15.0:$ curl -O https://slackbuilds.org/slackbuilds/15.0/games/extremetuxracer.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2458 100 2458 0 0 2616 0 --:--:-- --:--:-- --:--:-- 2614
Скачивание файла с сохранением под другим именем
oleg@mobile:~/build/slackbuild64-15.0:$ curl -o etr.tar.gz https://slackbuilds.org/slackbuilds/15.0/games/extremetuxracer.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2458 100 2458 0 0 3872 0 --:--:-- --:--:-- --:--:-- 3870
Результат
oleg@mobile:~/build/slackbuild64-15.0:$ ls -l
итого 8
-rw-r--r-- 1 oleg users 2458 мая 20 10:03 etr.tar.gz
-rw-r--r-- 1 oleg users 2458 мая 20 09:59 extremetuxracer.tar.gz
Возобновление загрузки
Для того чтобы в случае обрыва соединения при скачивании большого файла не пришлось его закачивать заново следует использовать опцию -O
. Она позволит продолжить загрузку файла.
Ограничение скорости скачивания
Если вы не хотите, чтобы curl
занял всю пропускную способность канала, то можно ограничить скорость скачивания.
Ограничение скорости до 250K
$ curl --limit-rate 250K https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso22.04/ubuntu-22.04-desktop-amd64.iso -O
Защищённый FTP-сервер
В этом случае используется опция -u
и указываются имя пользователя и пароль
$ curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.protection.com/
После входа в систему в домашнем каталоге пользователя выводится список файлов и каталогов.
Для скачивания одного из файлов выполняется следующая команда
$ curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.protection.com/file-1.tar.gz
Для загрузки файла на сервер используется опция -T
$ curl -T file-new.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.protection.com/
Заключение
Из вышеперечисленных примеров ясно, насколько нужным и полезным инструментом в Linux является команда curl
. При работе в командной строке умение пользоваться этой утилитой будет весьма полезным.