Skip to content

Latest commit

 

History

History
106 lines (68 loc) · 8.84 KB

File metadata and controls

106 lines (68 loc) · 8.84 KB

Домашнее задание к занятию «Работа в терминале. Лекция 1»

Цель задания

В результате выполнения задания вы:

  • научитесь работать с базовым функционалом инструмента VirtualBox, который помогает с быстрой развёрткой виртуальных машин;
  • научитесь работать с документацией в формате man, чтобы ориентироваться в этом полезном и мощном инструменте документации;
  • познакомитесь с функциями Bash (PATH, HISTORY, batch/at), которые помогут комфортно работать с оболочкой командной строки (шеллом) и понять некоторые его ограничения.

Инструкция к заданию

  1. Установите средство виртуализации Oracle VirtualBox.

  2. Установите средство автоматизации Hashicorp Vagrant.

  3. В вашем основном окружении подготовьте удобный для дальнейшей работы терминал. Можно предложить:

    • iTerm2 в Mac OS X;
    • Windows Terminal в Windows;
    • выбрать цветовую схему, размер окна, шрифтов и т.д.;
    • почитать о кастомизации PS1 и применить при желании.

    Несколько популярных проблем:

    • добавьте Vagrant в правила исключения, перехватывающие трафик, для анализа антивирусов, таких, как Kaspersky, если у вас возникают связанные с SSL/TLS ошибки;
    • MobaXterm может конфликтовать с Vagrant в Windows;
    • Vagrant плохо работает с директориями с кириллицей (может быть вашей домашней директорией), тогда можно либо изменить VAGRANT_HOME, либо создать в системе профиль пользователя с английским именем;
    • VirtualBox конфликтует с Windows Hyper-V, и его необходимо отключить;
    • WSL2 использует Hyper-V, поэтому с ним VirtualBox также несовместим;
    • аппаратная виртуализация (Intel VT-x, AMD-V) должна быть активна в BIOS;
    • в Linux при установке VirtualBox может дополнительно потребоваться пакет linux-headers-generic (debian-based) / kernel-devel (rhel-based).

Дополнительные материалы для выполнения задания

  1. Конфигурация VirtualBox через Vagrant.
  2. Использование условий в Bash.

Задание

  1. С помощью базового файла конфигурации запустите Ubuntu 20.04 в VirtualBox посредством Vagrant:

    • Создайте директорию, в которой будут храниться конфигурационные файлы Vagrant. В ней выполните vagrant init. Замените содержимое Vagrantfile по умолчанию следующим:

       Vagrant.configure("2") do |config|
       	config.vm.box = "bento/ubuntu-20.04"
       end
    • Выполнение в этой директории vagrant up установит провайдер VirtualBox для Vagrant, скачает необходимый образ и запустит виртуальную машину.

    • vagrant suspend выключит виртуальную машину с сохранением её состояния — т. е. при следующем vagrant up будут запущены все процессы внутри, которые работали на момент вызова suspend, vagrant halt выключит виртуальную машину штатным образом.

  2. Изучите графический интерфейс VirtualBox, посмотрите, как выглядит виртуальная машина, которую создал для вас Vagrant, какие аппаратные ресурсы она выделила. Определите, какие ресурсы выделены по умолчанию.

  3. Познакомьтесь с возможностями конфигурации VirtualBox через Vagrantfile: документация. Изучите, как добавить оперативную память или ресурсы процессора виртуальной машине.

  4. Команда vagrant ssh из директории, в которой содержится Vagrantfile, позволит вам оказаться внутри виртуальной машины без дополнительных настроек. Попрактикуйтесь в выполнении обсуждаемых команд в терминале Ubuntu.

  5. Изучите разделы man bash, почитайте о настройках самого bash:

    • какой переменной можно задать длину журнала history, и на какой строчке manual это описывается?
    • что делает директива ignoreboth в bash?
  6. В каких сценариях использования применимы скобки {}, на какой строчке man bash это описано?

  7. С учётом ответа на предыдущий вопрос подумайте, как создать однократным вызовом touch 100 000 файлов. Получится ли аналогичным образом создать 300 000 файлов? Если нет, то объясните, почему.

  8. В man bash поищите по /\[\[. Что делает конструкция [[ -d /tmp ]]?

  9. Сделайте так, чтобы в выводе команды type -a bash первым стояла запись с нестандартным путём, например, bash is... Используйте знания о просмотре существующих и создании новых переменных окружения, обратите внимание на переменную окружения PATH.

    bash is /tmp/new_path_directory/bash
    bash is /usr/local/bin/bash
    bash is /bin/bash

    Другие строки могут отличаться содержимым и порядком. В качестве ответа приведите команды, которые позволили вам добиться указанного вывода, или соответствующие скриншоты.

  10. Чем отличается планирование команд с помощью batch и at?

  11. Завершите работу виртуальной машины, чтобы не расходовать ресурсы компьютера или батарею ноутбука.

В качестве решения дайте ответы на вопросы свободной форме.


Правила приёма домашнего задания

В личном кабинете отправлена ссылка на .md-файл в вашем репозитории.

Критерии оценки

Зачёт:

  • выполнены все задания;
  • ответы даны в развёрнутой форме;
  • приложены соответствующие скриншоты и файлы проекта;
  • в выполненных заданиях нет противоречий и нарушения логики.

На доработку:

  • задание выполнено частично или не выполнено вообще;
  • в логике выполнения заданий есть противоречия и существенные недостатки.