Команда curl в Linux

Linux 命令大全Энциклопедия команд Linux


Что такое команда curl?

curl (Client URL) — это мощный инструмент командной строки, используемый для передачи данных в системах Linux/Unix. Он поддерживает множество протоколов, включая HTTP, HTTPS, FTP, SFTP и т. д., и является незаменимым инструментом для разработчиков и системных администраторов в их повседневной работе.

Основные возможности curl

  1. Поддержка множества протоколов: Поддерживает почти все основные сетевые протоколы
  2. Работа без интерфейса: Полностью консольный инструмент, подходит для скриптов и автоматизированных задач
  3. Богатый функционал: Поддерживает загрузку/скачивание файлов, отправку форм, обработку Cookie и т. д.
  4. Кроссплатформенность: Доступен на Linux, macOS и Windows

Базовая структура синтаксиса

Базовый формат синтаксиса команды curl выглядит следующим образом:

curl [options] [URL...]

Описание параметра

  • options: Различные необязательные параметры, используемые для управления поведением curl
  • URL: Один или несколько URL-адресов для доступа

Подробное объяснение общих опций и параметров

1. Базовое управление запросами

Опция Описание Пример
-X Указать метод HTTP curl -X POST https://example.com
-d Отправить данные POST curl -d "name=John" https://example.com
-G Отправить данные -d как GET-параметры curl -G -d "q=keyword" https://search.com
-H Добавить заголовок запроса curl -H "Content-Type: application/json" https://api.com

2. Управление выводом

Опция Описание Пример
-o Сохранить вывод в файл curl -o output.html https://example.com
-O Сохранить с использованием имени удалённого файла curl -O https://example.com/file.zip
-s Тихий режим (не показывать ход выполнения) curl -s https://api.com/data.json
-v Показывать подробный процесс обмена curl -v https://example.com

3. Аутентификация и безопасность

Опция Описание Пример
-u Аутентификация по имени пользователя и паролю curl -u user:pass https://secure.com
-k Игнорировать проверку SSL-сертификата curl -k https://self-signed.com
--cacert Указать CA-сертификат curl --cacert cert.pem https://secure.com

4. Другие практические параметры

Опция Описание Пример
-L Следовать перенаправлениям curl -L https://short.url
-I Получать только информацию заголовка curl -I https://example.com
--limit-rate Ограничить скорость передачи curl --limit-rate 100K https://largefile.com

Разбор практического примера

Пример 1: Получить содержимое веб-страницы

Пример

curl https://www.example.com

Эта простейшая команда получит содержимое указанного URL и отобразит его в терминале.

Пример 2: Скачивание файлов

Пример

curl -O https://example.com/files/document.pdf

-OЭта опция сохранит его локально, используя имя удалённого файла (document.pdf).

Пример 3: Отправка POST-запроса

Пример

curl -X POST -d "username=admin&password=123456" https://api.example.com/login

Эта команда отправляет имя пользователя и пароль в конечную точку входа.

Пример 4: POST-запрос с данными JSON

Пример

curl -X POST -H "Content-Type: application/json" \
-d '{"name":"John","age":30}' \
https://api.example.com/users

Пример 5: Использование Cookie для поддержания сессии

Пример

curl -c cookies.txt -b cookies.txt https://member.example.com
  • -cСохранить Cookie, возвращённый сервером
  • -bОтправить сохранённый Cookie

Продвинутое использование

1. Загрузка файла

Пример

curl -F "file=@localfile.txt" https://upload.example.com

-FИспользуется для отправки форм типа multipart/form-data, обычно применяется для загрузки файлов.

2. Проверка времени отклика веб-сайта

Пример

curl -o /dev/null -s -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total: %{time_total}\n" https://example.com

Эта команда выведет:

  • Время подключения
  • Время до первого байта (TTFB)
  • Общее время

3. Используйте прокси-сервер

Пример

curl -x http://proxy.example.com:8080 https://target.com

-xОпция задаёт адрес и порт прокси-сервера.


Часто задаваемые вопросы

Вопрос 1: Как устранить ошибки проверки сертификата в curl?

При возникновении ошибок SSL-сертификата можно временно использовать-kопцию игнорирования проверки (не рекомендуется для производственных сред) или правильно настроить сертификат CA:

Пример

curl --cacert /path/to/cert.pem https://secure-site.com

Вопрос 2: Как отобразить заголовки запроса и ответа?

Используйте-vили-ioption:

Пример

curl -v https://example.com  # Показать подробный процесс обмена данными
curl -i https://example.com  # Показывать только заголовки ответа

Вопрос 3: Как ограничить скорость скачивания?

Используйте--limit-rateопция (единица измерения может быть K, M):

Пример

curl --limit-rate 200K -O https://example.com/largefile.iso

Практические упражнения

  1. Попробуйте скачать данные публичного JSON API и сохранить их в файл
  2. Используйте curl для проверки времени отклика вашего локального сервера разработки
  3. Попрактикуйтесь в отправке GET-запроса с заголовком аутентификации
  4. Попробуйте загрузить тестовый файл в бесплатный сервис HTTP bin

Пример

# Практика
curl https://httpbin.org/get
curl -o test.json https://api.github.com/users/octocat
curl -X POST -F "file=@test.txt" https://httpbin.org/post

Итог

curl — мощный инструмент передачи сетевых данных в системах Linux. После изучения этой статьи вы должны освоить:

  1. Базовый синтаксис и общие параметры curl
  2. Примеры использования в различных типичных сценариях
  3. Расширенные возможности и практические советы
  4. Решения типичных проблем

Чтобы узнать больше подробностей, вы можете обратиться к официальной документации curl или использоватьman curlПросмотрите страницу руководства. По мере накопления практического опыта вы обнаружите, что curl способен на гораздо большее, чем эти базовые функции.

Linux 命令大全Энциклопедия команд Linux

Другие расширения