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?
Значение `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`?
Ничем, это одна и та же команда.
Ничем, это одна и та же команда.