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