From 6867d8f214b5be55b1626ecb46befe08357269ec Mon Sep 17 00:00:00 2001 From: dannc Date: Fri, 6 May 2022 10:55:57 +0700 Subject: [PATCH] fix homework 3.1 --- src/homework/03-sysadmin/3.1/readme.md | 118 +++++++++++++------------ 1 file changed, 63 insertions(+), 55 deletions(-) diff --git a/src/homework/03-sysadmin/3.1/readme.md b/src/homework/03-sysadmin/3.1/readme.md index 65b6d43..b9b5ce2 100644 --- a/src/homework/03-sysadmin/3.1/readme.md +++ b/src/homework/03-sysadmin/3.1/readme.md @@ -3,68 +3,76 @@ ## Q/A -1. Какие ресурсы выделены для виртуальной машины по умолчанию? +### Задача 1 - ``` - RAM: 1024 MB - CPU: 2 - VRAM: 4 MB - HDD: 64GB - ``` +Какие ресурсы выделены для виртуальной машины по умолчанию? -2. Как добавить оперативной памяти или ресурсов процессора виртуальной машине? +``` +RAM: 1024 MB +CPU: 2 +VRAM: 4 MB +HDD: 64GB +``` - В конфигурацию `Vargrantfile` необходимо добавить следующие строки: - ``` - config.vm.provider "virtualbox" do |v| - v.memory = 2048 - v.cpus = 4 - end - ``` +### Задача 2 -3. `man bash` - 1. какой переменной можно задать длину журнала history, и на какой строчке manual это описывается? +Как добавить оперативной памяти или ресурсов процессора виртуальной машине? - При помощи проставления переменной `HISTSIZE`. Описание находится на 591 строке мануала. - Показать строки возможно при помощи указания кастомного пейджера для команды `man`: - ```shell - man --pager="less -N" bash - ``` +В конфигурацию `Vargrantfile` необходимо добавить следующие строки: - 2. что делает директива `ignoreboth` в bash? - - Значение `ignoreboth` проставляется для переменной `HISTCONTROL` и является сокращением для значений `ignorespace` и `ignoredups`. - Конкретно это означает, что команды, которые начинаются с пробела или совпадают с предыдущей записью в истории, не попадут в файл истории `bash`. +``` +config.vm.provider "virtualbox" do |v| + v.memory = 2048 + v.cpus = 4 +end +``` + +### Задача 3 + +Исследование `man bash`. + +> 1. какой переменной можно задать длину журнала history, и на какой строчке manual это описывается? + +При помощи проставления переменной `HISTSIZE`. Описание находится на 591 строке мануала. +Показать строки возможно при помощи указания кастомного пейджера для команды `man`: +```shell +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](double_square_braket.sh). + +> 4. Добейтесь в выводе type -a bash в виртуальной машине наличия первым пунктом в списке. - 3. В каких сценариях использования применимы скобки `{}` и на какой строчке man bash это описано? +Подобного можно добиться, сделав три шага: +* Создать новую директорию `mkdir /tmp/new_path_directory` +* Сделать символическую ссылку для баша `ln -s /usr/bin/bash /tmp/new_path_directory/bash` +* Изменив переменную окружения `PATH` с помощью `export PATH=/tmp/new_path_directory:${PATH}` - Фигурные скобки используются при написании сложных команд (`Compound Commands`). Про это написано на 196 строке мануала. - - 4. Как создать однократным вызовом touch 100000 файлов? Получится ли аналогичным образом создать 300000? Если нет, то почему? +Таким образом вывод команды будет таким, как в задаче: +```shell +type -a bash +bash is /tmp/new_path_directory/bash +bash is /usr/bin/bash +bash is /bin/bash +``` +> 5. Чем отличается планирование команд с помощью `batch` и `at`? - Создать множество файлов можно написанием сложной команды `touch {1..100000}`. Создать более `ARG_MAX` файлов в рамках одного запуска не получится. - На текущей версии linux данная переменная равна 2097152. - - 5. Что делает конструкция `[[ -d /tmp ]]` - - Возвращает 0, если `/tmp` существует и это директория, или 1, в ином случае. - Скрипт, проверяющий данный ответ находится в файле [double_square_braket.sh](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}` - - Таким образом вывод команды будет таким, как в задаче: - ```shell - type -a bash - bash is /tmp/new_path_directory/bash - bash is /usr/bin/bash - bash is /bin/bash - ``` -5. Чем отличается планирование команд с помощью `batch` и `at`? - - Ничем, это одна и та же команда. +Ничем, это одна и та же команда. \ No newline at end of file