vault backup: 2026-06-03 14:09:18
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
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]]
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
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]]
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
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]]
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
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]]
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
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 %%
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
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]]
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user