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

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

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

Для поиска информации о такой сущности воспользуйтесь командой id:

Результат программы будет примерно такой:
uid=501(admin) gid=105(sales) group=105(sales), 27(sudo), 124(kvm)

В этом примере пользователь имеет имя admin, ему соответствует числовой идентификатор (uid) 501. Основная группа пользователя admin называется sales, и ей соответствует числовой идентификатор группы (gid) 105. Кроме этого, пользователь с именем admin принадлежит другим группам, называемым sudo (идентификатор - 27) и kvm (идентификатор - 124).

Для получения информации о текущем сеансе регистрации можно воспользоваться командой who.

Команда who выведет информацию о, имени пользователя, который зарегистрировался на консоли ttyl (монитор и клавиатура, подключенные к компьютеру) и когда начался сеанс.
Определение источника конкретной команды

Чтобы определить источник команды можно воспользоваться командой type, но если применяется не bash, а другой командный интерпретатор, воспользуйтесь командой which.

Например, для определения расположения интерпретатора bash введите следующую команду:
type bash

Иногда после ввода команды выводится сообщение о том, что команда не найдена или отсутствуют права на ее запуск. В первом случае необходимо проверить правильность ввода команды и ее присутствие в пути, указанном в переменной path. Во втором случае команда может находиться в пути из переменной path, но для нее могут отсутствовать права на запуск.
Каталоги, в которых расположены команды Linux

Большинство пользовательских команд в составе операционной системы Linux хранятся в каталогах /bin,/usr/bin и /usr/local/bin.

Если необходимо добавить собственные команды или сценарии командного интерпретатора, разместите их в каталоге bin в собственном домашнем каталоге.

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

Перенаправление еще называют составлением конвейера. Метасимвол канала | связывает вывод одной команды с вводом другой. При этом следующая команда может работать с выводом предыдущей. Пример конвейера:
cat /etc/password | sort | less

Выведет содержимое файла /etc/password и перенаправляет вывод команде sort, сортирующей в алфавитном порядке имена пользователей и далее передает вывод команде less

Конвейеры хорошо демонстрируют, как лежавшая в основе Linux ОС UNIX составлялась из отдельных строительных блоков. Связывание утилит разными способами для решения различных задач считается стандартным подходом в ОС UNIX.
Последовательное выполнение команд с последующим перенаправлением вывода

Иногда команды должны выполняться последовательно, одна за другой. Для этого в командной строке можно ввести несколько команд и разделить их точкой с запятой ( ; )

date ; troff -me большой_документ | lpr ; date

В приведенном примере выполняется форматирование огромного документа, при этом необходимо знать, сколько времени занимает такая операция.

Команда date выводит дату и время начала форматирования. Команда troff выполняет форматирование и передает результат работы на печать. По завершении форматирования опять выводится текущая дата и время (можно подсчитать время, которое потребовалось для завершения форматирования).
Фоновое выполнение команд

Выполнение некоторых команд может потребовать значительного времени.

Иногда желательно не блокировать интерпретатор до завершения выполнения команды. В таких случаях команды можно запускать в фоновом режиме с помощью символа &.

Команды форматирования для больших документов часто запускаются в фоновом режиме.

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

Пример:
troff –me очень_большой_документ | lpr &
Проверка доступности интересующего интерпретатора командной строки

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

Командные интерпретаторы UNIX: bash, csh, ksh, zsh;

Самым простым способом проверки доступности интересующего командного интерпретатора является ввод его имени в командной строке. Если интерпретатор запустился, он доступен.
Несколько причин для выбора альтернативных командных интерпретаторов

1. Привычка работать в системах UNIX System V (во многих из них по умолчанию применяются интерпретатор ksh) или в системах компании Sun Microsystems и других системах на базе Berkeley UNIX (в них часто используется csh). В данном случае применение этих интерпретаторов командной строки окажется наиболее удобным.

2. Необходимость запуска сценариев, которые создавались исключительно для определенного командного интерпретатора.

3. Возможности альтернативного командного интерпретатора могут оказаться более предпочтительными. Например, один из членов группы пользователей Linux предпочитает применять ksh, так как его не устраивает способ создания псевдонимов в bash.
Источники Apt

Во всех дистрибутивах на основе Debian - репозитории ПО apt определены в файле /etc/apt/sources.list либо в отдельных файлах в каталоге /etc/apt/sources.list.d/

Имена файлов репозитория в каталоге /etc/apt/sources.list.d/ должны заканчиваться на .list

Общий синтаксис файла /etc/apt/sources.list придерживается следующего формата:
deb http://repo.tld/ubuntu distro component...

⁃ Первая запись — тип архива (deb или deb-src)
⁃ Вторая запись — это URL-адрес репозитория
⁃ Третья запись — кодовое имя распространения (beaver, xenial и т.д.)
⁃ Последние записи — это компоненты / категории репозитория.
Управление языковыми и региональными параметрами

Наверняка многим из вас когда-нибудь приходилось потратить изрядное количество времени на настройку локалей и раскладок. Сделать это путем прописывания нужных параметров в различных конфигурационных файлах бывает непросто, поэтому с этим нам может помочь команда localectl.

Для того, чтобы вывести текущие настройки:
localectl

Вывести список доступных локалей:
localectl list-locales

Изменить язык системы на английский:
localectl set-locale LANG="en_EN.utf8"
(Единицы измерения, финансовые обозначения и прочие региональные параметры при этом останутся прежними)

Вывести список доступных раскладок клавиатуры:
localectl list-x11-keymap-layouts

Всю работу по обновлению существующих и созданию новых конфигурационных файлов localectl берет на себя.
Управление настройками времени и даты

timedatectl предназначена для удобного управления временем, датой, часовым поясом и настройками синхронизации времени. Чтобы получить информацию о текущих настройках, достаточно просто ввести:
timedatectl

Установить дату и время (работает только при выключенной синхронизации):
timedatectl set-time "2030-01-01 00:00:01"

Отключить синхронизацию с ntp-сервером:
timedatectl set-ntp 0
(В этой и других подобных командах из набора systemd в качестве булевых значений можно использовать 1\0, on\off, true\false)

А чтобы включить синхронизацию с ntp-сервером:
timedatectl set-ntp 1

Отобразить список часовых поясов и установить подходящий:
timedatectl list-timezones
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