Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Команда Curl в Linux: объяснение с примерами в 2026 году

В Linux команда curl — это... Универсальный инструмент для передачи данных между серверами с использованием URL-адресов. Он поддерживает такие протоколы, как HTTP, HTTPS, FTP и другие. С помощью curl вы можете загружать файлы, тестировать API, отправлять заголовки, проходить аутентификацию, следовать перенаправлениям и автоматизировать сетевые задачи непосредственно из терминала с помощью удобных для скриптов опций.

Если вы работаете с серверами LinuxДля работы с веб-хостингом или API изучение команды curl в Linux имеет важное значение. Она быстрая, позволяет создавать скрипты и идеально подходит для устранения неполадок на веб-сайтах, проверки SSL и взаимодействия с REST-конечными точками. В этом руководстве вы узнаете, что такое curl, как его установить, и увидите реальные примеры использования curl, которые ежедневно применяют системные администраторы и разработчики.


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

curl (клиентский URL) — это утилита командной строки, построенная на основе библиотеки libcurl, которая передает данные с использованием URL-адресов. Она поддерживает HTTP/S, FTP/S, SFTP, SCP, SMTP, IMAP и другие протоколы.

В отличие от браузеров, curl работает в неинтерактивном режиме, что делает его идеальным для автоматизации и тестирования API. Конвейеры CI / CDа также диагностика сервера. Она доступна по умолчанию в большинстве дистрибутивов Linux.

Как установить curl в Linux

В большинстве дистрибутивов Linux есть curl. Сначала проверьте свою версию:

curl --version

Если он отсутствует, установите его, используя свой пакет. manager:

  • Убунту/Дебиан: sudo apt update && sudo apt install curl
  • RHEL/CentOS/Rocky/Alma: sudo dnf install curlor sudo yum install curl
  • Fedora: sudo dnf install curl
  • Arch: sudo pacman -S curl
  • Альпийский: sudo apk add curl

Совет: На серверах с минимальным набором ресурсов рекомендуется установить ca-certificates чтобы избежать ошибок SSL при использовании URL-адресов HTTPS.

Основной синтаксис curl и распространенные параметры

Общий синтаксис:

curl [options] <URL>

Полезные варианты завивки (запомните их в первую очередь):

  • -I (или --head): Получать только HTTP-заголовки.
  • -L: Следуйте перенаправлениям.
  • -o file: Сохранить в файл (с пользовательским именем).
  • -O: Сохраните файл, используя его удаленное имя.
  • -s и -S: Перейти в бесшумный режим и отобразить ошибки.
  • -v / -vv: Многословный / чрезмерно многословный.
  • -X: Укажите метод HTTP (GET, POST, PUT, DELETE).
  • -H: Добавить пользовательский заголовок.
  • --data / --data-raw / --data-binary: Отправить данные тела сообщения.
  • -u: Базовая аутентификация (user:pass).
  • --http2: Принудительное использование HTTP/2.
  • --compressed: Запросить сжатый ответ.
  • --retry: Повторите попытку при кратковременных сбоях.
  • --max-time: Установите максимальное общее время для передачи.

Основные примеры завивки волос (для начинающих и среднего уровня)

1) Простой GET-запрос

curl https://example.com

Эта команда выводит HTML-содержимое в терминал.

2) Переходить по переадресациям

curl -L http://example.com

Используйте -L, когда сайты перенаправляют с HTTP к HTTPS или к каноническим URL-адресам.

3) Скачайте файл (сохраните его под тем же именем).

curl -O https://example.com/file.zip

Используйте заглавные буквы -O Чтобы сохранить имя файла на сервере. Или укажите своё собственное:

curl -o backup.zip https://example.com/file.zip

4) Возобновить прерванную загрузку

curl -C - -O https://example.com/large.iso

-C - Загрузка продолжается с того места, где остановилась предыдущая.

5) Отображать только заголовки ответа

curl -I https://example.com

Полезно для быстрой проверки HTTP-статуса, заголовков кэша и типа сервера.

6) Включите подробную информацию о запросе и ответе (отладка).

curl -v https://example.com

Используйте -v or -vv для более глубокого устранения неполадок, включая согласование SSL/TLS.

7) Отправить пользовательский заголовок

curl -H "Accept: application/json" https://api.example.com/v1/status

