Все ключевые опции командной строки cURL — с примерами и пояснениями. Готовый справочник для разработчиков, DevOps и системных администраторов.
📥 1. Базовые опции: получение данных и сохранение
| Опция | Синтаксис | Описание |
-O | curl -O https://site.com/file.zip | Сохраняет файл с оригинальным именем из URL. |
-o | curl -o newname.zip https://site.com/file.zip | Сохраняет файл с заданным именем. |
-L | curl -L https://google.com | Автоматически следует за редиректами (301, 302). |
-C - | curl -C - -O https://site.com/bigfile.zip | Продолжает прерванную загрузку. |
📋 2. Работа с HTTP-заголовками
| Опция | Синтаксис | Описание |
-I / --head | curl -I https://site.com | Получает только HTTP-заголовки (без тела). |
-i | curl -i https://site.com | Выводит и заголовки, и тело ответа. |
-A | curl -A "Mozilla/5.0..." https://site.com | Меняет User-Agent. |
-H | curl -H "X-Custom: value" https://site.com | Добавляет произвольный заголовок. |
-v | curl -v https://site.com | Подробный вывод (debug-режим). |
📤 3. Отправка данных (POST, PUT, формы)
| Опция | Синтаксис | Описание |
-X | curl -X POST https://api.com | Задает HTTP-метод (GET, POST, PUT, DELETE). |
-d | curl -d "name=John&age=30" -X POST https://api.com | Отправляет POST-данные (application/x-www-form-urlencoded). |
-d @file | curl -d @data.json -H "Content-Type: application/json" https://api.com | Читает данные для POST из файла. |
-F | curl -F "file=@photo.jpg" -F "comment=text" https://api.com/upload | Имитирует отправку веб-формы (multipart/form-data). |
-T | curl -T myfile.txt ftp://server.com/ --user login:pass | Загружает файл на сервер. |
🔐 4. Безопасность, сеть и аутентификация
| Опция | Синтаксис | Описание |
-u | curl -u username:password https://api.com | Базовая HTTP-аутентификация (Basic Auth). |
-k | curl -k https://self-signed.badssl.com | Игнорирует проверку SSL-сертификата. |
--cacert | curl --cacert mycert.pem https://site.com | Указывает свой файл с CA-сертификатами. |
-x | curl -x proxy.server.com:8080 https://google.com | Использует прокси-сервер. |
--limit-rate | curl --limit-rate 100K -O https://file.com | Ограничивает скорость скачивания. |
⚡ 5. Продвинутые возможности
🔁 Групповая обработка (Globbing)
curl -O "https://site.com/file[1-3].txt"
curl -O "https://site.com/image_[a-z].jpg"
🧩 Переменные (--variable и --expand)
curl --variable %API_TOKEN --expand-url "https://api.com/token/{{API_TOKEN}}/check"
⏱️ Измерение времени ответа
curl -o /dev/null -s -w 'Total: %{time_total}s\nSpeed: %{speed_download}\n' https://example.com/file
🍪 Работа с cookies
# Сохранить куки
curl -c cookies.txt -d "login=user&pass=123" https://site.com/login
# Использовать куки
curl -b cookies.txt https://site.com/profile
💡 Справка прямо в терминале:
curl --help — краткий список опций
curl --help all — все 200+ опций
curl --manual — полное руководство (man page)
📌 Практические примеры
✅ API-запрос с JSON и токеном
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"name": "John", "email": "john@example.com"}'
✅ Скачивание с ограничением скорости
curl --limit-rate 500K -O https://example.com/largefile.iso
✅ Проверка только заголовков ответа
curl -I -L https://example.com