fix homework 3.1

This commit is contained in:
2022-05-06 10:55:57 +07:00
parent f0ccb8abfc
commit 6867d8f214

View File

@@ -3,68 +3,76 @@
## Q/A ## 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` необходимо добавить следующие строки: ### Задача 2
```
config.vm.provider "virtualbox" do |v| Как добавить оперативной памяти или ресурсов процессора виртуальной машине?
В конфигурацию `Vargrantfile` необходимо добавить следующие строки:
```
config.vm.provider "virtualbox" do |v|
v.memory = 2048 v.memory = 2048
v.cpus = 4 v.cpus = 4
end end
``` ```
3. `man bash` ### Задача 3
1. какой переменной можно задать длину журнала history, и на какой строчке manual это описывается?
При помощи проставления переменной `HISTSIZE`. Описание находится на 591 строке мануала. Исследование `man bash`.
Показать строки возможно при помощи указания кастомного пейджера для команды `man`:
```shell
man --pager="less -N" bash
```
2. что делает директива `ignoreboth` в bash? > 1. какой переменной можно задать длину журнала history, и на какой строчке manual это описывается?
Значение `ignoreboth` проставляется для переменной `HISTCONTROL` и является сокращением для значений `ignorespace` и `ignoredups`. При помощи проставления переменной `HISTSIZE`. Описание находится на 591 строке мануала.
Конкретно это означает, что команды, которые начинаются с пробела или совпадают с предыдущей записью в истории, не попадут в файл истории `bash`. Показать строки возможно при помощи указания кастомного пейджера для команды `man`:
```shell
man --pager="less -N" bash
```
3. В каких сценариях использования применимы скобки `{}` и на какой строчке man bash это описано? > 2. что делает директива `ignoreboth` в bash?
Фигурные скобки используются при написании сложных команд (`Compound Commands`). Про это написано на 196 строке мануала. Значение `ignoreboth` проставляется для переменной `HISTCONTROL` и является сокращением для значений `ignorespace` и `ignoredups`.
Конкретно это означает, что команды, которые начинаются с пробела или совпадают с предыдущей записью в истории, не попадут в файл истории `bash`.
4. Как создать однократным вызовом touch 100000 файлов? Получится ли аналогичным образом создать 300000? Если нет, то почему? > 3. в каких сценариях использования применимы скобки `{}` и на какой строчке man bash это описано?
Создать множество файлов можно написанием сложной команды `touch {1..100000}`. Создать более `ARG_MAX` файлов в рамках одного запуска не получится. Фигурные скобки используются при написании сложных команд (`Compound Commands`). Про это написано на 196 строке мануала.
На текущей версии linux данная переменная равна 2097152.
5. Что делает конструкция `[[ -d /tmp ]]` > 4. Как создать однократным вызовом touch 100000 файлов? Получится ли аналогичным образом создать 300000? Если нет, то почему?
Возвращает 0, если `/tmp` существует и это директория, или 1, в ином случае. Создать множество файлов можно написанием сложной команды `touch {1..100000}`. Создать более `ARG_MAX` файлов в рамках одного запуска не получится.
Скрипт, проверяющий данный ответ находится в файле [double_square_braket.sh](double_square_braket.sh). На текущей версии linux данная переменная равна 2097152.
4. Добейтесь в выводе type -a bash в виртуальной машине наличия первым пунктом в списке. > 5. Что делает конструкция `[[ -d /tmp ]]`
Подобного можно добиться, сделав три шага: Возвращает 0, если `/tmp` существует и это директория, или 1, в ином случае.
* Создать новую директорию `mkdir /tmp/new_path_directory` Скрипт, проверяющий данный ответ находится в файле [double_square_braket.sh](double_square_braket.sh).
* Сделать символическую ссылку для баша `ln -s /usr/bin/bash /tmp/new_path_directory/bash`
* Изменив переменную окружения `PATH` с помощью `export PATH=/tmp/new_path_directory:${PATH}`
Таким образом вывод команды будет таким, как в задаче: > 4. Добейтесь в выводе type -a bash в виртуальной машине наличия первым пунктом в списке.
```shell
type -a bash
bash is /tmp/new_path_directory/bash
bash is /usr/bin/bash
bash is /bin/bash
```
5. Чем отличается планирование команд с помощью `batch` и `at`?
Ничем, это одна и та же команда. Подобного можно добиться, сделав три шага:
* Создать новую директорию `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`?
Ничем, это одна и та же команда.