星 «Звезда» 1999

curl: сайт из терминала

В терминале: zvezda learn curl. Урок покажет карточку и завершится; сделайте шаг и снова запустите урок - он проверит и покажет следующую.

Шаг 1 из 4

Дарья: Кэндзи записал: «curl - это браузер без экрана: даёшь адрес - печатает ответ». Все команды урока - на сервере (там лежит ваш токен). Адрес - целиком в двойных кавычках:

curl -sS "https://moad.galoev.com/lab/hello?token=$(cat ~/.zvezda/token)"

Кавычки нужны из-за ? и $(...); двойные - чтобы $(...) подставился (одинарные бы его выключили). -sS - «тихо, но ошибки показывать».

Шаг 2 из 4

Дарья: Чтобы ответ лёг в файл, а не на экран, - -o ИМЯ. А -f превращает ошибку сайта в ошибку команды: без него curl молча сохранит страницу ошибки вместо файла.

curl -sS -f -o ~/zvezda/learn/hello.txt "https://moad.galoev.com/lab/hello?token=$(cat ~/.zvezda/token)"
cat ~/zvezda/learn/hello.txt

Шаг 3 из 4

Дарья: Так же скачивают архивы. Зайдите в папку урока, скачайте учебный архив и распакуйте:

cd ~/zvezda/learn
curl -sS -f -o sample.tar.gz https://moad.galoev.com/lab/sample.tar.gz
tar -xzvf sample.tar.gz

Шаг 4 из 4

Дарья: А если файла на сайте нет? Этого архива там нет специально - попробуйте:

cd ~/zvezda/learn
curl -sS -f -o missing.tar.gz https://moad.galoev.com/lab/missing.tar.gz

Что сделал curl? 1 - скачал архив; 2 - сообщил об ошибке и ничего не сохранил.

Шпаргалка

curl -sS "адрес"            - ответ сайта на экран (-sS: тихо, ошибки видно)
curl -sS -f -o файл "адрес" - сохранить в файл; ошибка сайта = ошибка команды
адрес с ? или $(...) - в двойных кавычках
все команды с токеном - на сервере ДЗ
скачали архив - tar -xzvf архив.tar.gz