Файлы исключенные из системы контроля версий Git (gitignore):
- Директории .terraform
- Файлы .tfstate
- Лог файлы crash.log
- Файлы с переменными, которые могут содержать пароли, .tfvars
- Файлы с переопределёнными настройками override.tf
- Файлы c конфигурацией терминала (CLI) .terraformrc
Merge и Rebase вывод git
* ebf0d6a (HEAD -> main, origin/main, origin/HEAD, gitlab/main, bitbucket/main) Merge branch 'git-rebase'
|\
| * 65cfc6f (origin/git-rebase, gitlab/git-rebase, bitbucket/git-rebase, git-rebase) Merge branch 'git-merge'
| |\
* | \ 9e2f1c3 Merge branch 'git-merge'
|\ \ \
| |/ /
|/| /
| |/
| * c72ad71 (origin/git-merge, gitlab/git-merge, bitbucket/git-merge, git-merge) merge: use shift
| * df2d78f merge: @ instead *
* | 90758ce rebase: use =====
|/
* d53c7ae prepare for merge and rebase
* 123d98e (tag: v0.1, tag: v0.0) Moved and deleted
| * 92ba173 (origin/fix, fix) Updated README.md in PyCharm
| * dbfda8f New brach fix created
|/
* 47892f4 Prepare to delete and move
* a3cd0b3 Updated README.md
* 1440559 Added gitignore
* 9a73b0e First commit
* 41dfa52 Initial commit
- Найдите полный хеш и комментарий коммита, хеш которого начинается на aefea.
Полный хэшaefead2207ef7e2aa5dc81a34aedf0cad4c32545
КоммантарийUpdate CHANGELOG.md
Командаgit show -s aefea
- Какому тегу соответствует коммит 85024d3?
Тегv0.12.23
Командаgit show -s 85024d3
- Сколько родителей у коммита b8d720? Напишите их хеши.
Два родителя (мерж коммит)
Хеш 156cd7859e05c36c06b56d013b55a252d0bb7e158
Хеш 29ea88f22fc6269854151c571162c5bcf958bee2b
Командаgit show -s --pretty=%P b8d720
- Перечислите хеши и комментарии всех коммитов которые были сделаны между тегами v0.12.23 и v0.12.24.
33ff1c03b (tag: v0.12.24) v0.12.24
b14b74c49 [Website] vmc provider links
3f235065b Update CHANGELOG.md
6ae64e247 registry: Fix panic when server is unreachable
5c619ca1b website: Remove links to the getting started guide's old location
06275647e Update CHANGELOG.md
d5f9411f5 command: Fix bug when using terraform login on Windows
4b6d06cc5 Update CHANGELOG.md
dd01a3507 Update CHANGELOG.md
225466bc3 Cleanup after v0.12.23 release
Команда git show -s --oneline v0.12.23..v0.12.24
5. Найдите коммит в котором была создана функция func providerSource, ее определение в коде выглядит так func providerSource(...) (вместо троеточего перечислены аргументы).
Коммит 8c928e835
Команда git log --oneline -S 'func providerSource('
6. Найдите все коммиты в которых была изменена функция globalPluginDirs.
Коммиты
78b122055 Remove config.go and update things using its aliases
52dbf9483 keep .terraform.d/plugins for discovery
41ab0aef7 Add missing OS_ARCH dir to global plugin paths
66ebff90c move some more plugin search path logic to command
8364383c3 Push plugin discovery down into command package
Команды
Найти файл, в котором объявляется функция git grep "func globalPluginDirs("
Найти имзенения в файле plugins.go, связанные с изменением этой функции git log -L:globalPluginDirs:plugins.go --oneline -s
7. Кто автор функции synchronizedWriters?
Автор Martin Atkins <mart@degeneration.co.uk>
Команда git log -S 'func synchronizedWriters('
- Какие ресурсы выделены по-умолчанию?
Выделено 2 CPU, 1024 MB RAM, 64 GB disk - Как добавить оперативной памяти или ресурсов процессора виртуальной машине?
Отредактировать файл Vagrantfile в директории, где хранятся файлы конфигурации
config.vm.box = "bento/ubuntu-20.04"
config.vm.provider "virtualbox" do |v|
v.memory = 4128
v.cpus = 4
end
Проверить корректность Vagrantfile файла можно командой vagrant validate
Перезапустить виртуальную машину можно командой vagrant reload
8. Ознакомиться с разделами man bash, почитать о настройках самого bash:
- какой переменной можно задать длину журнала history
, и на какой строчке manual это описывается?
HISTSIZE
- количество команд, которые будут запоминаться в истории. В 862 строке манула.
HISTFILESIZE
- количество строк, которыу будут записываться в файле истории. В 846 строке мануала.
- что делает директива ignoreboth
в bash?
Это возможное значение переменной HISTCONTROL
. ignoreboth
задаёт запрет на сохранение в истории строк, начинающихся с пробела, и строк, совпадающих с предыдущей командой.
9. В каких сценариях использования применимы скобки {} и на какой строчке man bash это описано?
Фигурные скобки обозначают список. Он запускает команду в текущей оболочке. В 257 строке мануала.
10. С учётом ответа на предыдущий вопрос, как создать однократным вызовом touch 100000 файлов? Получится ли аналогичным образом создать 300000? Если нет, то почему?
- Командой touch {0..100000}
можно создать 100000 файлов.
- Команда touch {0..300000}
выдаёт ошибку /usr/bin/touch: Argument list too long
Эта ошибка обозначает, что количество аргументов в команде превысило значение ARG_MAX
. ARG_MAX
обозначает максимальную длинну аргументов. Аргументы вводятся в терминале после названия команды. Множество аргументов может передаваться за один раз. Для просмотра лимита аргументов можно использовать команду getconf ARG_MAX
. Ограничение в 2097152 байт.
11. В man bash поищите по /\[\[
. Что делает конструкция [[ -d /tmp ]]
[[ условие ]]
возвращает 0 или 1 в зависимости от условного выражения. Условие -d /tmp
возвращает 0, если файл существует и является директорией.
12. Добейтесь в выводе type -a bash в виртуальной машине наличия первым пунктом в списке: bash is /tmp/new_path_directory/bash
# Создаём директорию
mkdir /tmp/new_path_directory
# Копируем в неё файл bash
cp /bin/bash /tmp/new_path_directory/
# Добавляем каталог в переменную $PATH (в начало)
PATH=/tmp/new_path_directory/bash:$PATH
- Чем отличается планирование команд с помощью batch и at?
at
- запланировать однократный запуск команды в заданное время
batch
- запланировать запуск команды, когда загрузка упадёт ниже 1,5