reorganize homeworks structure for parts 1-3

This commit is contained in:
2022-04-06 10:22:40 +07:00
parent e8c9ed8597
commit 2f7fd3bee7
30 changed files with 156 additions and 160 deletions

View File

@@ -0,0 +1,7 @@
#!/bin/bash
[[ -d /tmp ]]
echo $?
[[ -d /tmp/some-dir ]]
echo $?

View File

@@ -0,0 +1,70 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-01-terminal/README.md)
по теме "Работа в терминале, лекция 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`:
```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 в виртуальной машине наличия первым пунктом в списке.
Подобного можно добиться, сделав три шага:
* Создать новую директорию `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`?
Ничем, это одна и та же команда.