Files
netology-devops/src/homework/3.1

Выполнение домашнего задания по теме "Работа в терминале, лекция 1".

Q/A

  1. Какие ресурсы выделены для виртуальной машины по умолчанию?

    RAM: 1024 MB
    CPU: 2
    VRAM: 4 MB
    HDD: 64GB
    
  2. Как добавить оперативной памяти или ресурсов процессора виртуальной машине?

    В конфигурацию Vargrantfile необходимо добавить следующие строки:

    config.vm.provider "virtualbox" do |v|
      v.memory = 2048
      v.cpus = 4
    end
    
  3. man bash

    1. какой переменной можно задать длину журнала history, и на какой строчке manual это описывается?

      При помощи проставления переменной HISTSIZE. Описание находится на 591 строке мануала. Показать строки возможно при помощи указания кастомного пейджера для команды man:

      man --pager="less -N" bash
      
    2. что делает директива ignoreboth в bash?

      Значение ignoreboth проставляется для переменной HISTCONTROL и является сокращением для значений ignorespace и ignoredups. Конкретно это означает, что команды, которые начинаются с пробела или совпадают с предыдущей записью в истории, не попадут в файл истории bash.

    3. В каких сценариях использования применимы скобки {} и на какой строчке man bash это описано?

      Фигурные скобки используются при написании сложных команд (Compound Commands). Про это написано на 196 строке мануала.

    4. Как создать однократным вызовом touch 100000 файлов? Получится ли аналогичным образом создать 300000? Если нет, то почему?

      Создать множество файлов можно написанием сложной команды touch {1..100000}. Создать более ARG_MAX файлов в рамках одного запуска не получится. На текущей версии linux данная переменная равна 2097152.

    5. Что делает конструкция [[ -d /tmp ]]

      Возвращает 0, если /tmp существует и это директория, или 1, в ином случае. Скрипт, проверяющий данный ответ находится в файле double_square_braket.sh.

  4. Добейтесь в выводе type -a bash в виртуальной машине наличия первым пунктом в списке.

    Подобного можно добиться, сделав три шага:

    • Создать новую директорию mkdir /tmp/new_path_directory
    • Сделать символическую ссылку для баша ln -s /usr/bin/bash /tmp/new_path_directory/bash
    • Изменив переменную окружения PATH с помощью export PATH=/tmp/new_path_directory:${PATH}

    Таким образом вывод команды будет таким, как в задаче:

    type -a bash
    bash is /tmp/new_path_directory/bash
    bash is /usr/bin/bash
    bash is /bin/bash
    
  5. Чем отличается планирование команд с помощью batch и at?

    Ничем, это одна и та же команда.