Можно добавить несколько заголовков с помощью нескольких способов. -H флаги. Это распространенная практика для REST API.


curl для API: JSON, POST, PUT, DELETE

Отправьте JSON в POST-запросе.

curl -X POST https://api.example.com/v1/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <TOKEN>" \
  --data '{"name":"Alice","email":"alice@example.com"}'

Используйте --data or --data-raw для JSON-данных. Всегда устанавливайте. Content-Type: application/json и заголовки аутентификации, если это необходимо.

Примеры операций PUT (обновление) и DELETE

# Update a user
curl -X PUT https://api.example.com/v1/users/123 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <TOKEN>" \
  --data '{"email":"new@example.com"}'

# Delete a user
curl -X DELETE https://api.example.com/v1/users/123 \
  -H "Authorization: Bearer <TOKEN>"

Загрузка данных формы и файлов (многокомпонентная загрузка)

# Post form fields
curl -X POST https://example.com/form \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data "name=Alice&email=alice@example.com"

# Upload a file
curl -X POST https://api.example.com/v1/upload \
  -H "Authorization: Bearer <TOKEN>" \
  -F "file=@/path/to/report.pdf" \
  -F "meta=quarterly"

Используйте -F Для загрузки многокомпонентных форм curl автоматически устанавливает правильные заголовки-разделители.


Аутентификация с помощью curl (базовая, Bearer, Cookies)

Базовая HTTP-аутентификация

curl -u "username:password" https://secure.example.com/endpoint

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

Токены Bearer (ключи API)

curl -H "Authorization: Bearer $API_TOKEN" https://api.example.com/v1/me

сессия печенье

# Save cookies during login
curl -c cookies.txt -X POST https://example.com/login \
  -d "user=alice&pass=secret"

# Reuse cookies for subsequent requests
curl -b cookies.txt https://example.com/dashboard

SSL/TLS, сертификаты и прокси-серверы

curl по умолчанию выполняет проверку сертификатов при использовании HTTPS. Если вы видите ошибки SSL, убедитесь, что установлены системные пакеты центров сертификации, или укажите собственный центр сертификации.

# Use a custom CA certificate
curl --cacert /etc/ssl/certs/custom-ca.crt https://secure.example.com

# Client certificate (mutual TLS)
curl --cert client.crt --key client.key https://mtls.example.com

# Temporarily ignore certificate errors (not recommended)
curl -k https://self-signed.local

Поддержка прокси-сервера встроена:

# HTTP proxy
curl -x http://proxy.local:3128 https://example.com

# SOCKS5 proxy
curl -x socks5h://user:pass@proxy.local:1080 https://example.com

-k (--insecure) предназначено только для временного тестирования. В производственной среде следует исправлять цепочки доверия, а не обходить проверку.


Расширенные советы по использованию curl для DevOps и хостинга.

Установка тайм-аутов и количества повторных попыток (устойчивые скрипты)

# Fail fast after 5 seconds total; retry up to 3 times on transient errors
curl --max-time 5 --retry 3 --retry-delay 2 --retry-connrefused https://api.example.com/health

Получайте HTTP-статус и тело отдельно.

