Введение
В этом лабораторном занятии (LabEx) вы научитесь скачивать файлы из интернета с помощью двух распространенных инструментов командной строки: curl и wget. Эти инструменты являются важными для получения файлов и данных с веб-серверов, что делает их ценными навыками для любого пользователя Linux или разработчика.
curl - это универсальный инструмент, который может скачивать файлы по различным протоколам и выполнять HTTP-запросы. wget - это более простой инструмент, в основном используемый для скачивания файлов с веб-серверов. К концу этого лабораторного занятия вы будете свободно использовать оба инструмента для скачивания файлов и выполнения базовых HTTP-запросов.
Скачивание файла с помощью curl
Начнем с использования curl для скачивания простого HTML-файла с веб-сайта.
Откройте терминал.
Перейдите в директорию проекта. В терминале введите:
cd /home/labex/project
Эта команда изменяет текущую директорию на /home/labex/project. Команда cd означает "change directory" (изменить директорию).
- Теперь используем
curlдля скачивания веб-страницы. Введите следующую команду:
curl http://example.com -o example.html
Разберем эту команду на части:
curl- это название программы, которую мы используем.http://example.com- это URL-адрес веб-страницы, которую мы скачиваем.-o example.htmlсообщаетcurlсохранить скаченное содержимое в файл с именемexample.html. Опция-oозначает "output" (выходной файл).
- После выполнения команды
curlскачает содержимое и сохранит его какexample.htmlв текущей директории. Чтобы убедиться, что файл был скачан, мы можем вывести список содержимого директории:
ls -l example.html
Команда ls выводит список файлов и директорий. Опция -l дает нам подробный (длинный) список. В выводе вы должны увидеть example.html, а также информацию о его размере и времени последнего изменения.
Проверка скачанного файла
Теперь, когда мы скачали файл, давайте посмотрим на его содержимое.
- Чтобы отобразить содержимое файла, мы будем использовать команду
cat. Введите:
cat example.html
cat означает "concatenate" (соединять), но обычно эта команда используется для отображения содержимого файлов. Вы должны увидеть HTML-содержимое домашней страницы example.com. Это может выглядеть как беспорядочный набор текста, если вы не знакомы с HTML, но не беспокойтесь - это исходный код, который веб-браузеры используют для отображения веб-страниц.
- Иногда файлы могут быть очень большими, и мы можем захотеть посмотреть только начало. Для этого мы можем использовать команду
head:
head -n 10 example.html
Эта команда показывает вам первые 10 строк файла. Опция -n 10 сообщает head показать 10 строк. Вы можете изменить это число, чтобы увидеть больше или меньше строк.
- Чтобы посмотреть конец файла, вы можете использовать команду
tail:
tail -n 10 example.html
Это показывает последние 10 строк файла.
Эти команды полезны для быстрого просмотра файлов без полного открытия, особенно при работе с большими файлами.
Скачивание нескольких файлов с помощью curl
curl может скачать несколько файлов одной командой. Попробуем скачать два файла одновременно.
- Сначала попробуем скачать как главную страницу, так и страницу "О нас" с сайта
example.comи отобразить их содержимое:
curl http://example.com/index.html http://example.com/about.html
Эта команда выведет содержимое обеих страниц в ваш терминал. Вы увидите два HTML-документа, напечатанных один за другим. Это может быть полезно для быстрых проверок, но не очень удобно, если вы хотите сохранить файлы.
- Чтобы сохранить эти файлы вместо отображения их содержимого, мы будем использовать опцию
-O. Заглавная-Oсообщаетcurlиспользовать имя файла из URL-адреса:
curl -O http://example.com/index.html -O http://example.com/about.html
Эта команда скачивает оба файла и сохраняет их с оригинальными именами (index.html и about.html) в текущей директории. На этот раз вы не увидите содержимое файлов, напечатанное в терминале.
- Чтобы убедиться, что файлы были скачаны, мы можем вывести список содержимого директории:
ls -l index.html about.html
Вы должны увидеть оба файла в списке, а также их размеры и время последнего изменения.
- Если вы хотите скачать несколько файлов, но дать им пользовательские имена, вы можете использовать несколько опций
-o:
curl -o custom_index.html http://example.com/index.html -o custom_about.html http://example.com/about.html
Это сохранит файлы как custom_index.html и custom_about.html.
Использование wget для скачивания файлов
Теперь давайте рассмотрим wget, еще один популярный инструмент для скачивания файлов. wget часто предпочитают за его простоту и способность обрабатывать большие скачивания или нестабильные соединения.
- Начнем с использования
wgetдля скачивания файла с example.com:
wget http://example.com/index.html
Во время скачивания файла wget отобразит индикатор прогресса. Это особенно полезно для больших файлов, так как вы можете видеть, сколько файла уже скачано и сколько времени может занять завершение скачивания.
- По умолчанию
wgetсохраняет файл с его оригинальным именем. Чтобы указать другое имя, используйте опцию-O(обратите внимание, что это заглавная буква O, в отличие отcurl, который использует строчную o):
wget -O custom_name.html http://example.com/index.html
Это сохранит файл как custom_name.html. Индикатор прогресса по-прежнему будет отображаться, но файл будет сохранен с указанным вами именем.
Скачивание файлов в определенную директорию
Часто вам нужно будет скачивать файлы в определенную директорию, а не в текущую рабочую директорию. И curl, и wget позволяют сделать это, но они используют разные методы.
- Сначала создадим новую директорию, в которую будем скачивать файлы:
mkdir downloads
Эта команда создает новую директорию с именем downloads в текущем расположении.
- Теперь используем
curlдля скачивания файла в эту директорию:
curl -o downloads/curl_file.html http://example.com
Опция -o в curl позволяет нам указать выходной файл, включая его путь. Эта команда скачивает содержимое с example.com и сохраняет его как curl_file.html в директории downloads.
- Далее используем
wgetдля скачивания файла в ту же директорию:
wget -P downloads http://example.com/index.html
Опция -P в wget означает "prefix" (префикс) и позволяет нам указать директорию, в которой мы хотим сохранить файл. Эта команда скачивает index.html с example.com и сохраняет его в директории downloads.
- Можем проверить, что оба файла были скачаны в директорию
downloads:
ls -l downloads
В выводе вы должны увидеть как curl_file.html, так и index.html.
- Чтобы посмотреть содержимое этих файлов, не меняя текущую директорию, можно использовать
catс полным путем:
cat downloads/curl_file.html
cat downloads/index.html
Это позволяет нам проверить содержимое скачанных файлов.
Резюме
Поздравляем! Вы успешно завершили лабораторную работу по скачиванию файлов из интернета с использованием curl и wget. Давайте вспомним, что вы узнали:
- Вы использовали
curlдля скачивания отдельных файлов и сохранения их с пользовательскими именами. - Вы изучили, как скачивать несколько файлов одной командой
curl. - Вы узнали, как использовать
wgetдля скачивания файлов с именами по умолчанию и пользовательскими именами. - Вы практиковались в рекурсивном скачивании файлов с помощью
wget. - Вы узнали, как скачивать файлы в определенную директорию с использованием как
curl, так иwget.
Эти навыки являются фундаментальными для многих задач в Linux, начиная от получения веб-контента и заканчивая скачиванием пакетов программного обеспечения. По мере продвижения в изучении Linux вы обнаружите, что эти инструменты незаменимы для различных задач по написанию скриптов и автоматизации.
Помните, что у curl и wget есть гораздо больше опций и возможностей, которые вы можете изучить. Не стесняйтесь посмотреть их руководства (man curl и man wget), чтобы узнать больше о их расширенных функциях.
Продолжайте практиковаться и изучать эти инструменты, чтобы стать более компетентными в работе с файлами и веб-контентом в Linux!



