add linux notes

This commit is contained in:
Илья Макаров 2025-07-31 10:02:20 +03:00
parent 8f8d6981e8
commit fd3dbc1e63

View File

@ -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)