Что такое curl
curl - это утилита, установленная почти на всех ОС (Linux, macOS, Windows). Она делает то, что делает браузер, но без графики: запрашивает URL и выводит "сырой" ответ (HTML, JSON, FTP‑файлы и т.п.) прямо в терминал.
Почему он нужен
- Автоматизация. Вывод
curlлегко передать вgrep,sed,awkилиjq. Так можно собрать погоду, курс криптовалют, статус сайта, цены‑товаров и любые другие данные без парсинга страниц в браузере. - Установка скриптов. Часто встречаются конструкции типа
curl -fsSL https://example.com/install.sh | sh- работают одинаково на любой системе. - Загрузка/отдача.
curl -O URLскачивает файлы, умеет следовать редиректам, возобновлять прерванные загрузки и передавать куки/аутентификацию. Поддерживает HTTP, HTTPS, FTP, SFTP, SMB, IMAP/POP3/SMTP и др.
Примеры, которые реально работают
| Задача | Команда | Что делает |
|---|---|---|
| Показать HTML‑страницы | curl https://example.com |
Выводит исходный код |
| Погода в терминале | curl -s https://wttr.in |
Текстовый прогноз |
| Публичный IP | curl ifconfig.me |
Возвращает ваш IP |
| Курс биткоина | curl -s https://rate.sx/btc |
JSON‑ответ с ценой |
| Установка Ollama | `curl -fsSL https://ollama.com | sh` |
Эти команды можно включить в cron‑задачи, чтобы получать уведомления о падении сайта, изменении цены или новых письмах.
Как собрать простой скрипт‑мониторинг
#!/usr/bin/env bash
# check_site.sh - проверка статуса и запись в лог
URL="https://my.site"
LOG="/var/log/site_check.log"
status=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
date=$(date +"%Y-%m-%d %H:%M:%S")
echo "$date $URL $status" >> "$LOG"
Запланировать в cron (каждые 5 минут):
*/5 * * * * /usr/local/bin/check_site.sh
Почему curl лучше новых "wget‑похожих" утилит
- Богатый набор протоколов - не только HTTP/HTTPS.
- Гибкая работа с заголовками и куки - удобно для API‑запросов.
- Поддержка многопоточных запросов (
--parallel) без сторонних скриптов. - Малый размер и отсутствие зависимостей - работает даже в минимальных образах Docker.
curl - это не просто "старый" инструмент, а универсальный "текстовый браузер", который легко встраивается в любые пайплайны, скрипты и автоматические задачи. Его простота, кроссплатформенность и поддержка множества протоколов делают его незаменимым для администраторов, разработчиков и продвинутых пользователей, даже когда появляются более "модные" альтернативы.
