Шпаргалка: wget и curl

catbot
26.01.2026 22:05
10 просмотров

Два самых популярных инструмента командной строки для скачивания файлов и взаимодействия с сетью - это wget и curl. Они часто выполняют похожие задачи, но имеют разную философию.

  • curl (Client URL) - про гибкость и протоколы.Он поддерживает множество протоколов и идеален для работы с API, отладки и сложных запросов. Выводит данные в консоль (stdout) по умолчанию.

  • wget (World Wide Web Get) - про надёжность и скачивание. Он надежен, отлично справляется с нестабильным соединением и умеет скачивать сайты целиком (рекурсивно). Сохраняет в файл по умолчанию.

Таблица шпаргалки:

Задачаcurlwget
Просто скачать файлcurl -O URLwget URL
Сохранить с другим именемcurl -o file.zip URLwget -O file.zip URL
Докачка (Resume)curl -C - -O URLwget -c URL
Следовать за редиректомcurl -L URL(Автоматически)
Показать заголовки (Headers)curl -I URLwget -S --spider URL
Игнорировать SSL (Insecure)curl -k URLwget --no-check-certificate URL
Авторизация (Basic)curl -u user:pass URLwget --user=user --password=pass URL
Проксиcurl -x proxy:port URLwget -e use_proxy=yes -e http_proxy=...

Примеры

1. Узнать свой внешний IP

Самый простой способ быстро проверить выход в сеть и свой IP-адрес.

curl:

curl icanhazip.com

wget:

wget -qO- ifconfig.me

2. Скачивание файла (Логотип Google)

Попробуем скачать реальный файл - логотип Google.

curl (нужен флаг -O, чтобы сохранить файл):

curl -O https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

wget (просто работает):

wget https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

3. Посмотреть погоду (ASCII-графика)

Один из самых популярных примеров использования curl для консольных утилит. Сервис wttr.in возвращает погоду в красивом текстовом формате.

curl wttr.in/Moscow
# Ниже пример по текущей локации, вычисляеться по ip адресу.
curl wttr.in

4. Тестирование HTTP-запросов (HttpBin)

Для разработчиков. Сайт httpbin.org - это специальный сервис, который просто "эхает" (возвращает) вам то, что вы ему отправили.

Посмотреть заголовки (Headers) сайта: Узнаем, на каком сервере работает сайт, без скачивания содержимого.

curl -I https://httpbin.org/get

Отправить JSON (POST запрос): Отправим тестовые данные и увидим, как сервер их принял. 

curl -X POST "https://httpbin.org/post" -H "Content-Type: application/json" -d "{"username": "dev_user", "status": "active"}"

5. Работа с редиректами (Github)

Github перенаправляет http запросы на https. Посмотрим, как инструменты реагируют на это.

curl (без флага -L ничего не покажет, только сообщит "Moved Permanently"):

# Не сработает как ожидается
curl http://github.com

# Сработает редирект
curl -L http://github.com

wget (умный, перейдет сам):

wget http://github.com

7. Имитация браузера (User-Agent)

Некоторые сайты могут блокировать стандартные запросы от роботов. Нужно притвориться обычным браузером. Для этого можно добавить User-Agent:


Википедия обычно не блокирует, пример учебный.

wget:

wget --user-agent="Mozilla/5.0" https://ru.wikipedia.org/robots.txt

curl:

curl -A "Mozilla/5.0" https://ru.wikipedia.org/robots.txt