# Linux operating system ## Streams Базовые потоки: * `0` - stdin (`/proc//fd/0`) * `1` - stdout (`/proc//fd/1`) * `2` - stderr (`/proc//fd/2`) Для перенаправления потока можно использовать `X>&Y`, где `X` поток, который нужно перенаправить, `Y` - поток, в который нужно направить данные (может быть стандартным файлом). ## Kernel Версия ядра: `uname -r`. Версия дистрибутива: `cat /etc/issue` (debian-based), `cat /etc/redhat-release` (centos-based). Посмотреть всю конфигурацию системы: `sysctl -a`. Логи системы: `dmesg`, `syslog`. ## Systemctl * `systemctl list-units --all` * `systemctl status ` * `systemctl cat ` - просмотреть файл настроек сервиса * `systemctl list-dependencies ` ```shell systemctl list-dependencies docker docker.service ● ├─containerd.service ● ├─docker.socket ● ├─system.slice ● ├─network-online.target ● │ └─NetworkManager-wait-online.service ● └─sysinit.target ● ├─apparmor.service <...> ``` * `journalctl -f` * `journalctl -f -u docker` ## Filesystems * `stat ` ### File types * regular file (`ls -la` - `-`) * directory (`ls -la` - `d`) * hardlink (`ls -la` - `l`) 1 файл - 1 hardlink 1 директрория - минимум 2 hardlink (у пустой директории - 2, +1 за каждую директорию внутри) * symlink (`ls -la` - `l`) * pipe (`ls -la` - `p`) Перенаправление потоков, только однонаправленный `mkfifo ` * socket (`ls -la` - `s`) Двунаправленный поток, производительнее, чем pipe. Используется для взаимодействия между процессами. ### File access `chown`, `chmod`, `umask` Права по умолчанию: * `file`: `666 - umask` * `dir`: `777 - umask` Дополнительные права доступа: * `sticky` - создание доступно всем, удаление только файлы пользователя * `setuid` * `setgid` `lsattr`/`chattr` ### Raid `mdadm` ### LVM `lvs`, `vgs`, `vgdisplay`, `pvdisplay` ### Partitions `fdisk -l`/`fdisk`, `sfdisk` ### Filesystems `mkfs`, `mount`, `/etc/fstab` ## Network * `ping ` * `whois ` * `whois -h whois.radb.net ` * `bgpq3 -J ` * `traceroute -An ` * `mtr -zn ` * `dig +trace @8.8.8.8 ` * `dig -x ` * `telnet ` * `ipcalc /` ### SSH * `ssh-copy-id user@server` - добавление ssh-ключа на сервер для пользователя * `ssh-keygen -F server` - проверка ssh-сертификатов сервера * `ssh-keygen -R server` - удаление записи сервера из `known_hosts` ### Web-servers * ssl config generation: https://ssl-config.mozilla.org/