Linux для чайника – Telegram
Linux для чайника
20K subscribers
88 photos
4 files
79 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
loginctl: управление сеансами пользователей.

Эта простая утилита, входящая в состав systemd, позволяет получать информацию о том, какие пользователи находятся в системе в данный момент, как давно они вошли, какой uid им принадлежит, сколько сеансов запущено на данный момент и т.д. Кроме того, loginctl позволяет всем этим управлять.

Примеры использования:

Чтобы заблокировать текущую сессию, выполните:
loginctl lock-session

Чтобы вывести список открытых сеансов:
loginctl list-sessions

Получить список залогинившихся пользователей:
loginctl list-users

Вывести информацию о состоянии текущего сеанса (или любого другого, если добавить id), включая список дочерних процессов и номер виртуальной консоли:
loginctl session-status
Возможности systemd

systemd
— подсистема инициализации и управления службами в Linux.
Основная особенность — интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск ОС.

Помимо простого запуска и контроля служб, systemd предлагает некоторые другие удобные функции, для использования которых ранее системным администраторам приходилось прибегать к помощи дополнительных программ-демонов.

Среди таких функций:
1. сокет-активация служб (заменяет inetd);
2. запуск сервисов по расписанию (заменяет cron);
3. работа с аппаратным сторожевым таймером (заменяет watchdog);
4. смена корня (заменяет chroot);
5. автомонтирование томов и сетевых ресурсов (заменяет mount и fstab);
6. journalctl — служба журналирования;
7. systemd-analyze — анализ скорости запуска служб;
8. systemd-boot — UEFI-загрузчик (заменяет GRUB).
Архитектура systemd

Подсистема оперирует специально оформленными файлами конфигурации — модулями. Каждый модуль отвечает за отдельно взятую службу, точку монтирования, подключаемое устройство, файл подкачки, виртуальную машину и тому подобные ресурсы.

systemd поддерживает следующие типы модулей:
.target — позволяет группировать модули, воплощая концепцию уровней запуска;

.service — отвечает за запуск сервисов (служб), также поддерживает вызов интерпретаторов для исполнения пользовательских скриптов;

.mount — отвечает за монтирование файловых систем;

.automount — позволяет отложить монтирование файловых систем до фактического обращения к точке монтирования;

.swap — отвечает за подключение файла или устройства подкачки;

.timer — позволяет запускать модули по расписанию;

.socket — предоставляет службам поддержку механизма сокет-активации;

.slice — отвечает за создание контейнера cgroups;

.device — позволяет реагировать на подключение устройств;

.path — управляет иерархией файловой системы.
Что такое apt-key?

apt-key - это утилита, используемая для управления ключами, которые APT (пакетный менеджер) использует для аутентификации пакетов. Она тесно связана с утилитой add-apt-repository (добавляет внешние репозитории)

Примеры использования:
Отобразить список доверенных ключей:
apt-key list

Добавить ключ в список доверенных:
apt-key add {{public_key_file.asc}}

Удалить ключ из списка доверенных:
apt-key del {{key_id}}

Ключам, добавленные с помощью apt-key, apt доверяет глобально. Такой ключ может быть использован для авторизации добавления любого другого внешнего хранилища, что представляет собой важную проблему безопасности.
Команда add-apt-repository

add-apt-repository — это скрипт Python, который позволяет вам добавить репозиторий APT в /etc/apt/sources.list или в отдельный файл в каталоге /etc/apt/sources.list.d. Команду также можно использовать для удаления уже существующего репозитория.

Репозиторий APT — это сетевой сервер или локальный каталог, содержащий пакеты deb и файлы метаданных, которые доступны для чтения инструментами APT.

Если add-apt-repository недоступен в вашей системе, вы получите сообщение об ошибке «Команда add-apt-repository не найдена».

Утилита add-apt-repository включена в software-properties-common . Для его установки выполняем:
sudo apt update
sudo apt install software-properties-common
Добавляем репозитории с помощью add-apt-repository

