From fd3dbc1e634e28d6eac4c6f18ebd11a1009d7c12 Mon Sep 17 00:00:00 2001 From: ilyamak04 Date: Thu, 31 Jul 2025 10:02:20 +0300 Subject: [PATCH] add linux notes --- docs/linux/Заметки.md | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/linux/Заметки.md b/docs/linux/Заметки.md index beedbc7..072844a 100644 --- a/docs/linux/Заметки.md +++ b/docs/linux/Заметки.md @@ -357,3 +357,54 @@ getcap /usr/local/bin/blackbox_exporter ```bash setcap cap_net_raw+ep /usr/local/bin/blackbox_exporter ``` + +### Процесс загрузки ОС + +Кратко + +- Сначала UEFI инициализирует железо (память, CPU, устройства) и запускает загрузчик из EFI-раздела. +- Загрузчик (например, GRUB) загружает ядро Linux и initramfs, передаёт ядру параметры командной строки. +- Ядро запускается, инициализирует память, CPU, драйверы, затем монтирует initramfs как временную файловую систему. +- Initramfs выполняет скрипты, необходимые для обнаружения и монтирования основной root ФС, расшифровки и подключения томов. +- Initramfs передаёт управление настоящему init-процессу (чаще всего systemd). +- Systemd инициализирует всё окружение (сети, файловые системы, службы) через таргеты и сервисы. +- Запускается пользовательское пространство — getty или display manager, затем пользователь входит и загружаются .bashrc, systemd user-юниты и прочее. + +### Символы в Bash + +- `;` - завершение команды +- `&` - фоновый запуск +- `&&` - и выполнить, если предыдущее успешно +- `\n` - новая строка, внутри кавычек (`echo -e "line1\nline2"`) +- `одинарные кавычки` - никак не интерпретируются, литеральное значение +- `двойные кавычки` - интерпретация переменной + +--- + +- `$(...)` - синтаксис подстановки команды +- `$VAR`, `${VAR:-default}` - значение переменной с модификатором +- `$$` - PID текущего скрипта +- `$?` - код выхода последней команды +- `$#` - кол-во аргументов скрипта +- `$@`, `$*` - все аргументы скрипта +- `$n` - n-ый аргумент скрипта + +--- + +- `[[]]` - расширенный аналог `[]` +- `(())` - для арифмитических выражений +- `-eq, -ne, -gt, -lt` - числовые сравнения +- `==, !=` - строковые сравнения +- `&>` - stdout и stderr в файл + +--- + +- `{}` - команды выполняются в текущем shell +- `()` - команды выполняются в subshell + +--- + +- `*` - любая последовательность (rm *.log) +- `?` - один любой символ (ls file?.txt) +- `[abc]` - один символ из набора (ls file[12].txt) +- `[!abc]` - один символ не из набора (ls file[!3].txt) \ No newline at end of file