Скачивание файлов из интернета

LinuxBeginner
Практиковаться сейчас

Введение

В этом лабораторном занятии (LabEx) вы научитесь скачивать файлы из интернета с помощью двух распространенных инструментов командной строки: curl и wget. Эти инструменты являются важными для получения файлов и данных с веб-серверов, что делает их ценными навыками для любого пользователя Linux или разработчика.

curl - это универсальный инструмент, который может скачивать файлы по различным протоколам и выполнять HTTP-запросы. wget - это более простой инструмент, в основном используемый для скачивания файлов с веб-серверов. К концу этого лабораторного занятия вы будете свободно использовать оба инструмента для скачивания файлов и выполнения базовых HTTP-запросов.

Скачивание файла с помощью curl

Начнем с использования curl для скачивания простого HTML-файла с веб-сайта.

  1. Откройте терминал.

  2. Перейдите в директорию проекта. В терминале введите:

cd /home/labex/project

Эта команда изменяет текущую директорию на /home/labex/project. Команда cd означает "change directory" (изменить директорию).

  1. Теперь используем curl для скачивания веб-страницы. Введите следующую команду:
curl http://example.com -o example.html

Разберем эту команду на части:

  • curl - это название программы, которую мы используем.
  • http://example.com - это URL-адрес веб-страницы, которую мы скачиваем.
  • -o example.html сообщает curl сохранить скаченное содержимое в файл с именем example.html. Опция -o означает "output" (выходной файл).
  1. После выполнения команды curl скачает содержимое и сохранит его как example.html в текущей директории. Чтобы убедиться, что файл был скачан, мы можем вывести список содержимого директории:
ls -l example.html

Команда ls выводит список файлов и директорий. Опция -l дает нам подробный (длинный) список. В выводе вы должны увидеть example.html, а также информацию о его размере и времени последнего изменения.

Проверка скачанного файла

Теперь, когда мы скачали файл, давайте посмотрим на его содержимое.

  1. Чтобы отобразить содержимое файла, мы будем использовать команду cat. Введите:
cat example.html

cat означает "concatenate" (соединять), но обычно эта команда используется для отображения содержимого файлов. Вы должны увидеть HTML-содержимое домашней страницы example.com. Это может выглядеть как беспорядочный набор текста, если вы не знакомы с HTML, но не беспокойтесь - это исходный код, который веб-браузеры используют для отображения веб-страниц.

  1. Иногда файлы могут быть очень большими, и мы можем захотеть посмотреть только начало. Для этого мы можем использовать команду head:
head -n 10 example.html

Эта команда показывает вам первые 10 строк файла. Опция -n 10 сообщает head показать 10 строк. Вы можете изменить это число, чтобы увидеть больше или меньше строк.

  1. Чтобы посмотреть конец файла, вы можете использовать команду tail:
tail -n 10 example.html

Это показывает последние 10 строк файла.

Эти команды полезны для быстрого просмотра файлов без полного открытия, особенно при работе с большими файлами.

Скачивание нескольких файлов с помощью curl

curl может скачать несколько файлов одной командой. Попробуем скачать два файла одновременно.

  1. Сначала попробуем скачать как главную страницу, так и страницу "О нас" с сайта example.com и отобразить их содержимое:
curl http://example.com/index.html http://example.com/about.html

Эта команда выведет содержимое обеих страниц в ваш терминал. Вы увидите два HTML-документа, напечатанных один за другим. Это может быть полезно для быстрых проверок, но не очень удобно, если вы хотите сохранить файлы.

  1. Чтобы сохранить эти файлы вместо отображения их содержимого, мы будем использовать опцию -O. Заглавная -O сообщает curl использовать имя файла из URL-адреса:
curl -O http://example.com/index.html -O http://example.com/about.html

Эта команда скачивает оба файла и сохраняет их с оригинальными именами (index.html и about.html) в текущей директории. На этот раз вы не увидите содержимое файлов, напечатанное в терминале.

  1. Чтобы убедиться, что файлы были скачаны, мы можем вывести список содержимого директории:
ls -l index.html about.html

Вы должны увидеть оба файла в списке, а также их размеры и время последнего изменения.

  1. Если вы хотите скачать несколько файлов, но дать им пользовательские имена, вы можете использовать несколько опций -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 часто предпочитают за его простоту и способность обрабатывать большие скачивания или нестабильные соединения.

  1. Начнем с использования wget для скачивания файла с example.com:
wget http://example.com/index.html

Во время скачивания файла wget отобразит индикатор прогресса. Это особенно полезно для больших файлов, так как вы можете видеть, сколько файла уже скачано и сколько времени может занять завершение скачивания.

  1. По умолчанию wget сохраняет файл с его оригинальным именем. Чтобы указать другое имя, используйте опцию -O (обратите внимание, что это заглавная буква O, в отличие от curl, который использует строчную o):
wget -O custom_name.html http://example.com/index.html

Это сохранит файл как custom_name.html. Индикатор прогресса по-прежнему будет отображаться, но файл будет сохранен с указанным вами именем.

Скачивание файлов в определенную директорию

Часто вам нужно будет скачивать файлы в определенную директорию, а не в текущую рабочую директорию. И curl, и wget позволяют сделать это, но они используют разные методы.

  1. Сначала создадим новую директорию, в которую будем скачивать файлы:
mkdir downloads

Эта команда создает новую директорию с именем downloads в текущем расположении.

  1. Теперь используем curl для скачивания файла в эту директорию:
curl -o downloads/curl_file.html http://example.com

Опция -o в curl позволяет нам указать выходной файл, включая его путь. Эта команда скачивает содержимое с example.com и сохраняет его как curl_file.html в директории downloads.

  1. Далее используем wget для скачивания файла в ту же директорию:
wget -P downloads http://example.com/index.html

Опция -P в wget означает "prefix" (префикс) и позволяет нам указать директорию, в которой мы хотим сохранить файл. Эта команда скачивает index.html с example.com и сохраняет его в директории downloads.

  1. Можем проверить, что оба файла были скачаны в директорию downloads:
ls -l downloads

В выводе вы должны увидеть как curl_file.html, так и index.html.

  1. Чтобы посмотреть содержимое этих файлов, не меняя текущую директорию, можно использовать cat с полным путем:
cat downloads/curl_file.html
cat downloads/index.html

Это позволяет нам проверить содержимое скачанных файлов.

Резюме

Поздравляем! Вы успешно завершили лабораторную работу по скачиванию файлов из интернета с использованием curl и wget. Давайте вспомним, что вы узнали:

  1. Вы использовали curl для скачивания отдельных файлов и сохранения их с пользовательскими именами.
  2. Вы изучили, как скачивать несколько файлов одной командой curl.
  3. Вы узнали, как использовать wget для скачивания файлов с именами по умолчанию и пользовательскими именами.
  4. Вы практиковались в рекурсивном скачивании файлов с помощью wget.
  5. Вы узнали, как скачивать файлы в определенную директорию с использованием как curl, так и wget.

Эти навыки являются фундаментальными для многих задач в Linux, начиная от получения веб-контента и заканчивая скачиванием пакетов программного обеспечения. По мере продвижения в изучении Linux вы обнаружите, что эти инструменты незаменимы для различных задач по написанию скриптов и автоматизации.

Помните, что у curl и wget есть гораздо больше опций и возможностей, которые вы можете изучить. Не стесняйтесь посмотреть их руководства (man curl и man wget), чтобы узнать больше о их расширенных функциях.

Продолжайте практиковаться и изучать эти инструменты, чтобы стать более компетентными в работе с файлами и веб-контентом в Linux!