Базовый синтаксис команды add-apt-repository такой:
add-apt-repository [options] repository

Где repository является репозиторием PPA, либо может быть обычной записью репозитория, которую можно добавить в файл sources.list

По умолчанию в ubuntu 18.04 и новее add-apt-repository также обновляет индекс пакета, если открытый ключ репозитория импортируется.

Индекс пакетов — это база данных, в которой хранятся записи о доступных пакетах из репозиториев, включенных в вашей системе.

Если по каким-либо неведанным причинам вы хотите удалить ранее включенный репозиторий, используйте параметр --remove.
Добавление репозиториев PPA

Персональные архивы пакетов (PPA) — с помощью этой службы, пользователи загружают исходные пакеты Ubuntu, которые создаются и публикуются благодаря Launchpad в качестве подходящего репозитория.

При добавлении репозитория PPA команда add-apt-repository создает новый файл в каталоге /etc/apt/sources.list.d/

(условный) пример, чтобы добавить PPA Пупкина В, который предоставляет Proga версии 41.x, вы должны запустить:
sudo add-apt-repository ppa:pupkinv/proga-41
Что такое wine?

Wine — это не виртуальная машина (соответственно, сама аббревиатура «Wine Is Not an Emulator» говорит нам об этом), а уровень совместимости, служащий для запуска приложений Windows на UNIX-подобных ОС. (Сюда же POSIX-совместимые, т.е. Linux, BSD, Mac).

Все просто: в данном случае, системные вызовы Windows преобразуются в эквивалентные вызовы POSIX, используемые ОС на основе Unix, а виртуальная машина (эмулятор), для примера говоря, ничего не преобразует, а имитирует внутреннюю логику Windows.

Чтобы установить wine, первым шагом будет — включение мультиархитектуры (если оно надо вообще), что позволит вам установить на машину как 64-битные, так и 32-битные пакеты:
sudo dpkg --add-architecture i386
sudo apt update

Ну а дальше просто устанавливаем, как любую утилиту:
sudo apt install wine64 wine32

На момент выхода поста, БД приложений Wine насчитывает 28943 приложения.
wait — это команда, которая ожидает завершения заданных заданий и возвращает статус выхода ожидаемой команды.

Поскольку команда wait влияет на текущую среду выполнения оболочки, в большинстве оболочек она реализована как встроенная команда.

Общий синтаксис wait имеет следующий вид:
wait [options] ID

ID — это идентификатор процесса или задания. Если ID не указан, команда ожидает завершения всех дочерних фоновых заданий.

Например, чтобы дождаться фонового процесса с PID 3549 , вы должны использовать:
wait 3549
Команда wall в Linux

wall — это утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей. Сообщения можно вводить либо на терминале, либо в содержимом файла.

Синтаксис команды wall следующий:
wall [OPTIONS] [<FILE>|<MESSAGE>]

Если файл не указан, wall читает сообщение со стандартного ввода.

Самый простой способ передать сообщение — вызвать команду wall с сообщением в качестве аргумента:
wall "The system will be restarted in 10 minutes."

И сообщение будет передано всем пользователям, которые в данный момент вошли в систему.
Как транслировать сообщения из файла в терминал с помощью утилиты wall

wall — это утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.

wall читает из файла только при вызове root!

Чтобы транслировать содержимое файла, вызовите команду wall за которой следует имя файла:
wall file.txt

Чтение из файла — намного удобнее, чем чтение сообщения через терминал, особенно если вы регулярно отправляете одни и те же сообщения.
Передача сообщения пользователю или группе

Чтобы отправить сообщение только определенному пользователю, используйте команду write

write пользователь [терминал]

Также есть утилита wall, с помощью которой можно отправлять сообщения. Она отображает сообщение для всех пользователей и для определенных групп.

Чтобы отправить сообщение для группы под именем devs, запустите команду с параметром -g:

wall -g devs  [терминал]

Группа также может быть указана по ее GID (идентификатору группы).
Как управлять доступом на запись для терминала?