status=$(curl -s -o /tmp/body.txt -w "%{http_code}" https://example.com/health)
echo "Status: $status"
cat /tmp/body.txt

-w Опция (write-out) предоставляет доступ к полезным метрикам, таким как время, размер и протокол.

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

curl -o /dev/null -s -w "dns:%{time_namelookup} connect:%{time_connect} ttfb:%{time_starttransfer} total:%{time_total}\n" https://example.com

Загрузить несколько файлов

# Brace expansion (if server path structure matches)
curl -O https://example.com/logs/2024-12-{01..31}.log

Для обработки больших объемов данных или параллельной обработки рассмотрите возможность использования GNU Parallel или xargs с curl.


Устранение ошибок curl

  • Проблемы с подключением: Используйте -v и проверьте переменные DNS, брандмауэра и прокси-сервера (http_proxy, https_proxy).
  • Ошибки SSL: Установите ca-certificatesпроверьте системное время или используйте --cacert.
  • Таймауты: Увеличим --max-time или установить --connect-timeout.
  • HTTP 4xx/5xx: Диагностика -I заголовки, проверка аутентификации и полезной нагрузки, включение -v.
  • Ограничения по ставкам: Добавить откат с --retryи соблюдать квоты API.

curl против wget: когда что использовать?

  • завиток: Идеально подходит для API, пользовательских заголовков, аутентификации, детализированных протоколов и точного управления. Многофункциональный. запросить особенности.
  • получить: Отлично подходит для рекурсивной загрузки веб-сайтов и зеркалирования. Мощный. скачать Особенности, упрощенные для массовой выборки данных.
  • На серверах многие администраторы устанавливают обе программы. Для тестирования и автоматизации REST-запросов обычно первым выбором является curl.

Рекомендации по обеспечению безопасности при использовании curl

  • Избегайте сохранения секретов в истории командной оболочки; используйте переменные окружения или .netrc (ограничить права доступа до 600).
  • Не полагайся на -k В рабочей среде: исправить цепочки доверия сертификатов.
  • Проверяйте входные данные, если создаете скрипты, которые интерполируют URL-адреса или заголовки.
  • Используйте токены API с минимальными привилегиями и регулярно их обновляйте.
  • Маскировать токены в логах CI и отдавать предпочтение --silent с явной обработкой ошибок.

Примеры реального использования серверов Linux

  • Медицинские осмотры: запрос /health конечные точки в модулях cron или systemd.
  • Хуки развертывания: Уведомлять веб-хуки (Slack, Git, CI) после релизов.
  • Проверка резервной копии: После загрузки проверьте URL-адреса объектного хранилища или CDN.
  • Проверка SSL: Перед запуском в эксплуатацию подтвердите цепочки сертификатов и срок их действия на тестовой среде.
  • Тестирование контента: Получите заголовки для подтверждения состояния кэша (например, Cache-Control, ETag).

At YouStable, Наши manageИнженеры хостинга ежедневно используют curl для проверки доступности, подтверждения HTTPS на новых доменах и проверки интеграции API. Если вы предпочитаете сосредоточиться на своем приложении, пока мы занимаемся диагностикой и производительностью на уровне сервера, наши managed планы могут помочь.


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

Для чего используется curl в Linux?

curl используется для передачи данных по URL-адресам. Типичные задачи включают загрузку файлов, тестирование и отладку HTTP/HTTPS-запросов, отправку заголовков, аутентификацию с API, загрузку файлов и автоматизацию сетевых задач в скриптах или конвейерах CI/CD.

Как отправить заголовки с помощью curl?

Использовать -H флаг. Пример: curl -H "Accept: application/json" -H "Authorization: Bearer <TOKEN>" https://api.example.com/v1/dataДобавьте один -H заголовком.

Как отправить POST-запрос с помощью curl?

Используйте -X POST с --data or -F Для форм. Для JSON: curl -X POST -H "Content-Type: application/json" --data '{"id":1}' https://api.example.comДля загрузки файлов: curl -F "file=@/path/to/file.txt" https://api.example.com/upload.

Как мне отслеживать перенаправления в curl?

Использовать -L опции: curl -L http://example.comЭто полезно, когда сайт перенаправляет с HTTP на HTTPS или использует канонические правила перенаправления.

Как исправить ошибки SSL-сертификата при использовании curl?

Установите или обновите ca-certificatesУбедитесь, что системное время установлено правильно, или укажите пользовательский центр сертификации. --cacert, избежать -k за исключением временного тестирования; вместо этого исправьте цепочку сертификатов для обеспечения безопасности на уровне, пригодном для использования в производственной среде.


Заключение

В Linux команда curl — это... Незаменимый инструмент для разработчиков, системных администраторов и владельцев сайтов. С помощью нескольких основных функций вы можете скачивать файлы, тестировать API и многое другое. manage заголовки и надежная автоматизация рабочих процессов. Сохраните приведенные выше примеры в закладках и интегрируйте curl в свой повседневный набор инструментов, чтобы ускорить диагностику и задачи развертывания.

Отправить по:

Санджит Чаухан

Санджит Чаухан — блогер и эксперт по SEO, посвятивший себя помощи веб-сайтам в органическом росте. Он делится практическими стратегиями, полезными советами и идеями для увеличения трафика, улучшения позиций в поисковой выдаче и максимального присутствия в интернете.

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

Наверх