Auto | arch-x1: 2026-06-03 21:34:10

This commit is contained in:
Dmitry
2026-06-03 21:34:10 +03:00
parent b0e229d980
commit 68ce894541
141 changed files with 1 additions and 10750 deletions
@@ -1,43 +0,0 @@
---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: Command Help
---
# Command Help
Command Help в Linux — это ряд встроенных средств для получения справочной информации по командам, их опциям и примерам использования прямо из терминала.
## Основные Способы Получения Справки
- **man** — показывает подробный справочник (manual page) по выбранной команде, включая синтаксис, описание, параметры, примеры и ссылки на связанные команды. Например: `man ls`.
- **--help** — быстро выводит основные параметры и краткое описание команды, например: `ls --help`.
- **help** — используется для получения информации о встроенных командах оболочки (shell built-ins), например: `help cd`.
- **tldr** — выводит краткие, практичные примеры использования популярных команд в лаконичном виде, если установлен соответствующий пакет.
## Структура Документации Man
Man-страницы обычно содержат следующие разделы:
- NAME: имя и краткое описание команды.
- SYNOPSIS: шаблон вызова с аргументами.
- DESCRIPTION: подробная информация о работе команды.
- OPTIONS: полный список параметров и их значения.
- EXAMPLES: примеры реального использования.
- SEE ALSO: связанные команды и файлы.
## Навигация В Справке
В man-страницах перемещаться можно с помощью стрелок, пробела (пролистать страницу), Enter (строка), символов j/k, b/Space, q для выхода и / для поиска по тексту документации.
## Применение
Эти команды критичны для изучения синтаксиса, параметров и назначения любых команд Linux, а также для самостоятельного освоения терминала. Даже опытные специалисты используют их для поиска редких параметров или тонкостей работы системных утилит.
## Связанные заметки
- [[Linux]]
@@ -1,39 +0,0 @@
---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: Command Path
---
# Command Path
Command Path - это переменная окружения в ОС на базе Linux, обозначается _PATH_. Представляет из себя упорядоченный список каталогов, в которых оболочка самостоятельно ищет бинарные файлы программ, которые были вызваны без указания абсолютного пути.
Содержит пути каталогов, разделенных двоеточием:
```text
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
```
Для просмотра переменной PATH, можно использовать команду _echo_: `echo $PATH`
> [!attention] Порядок расположения При наличии бинарных файлов с одинаковым названием (одинаковые программы), оболочка запустит тот, что находится раньше при сплошном чтении переменной PATH
Временно добавить путь в PATH можно командой `export PATH=<путь к программе>:$PATH`, тогда путь будет добавлен в начало переменной, перед основным содержанием.
Для постоянного добавления, используются файлы конфигурации оболочки `.bashrc, .zshrc` и файлы конфигурации системы `/etc/profile`.
Для удобного поиска каталога программы в переменной PATH используется утилита `which`.
```text
$ which bash
> /bin/bash
```
Другие переменные окружения - [[Environment Variables]]
## Связанные заметки
- [[Linux]]
@@ -1,35 +0,0 @@
---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: Environment Variables
---
# Environment Variables
Переменные окружения в Linux - это именованные переменные, содержащие значения, определяющие характер работы программ и процессов во время работы системы. Они хранят в себе настройки, информацию о пользователе и др.информацию, которая может потребоваться в ходе работы.
Каждая переменная имеет имя и значение, записываются в таком формате: `NAME=VALUE` При запуске нового процесса, большинство переменных наследуются от родительского процесса. 
**Основные переменные:**
|Name|Value|
|---|---|
|PATH|Список каталогов для команд - [Command Path](Command Path)|
|HOME|Домашняя директория текущего пользователя (~)|
|USER|Имя текущего пользователя|
|SHELL|Оболочка по умолчанию для тек.пользователя|
|LANG|Язык интерфейса (локализация)|
|PWD|Текущая рабочая директория (`pwd`)|
|Для просмотра всех доступных переменных окружения, используется утилита `env`/`printenv`||
Для задания новой переменной окружения, используется синтаксис: `export NAME=VALUE` - для текущей сессии. `echo 'export NAME=VALUE' >> ~/.bashrc` - для текущего пользователя на постоянной основе.
## Связанные заметки
- [[Images, Dockerfile - Docker]] — инструкция `ENV` в Dockerfile задаёт переменные окружения внутри контейнера; тот же механизм, что `export` в Linux
## Связанные заметки
- [[Linux]]
@@ -1,71 +0,0 @@
---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: File Permissions
---
# File Permissions
В системах Linux права и привилегии присваиваются файлам и каталогам в виде разрешений. Эти разрешения указывают, кто может _читать_, _писать_ или _выполнять_ (запустить) их. В Linux существует три типа пользователей: **владельцы**, **группы** и **другие**, которые могут иметь другой набор разрешений.
**Права (permissions)** — указывают, кто и что может делать с файлом или директорией:
- `r` (read) — чтение содержимого файла или просмотр списка файлов в директории.
- `w` (write) — запись/изменение содержимого файла или добавление/удаление файлов в директории.
- `x` (execute) — запуск файла как программы или возможность "войти" в директорию (`cd`).
**Категории пользователей:**
- **owner (u)** — владелец файла.
- **group (g)** — члены группы, связанной с файлом.
- **others (o)** — все остальные пользователи.
`-rwxr--r-- 1 root root 4096 Jan 1 12:00 filename`
- → это обычный файл (d будет означать директорию).
- rwx → владелец может читать, писать, исполнять.
- r-- → группа может только читать.
- r-- → остальные могут только читать.
## Основные Команды
- `chmod` → изменение прав (permissions).
```bash
chmod 600 <path_to_file>
chmod o+r -R <path_to_dir>
```
- `chown` → изменение владельца (owner).
```bash
chown <user> <path>
chown <user>:<group> <path>
```
- `chgrp` → изменение группы.
```bash
chgrp <group> <file>
```
## Особые Биты
Кроме стандартных rwx есть **особые флаги**:
- **SUID (set user ID,** `**s**`**)** — исполняемый файл запускается с правами владельца.
Пример: `/usr/bin/passwd` запускается с правами root, хотя ты обычный пользователь.
- **SGID (set group ID)** — аналогично, но для группы. У директорий — новые файлы наследуют группу.
- **Sticky bit (**`**t**`**)** — на директориях запрещает пользователям удалять чужие файлы. Классический пример: `/tmp`.
## Связанные заметки
- [[Volume - Docker]] — uid/gid и права доступа в Docker Volumes определяются Linux-правами; проблема "root как владелец" решается через userns-remap + chown
- [[Modules - Ansible]] — модуль `user` управляет uid/gid; `file`/`copy` задают владельца и режим файлов через те же chmod/chown
- [[Сегментация сети]] — принцип наименьших привилегий: на уровне ФС — rwx для owner/group/others; на уровне сети — VLAN для Admin/Employee/Guest
## Связанные заметки
- [[Linux]]
@@ -1,23 +0,0 @@
---
status: stable
type: moc
tags:
- admin
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: Linux
---
# Linux
%% Begin Waypoint %%
- [[Command Help]]
- [[Command Path]]
- [[Environment Variables]]
- [[File Permissions]]
- [[Redirects]]
- [[Super-user]]
%% End Waypoint %%
@@ -1,39 +0,0 @@
---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: Redirects
---
# Redirects
В системах на базе ядра Linux существуют 3 стандартных потока данных:
1. stdin - стандартный поток ввода (с клавиатуры, например)
2. stdout - стандартный поток вывода (вывод программы)
3. stderr - стандартный поток ошибок
Можно с ними работать, управляя данными в этих потоках. Например, вывод одной команды перевести на вход другой команды.
- `>` — вывод stdout в файл (создаёт новый файл или перезаписывает существующий):
`ls > output.txt`.
- `>>` — добавляет stdout к концу файла:
`echo "new" >> output.txt`.
- `<` — перенаправляет stdin из файла:
`wc -l < file.txt`.
- `2>` — вывод stderr в файл:
`ls nonexist 2> errors.txt`.
- `2>&1` — объединяет потоки ошибок и вывода, часто с последующим перенаправлением:
`ls file1 file2 > result.txt 2>&1`.
- `&>` — краткая запись для объединённого перенаправления stdout и stderr:
`command &> alloutput.txt`.
**Pipeline** 
Существует понятие конвеера - перенаправление выхода предшевствующей команды на вход следующей: `ls | grep user`
## Связанные заметки
- [[Linux]]
@@ -1,27 +0,0 @@
---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
title: Super-user
---
# Super-user
Super-user (суперпользователь, root) в linux - это пользователь, обладающий всей полнотой власти и полномочий (все системы и данные полностью подчиняются суперпользователю).
По _best prictice_, работать из под рута неправильно. Правильно, создать пользователя администратора и добавить его в группу _sudo_ (_wheel_ для RHEL).
Утилиты для работы с рут-доступом:
1. `sudo` - временное выполнение команды из под рута `sudo -i` - интерактивный доступ к рут-пользователю
2. `su`/`su -` - переход к root. `su - user` - переход под юзера.
## Связанные заметки
- [[Docker - Дополнительные знания]] — "не запускать контейнер от root" — прямое применение принципа least privilege; rootless Podman реализует его на уровне демона
- [[Modules - Ansible]] — `become: true` в Ansible — это sudo под капотом; позволяет выполнять задачи с привилегиями root
## Связанные заметки
- [[Linux]]