mesg — UNIX-утилита, управляет доступом на запись для терминала данного пользователя. Обычно используется для разрешения или запрета другим пользователям писать на терминал данного пользователя.

Использование:
mesg [y|n]

где y разрешить другим пользователям доступ на запись к вашему терминалу, а n запретить доступ на запись к вашему терминалу.

Если никакие опции не указаны, то mesg отображает текущий статус доступа к вашему терминалу.
Команда Basename в Linux

basename — это утилита командной строки, которая удаляет каталог и конечный суффикс из заданных имен файлов.

Она поддерживает два формата синтаксиса:
basename NAME [SUFFIX]
basename OPTION... NAME...

basename берет имя файла и печатает последний компонент имени файла. При желании он также может удалить любой конечный суффикс.

Самый простой пример — вывести имя файла с удаленными ведущими каталогами:
basename /etc/passwd

Вывод будет включать имя файла:
passwd
Удаление конечного суффикса с помощью basename

Чтобы удалить любой конечный суффикс из имени файла, передайте суффикс в качестве второго аргумента:
basename /etc/hostname name

Результат:
host

Обычно эта функция используется для удаления расширений файлов:
basename /etc/sysctl.conf .conf

В результате останется только sysctl.

Другой способ удалить конечный суффикс — указать суффикс с параметром -s ( --suffix=SUFFIX ):
basename -s .conf /etc/sysctl.conf
Команды перезагрузки Linux

Когда ядро обновляется, если вы не используете Livepatch или KernelCare, вам необходимо перезагрузить систему Linux. Перезагрузка системы также может потребоваться в других обстоятельствах, например, при устранении неполадок оборудования, установке приложений и т. Д. Если вы используете автономный сервер Linux, вам нужно знать, как перезапустить систему из командной строки.

В большинстве современных дистрибутивов Linux утилита systemctl заменяет большинство команд управления питанием, используемых в старых дистрибутивах Linux, на sysvinit. Команды reboot и shutdown являются псевдонимами systemctl и доступны в системе по соображениям совместимости.

Чтобы перезагрузить систему Linux, просто введите:
sudo systemctl reboot

Система будет немедленно перезагружена.
Как импортировать ключи GPG?

Для импорта публичного ключа выполните:

gpg --import public.key

Эта команда добавит публичный ключ, который находится в файле "public.key".

Для добавления приватного ключа из файла private.key выполните команду:

gpg --import private.key
Как сгенерировать пару публичный-приватный ключ в GPG?

gpg — это инструмент шифрования и электронного подписывания. В его работе используется ассиметричное шифрование, основанное на двух ключах: приватный и публичный.

Для генерирования пары ключей запустите команду:
gpg --gen-key

Вам нужно будет ввести:
⁃ Ваше полное имя
⁃ Адрес электронной почты
Затем программа покажет выбранный вами идентификатор пользователя и спросит, всё ли правильно? Если всё правильно, вам нужно будет ввести O. Затем программа попросит ввести пароль.

Вместо --gen-key можно использовать опцию --full-generate-key, которая также сгенерирует пару ключей, но покажет больше опций. При использовании --gen-key некоторые значений опций используются по умолчанию.
Как посмотреть или сохранить свой публичный (открытый) ключ в GPG?

Чтобы посмотреть публичный ключ используйте опцию --export, а также опцию -a, которая означает, что выводимые данные должны быть не в бинарном формате, а в ASCII (то есть текстовом, пригодном для копирования-вставки в сообщение мессенджера или электронной почты), в конце укажите имя пользователя:

gpg --export -a [name]

Для сохранения публичного ключа в файл используйте перенаправление вывода:

gpg --export -a [name] > public.key

В результате публичный ключ будет сохранён в файл public.key.
Как посмотреть или сохранить свой приватный (секретный) ключ в GPG?

Для просмотра и экспорта приватного ключа используется опция
--export-secret-key:

gpg --export-secret-key -a [name]

Для сохранения в файл:

gpg --export-secret-key -a [name] > private.key

Или с опцией -o:
gpg --export-secret-key -a -o private.key [name]