Команды

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

Каждая запущенная команда является отдельным процессом. Если команда выполняется на переднем плане (по умолчанию все команды выполняются именно так), то пользователь не сможет работать с терминалом, пока команда не будет выполнена.

Важно отметить, что в ОС почти всегда учитывается регистр, включая имена файлов и каталогов, команды, аргументы и опции. Если что-то не работает, следует проверить написание команды.

Некоторые ключевые команды, необходимые для администрирования и работы с Системой.

  1. Информация о системе:
  • uname -a — выводит информацию о ядре и системе;
  • hostnamectl — показ информации о хосте и системе;
  • lscpu — отображение информации о процессоре;
  • lsblk — показ подключенных дисков и их разделов;
  1. Управление пакетами:
  • sudo dnf install <пакет> — установка пакетов с помощью пакетного менеджера dnf;
  • sudo dnf update — обновление системы;
  • sudo dnf remove <пакет> — удаление пакета;
  • rpm -q <пакет> — проверка установленного пакета;
  1. Управление сервисами (systemd):
  • sudo systemctl start <сервис> — запуск сервиса;
  • sudo systemctl stop <сервис> — остановка сервиса;
  • sudo systemctl restart <сервис> — перезапуск сервиса;
  • sudo systemctl status <сервис> — проверка статуса сервиса;
  • sudo systemctl enable <сервис> — включение автозапуска сервиса при старте системы;
  • sudo systemctl disable <сервис> — отключение автозапуска сервиса;
  1. Работа с файлами и каталогами:
  • ls -la — просмотр содержимого каталога с подробной информацией;
  • cp <файл> <путь> — копирование файла;
  • mv <файл> <путь> — перемещение или переименование файла;
  • rm <файл> — удаление файла;
  • mkdir <каталог> — создание нового каталога;
  • rmdir <каталог> — удаление пустого каталога;
  1. Мониторинг системы:
  • top или htop — отображение активных процессов и использование ресурсов;
  • df -h — информация о свободном и занятом месте на дисках;
  • du -sh <каталог> — подсчет занимаемого места каталогом;
  • free -h — показ использования оперативной памяти;
  1. Сетевые команды:
  • ip addr — информация о сетевых интерфейсах;
  • ping <хост> — проверка доступности удаленного узла;
  • traceroute <хост> — маршрут до удаленного узла;
  • netstat -tuln или ss -tuln — показ открытых портов и прослушиваемых сервисов;
  1. Работа с файлами и архивами:
  • tar -cvf <архив.tar> <папка> — архивация папки;
  • tar -xvf <архив.tar> — извлечение содержимого архива;
  • gzip <файл> — сжатие файла;
  • gunzip <файл.gz> — распаковка файла;
  1. Управление пользователями и правами:
  • useradd <имя> — создание нового пользователя;
  • passwd <имя> — изменение пароля пользователя;
  • usermod -ag <группа> <имя> — добавление пользователя в группу;
  • chown <пользователь>:<группа> <файл> — изменение владельца и группы файла;
  • chmod 755 <файл> — изменение прав доступа к файлу;
  1. Журналы и логи:
  • journalctl -xe — просмотр системных логов;
  • journalctl — просмотр всех записей журнала с момента последней загрузки системы;
  • journalctl -f — просмотр последних записей в реальном времени;
  • dmesg — лог ядра (информация о загрузке и драйверах).

Полный список доступных консольных команд приведен в Приложении А настоящего руководства.

Текстовые редакторы

Текстовый редактор vi/vim

Текстовый редактор vi является базовым редактором, входящим в состав большинства Unix-подобных ОС и доступным в минимальных и аварийных средах. Редактор vim (Vi IMproved) представляет собой расширенную версию vi, включающую дополнительные возможности, улучшенный интерфейс и расширенную функциональность. Vim полностью совместим с vi и может работать в режиме, имитирующем поведение оригинального редактора.

Редакторы vi и vim относятся к модальным редакторам: управление текстом осуществляется в нескольких режимах, в каждом из которых выполняется ограниченный набор команд. Основными режимами являются режим команд (нормальный режим) и режим вставки. Запуск редактора выполняется указанием имени файла:

vi имя_файла
vim имя_файла

Если указанный файл отсутствует, он будет создан при сохранении.

Для открытия файла только для чтения используется параметр:

vi -R имя_файла

Редакторы vi и vim используют два основных режима работы:

  • режим команд (нормальный режим) — используется для выполнения команд перемещения, редактирования, удаления, копирования и навигации по тексту;
  • режим вставки — используется для ввода текста; переход в этот режим выполняется нажатием клавиши i, a, o и других команд вставки.

Возврат в режим команд выполняется нажатием клавиши Esc.

Наиболее часто используемые команды редакторов:

  • переход в режим вставки:
    • i — вставка в текущей позиции;
    • a — вставка после текущего символа;
    • o — вставка новой строки ниже;
  • сохранение и выход:
    • :w — сохранить изменения;
    • :q — выйти из редактора;
    • :wq — сохранить и выйти;
    • :q! — выйти без сохранения;
  • навигация:
    • клавиши h, j, k, l — перемещение влево, вниз, вверх, вправо;
    • gg — переход в начало файла;
    • G — переход в конец файла;
  • удаление и редактирование:
    • x — удаление символа;
    • dd — удаление строки;
    • yy — копирование строки;
    • p — вставка скопированного фрагмента.

Редактор vim предоставляет ряд функций, отсутствующих в vi:

  • подсветка синтаксиса для различных типов файлов;
  • поддержка кодировок, включая UTF-8;
  • расширенный механизм отмены и восстановления действий;
  • многооконный режим (:split, :vsplit);
  • поддержка плагинов и скриптов на языке vimscript;
  • режим совместимости с vi (vim -v).

Редактор vi включён в состав минимального набора инструментов ОС и доступен в аварийном режиме, режиме восстановления и при загрузке из окружения chroot. Это позволяет выполнять редактирование критически важных конфигурационных файлов при отсутствии графического интерфейса или полноценных редакторов.

Текстовый редактор nano

Текстовый редактор nano является консольным редактором, ориентированным на пользователя и отличающимся простым интерфейсом и невысоким порогом освоения. В отличие от модальных редакторов vi и vim работа в nano не требует переключения между режимами, а управление осуществляется с помощью комбинаций клавиш и линейки подсказок, отображаемой в нижней части окна. Редактор широко применяется для редактирования конфигурационных файлов и оперативного изменения текстовой информации в терминале.

Запуск редактора выполняется командой:

nano имя_файла

Если указанный файл отсутствует, редактор создаст его при сохранении.

Для открытия файла в режиме только чтения используется параметр:

nano -v имя_файла

При запуске редактор отображает содержимое файла и две панели подсказок в нижней части экрана. Символ "^" в подсказках означает использование клавиши Ctrl.

Примеры сочетаний клавиш:

  • Ctrl + O — сохранить файл;
  • Ctrl + X — выйти из редактора;
  • Ctrl + G — открыть встроенную справку;
  • Ctrl + K — вырезать строку;
  • Ctrl + U — вставить ранее вырезанный фрагмент;
  • Ctrl + W — поиск текста;
  • Ctrl + \ — замена текста.

Для перемещения по тексту используются клавиши стрелок, клавиши Page Up и Page Down.

Редактирование в nano выполняется непосредственно при вводе текста. Для выполнения основных операций используются следующие сочетания клавиш:

  • удаление символов — клавиша Backspace или Delete;
  • удаление строки — Ctrl + K;
  • копирование и вставка:
    • копирование строки: Alt + 6 или Esc, затем 6;
    • вставка: Ctrl + U.

Редактор поддерживает работу с несколькими буферами, автоматический перенос строк и подсветку выбранных текстовых фрагментов.

Для выполнения поиска используется сочетание Ctrl + W.

После ввода искомого текста осуществляется переход к следующему совпадению клавишей Ctrl + W, затем Enter.

Функция замены вызывается сочетанием Ctrl + \.

Редактор последовательно предлагает заменить найденные совпадения или пропустить их.

Поведение редактора nano может быть настроено с использованием файла конфигурации /etc/nanorc.

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

  • подсветка синтаксиса (include /usr/share/nano/*.nanorc);
  • нумерация строк (set linenumbers);
  • автоотступы (set autoindent);
  • перенос строк (set softwrap);
  • отображение позиции курсора (set cursorpos).

Дополнительные настройки могут задаваться в конфигурации пользователя ~/.nanorc.

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

Выполнение команд

Без опций и аргументов

Чтобы запустить команду без аргументов и опций, нужно просто ввести саму команду и нажать клавишу ENTER.

В таком случае команда выполнит своё стандартное действие. У каждой команды индивидуальное поведение по умолчанию. Например, команда cd без аргументов откроет домашний каталог текущего пользователя. Команда ls без аргументов выведет список файлов и каталогов, хранящихся в текущем каталоге.

С аргументами

Многие команды принимают аргументы или параметры, которые могут влиять на их поведение. Например, в качестве аргумента команды cd часто используется имя каталога, в который нужно перейти. Например, чтобы перейти в /usr/bin, нужно ввести:

cd /usr/bin

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

С опциями

Большинство команд имеют список опций или флагов, которые позволяют изменять поведение команды.

Опции указываются после команды через дефис ("-"). Они бывают верхнего и нижнего регистра. Некоторые опции начинаются с двух дефисов ("--"). После одного дефиса можно указать несколько опций подряд, а после двух дефисов обычно идёт одна опция, состоящая из нескольких символов (обычно это описательное слово).

В качестве примера можно привести некоторые опции команды:

  • -l – включает подробный листинг, который предоставляет дополнительные детали (права доступа, права собственности, размер файлов и т.п.).
  • -a – выводит полный список файлов, которые хранятся в каталоге (включая скрытые файлы).

Флаг -l команде ls передается так:

ls -l

Такая команда выведет много дополнительной информации о файлах.

Опции можно группировать, например, передать команде ls флаги -l и –a одновременно:

ls -la

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

С опциями и аргументами

Опции и аргументы почти всегда можно комбинировать при запуске команд.

Например, чтобы просмотреть полное содержимое каталога /home, можно использовать:

ls -la /home

Такая команда вернёт подробные данные о каждом файле заданного каталога.

Фоновые процессы

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

Важнейший и самый востребованный подстановочный символ "&". Если указать его в конце командной строки, bash запустит программу в фоновом режиме. Это имеет смысл в первую очередь в случае, если на выполнение команды уходит много времени, чтобы можно было продолжать работу, не дожидаясь окончания выполнения такой программы.

find / -name '*sh' > result &
[1] 3345

Вышеуказанная команда ищет по всей файловой системе файлы, названия которых оканчиваются на "sh". Список найденных файлов записывается в файле result. Поскольку команда выполняется в фоновом режиме, работу можно не прерывать. Вывод "[1] 3345" означает, что фоновый процесс имеет номер "PID 3345". Здесь PID означает идентификатор процесса (process ID). Номер PID интересен в том случае, если процесс был аварийно завершен командой kill. Номер в квадратных скобках – это номер фонового процесса, запущенного в bash. Как правило, этот номер не важен.

Если при запуске команды не поставлен символ "&", не следует ни дожидаться окончания выполнения программы, ни принудительно завершать программу нажатием комбинации клавиш Ctrl + C. Гораздо лучше приостановить выполнение программы, нажав комбинацию клавиш Ctrl + Z, а затем продолжить ее работу в виде фонового процесса с помощью команды bg.

Выполнение нескольких команд

ОС позволяет производить запуск нескольких команд в одной строчке. Существует два способа:

  • использование символа ";":
sudo dnf update; sudo dnf upgrade -y

Вторая команда будет запущена, даже если первая команда не будет выполнена. Если такой вариант не подходит, рекомендуется использовать второй вариант.

  • использование символов "&&":
sudo dnf update && sudo dnf upgrade -y

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

При использовании символа "&" также можно указать следующую команду. В таком случае первая команда будет выполняться в фоновом режиме, а вторая на первом плане. Например, команда find запускается в фоновом режиме, а ls одновременно выводит содержимое текущего каталога:

find / -name '*sh' > result & ls

Если вместо символа "&" поставить точку с запятой, то bash поочередно выполнит команды в фоновом режиме:

rls; date

Эта команда сначала отображает содержание текущего каталога, а затем выводит текущий файл.

Если необходимо перенаправить всю эту информацию в файл с помощью символа ">", то обе команды ставятся в круглых скобках. В таком случае они выполняются одной и той же оболочкой:

user$ (ls; date) > content

В файле content теперь находится список файлов, созданный ls, а также текущая дата (из команды date). Благодаря круглым скобкам обе команды выполняются одной и той же оболочкой и выдают общий результат (как правило, ситуация иная: при запуске каждой новой команды активируется новая оболочка).

  • использование символов "||":

Оператор || используется для выполнения второй команды только в том случае, если первая завершилась неуспешно (код завершения не равен "0"), например:

команда1 || команда2

Если команда1 завершится успешно, то команда2 не выполнится. В противном случае, если команда1 завершится с ошибкой, команда2 будет выполнена.

Эти операторы (&& и ||) предоставляют удобные способы создания цепочек команд с учетом их успешного или неуспешного завершения, что может быть полезным в скриптах и командной строке для управления логикой выполнения команд, то есть в зависимости от результата другой команды.

Например, команда user$ команда1 && команда2 выполняет команда1. Только в случае, если эта команда была выполнена успешно (без ошибки, без выдачи "0" в качестве возвращаемого значения), выполняется команда2.

Ниже приведены все варианты использования двух команд (таблица 6).

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

Потоки и перенаправление

Потоки являются базовым механизмом обмена данными в Системе. С их помощью обеспечивается взаимодействие программ и передача информации между процессами и файлами. Администратор может управлять источниками и приёмниками данных, перенаправляя ввод, вывод и сообщения об ошибках, а также объединяя команды в конвейеры для последовательной обработки информации.

В Системе каждая программа использует стандартные потоки данных:

  • stdin — стандартный ввод (обычно клавиатура или другой источник данных);
  • stdout — стандартный вывод (результат выполнения программы, выводимый в терминал);
  • stderr — поток ошибок (вывод сообщений об ошибках).

Для управления потоками применяется механизм перенаправления:

  • > — вывод в файл (с перезаписью существующего содержимого);
  • >> — вывод в файл с добавлением в конец;
  • < — ввод из файла вместо клавиатуры;
  • 2> — перенаправление сообщений об ошибках в файл;
  • &> или >& — объединение вывода и ошибок в один файл;
  • | (конвейер) — передача вывода одной команды на вход другой;
  • | tee файл — одновременный вывод в терминал и запись в файл.

Примеры работы с потоками:

ls *.txt > content.txt         # сохранить список файлов в файл
sort < input.txt > sorted.txt  # сортировка данных из файла и запись результата

Следует учитывать, что перенаправление в тот же файл, из которого ведётся чтение (sort dat > dat), приведёт к его повреждению.

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

Поиск и фильтрация информации

В Системе предусмотрено множество возможностей поиска файлов. Выбор команды, лучше всего подходящей для конкретного случая, зависит от типа файла (текстовый файл, программа и т. д.) и его содержания (фрагменты названия, фрагменты текста и т. д.).

Ниже приведены инструменты для поиска файлов (таблица 7).

Команды which, whereis, whatis

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

user$ which emacs
/usr/bin/emacs

Команда whereis просматривает все пути, обычно используемые для двоичных файлов, файлов конфигурации, man-страниц и исходного кода. Для этого ее нужно ввести после имени файла. Команда whereis охватывает больше файлов, чем which, при этом поиск не ограничивается одними только программами. Она не может искать в каталогах, которые специально не указаны программе как места для поиска.

user$ whereis fstab
fstab: /etc/fstab /usr/include/fstab.h

Команда whatis выводит краткое однострочное описание из руководства (man).

# whatis ls cp rm mv
ls (1) list directory contents
cp (1) copy files and directories
rm (1) remove files or directories
mv (1) move (rename) files

Также можно использовать команду, которая выводит путь к исполняемому файлу (или команде) в командной строке:

command -V команда1

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

command -V ls

Команда locate

Команда locate ищет файлы, в полном названии которых (путь + имя файла) содержится указанная схема поиска. Поиск осуществляется очень быстро: locate не ищет по файловой системе, а обращается к БД, в которой содержится список имен всех файлов из файловой системы. Команда locate показывает все файлы, к которым пользователь может получить доступ. Если нужно найти системные файлы, то следует войти в Систему как администратор и выполнить команду locate.

Например, следующая команда ищет конфигурационный X-файл xorg.conf:

user$ locate xorg.conf
/etc/X11/xorg.conf
/etc/X11/xorg.conf.backup

Особенности

Внедрение команд locate и updatedb отличается от дистрибутива к дистрибутиву. В ОС РОСА "ХРОМ" эти команды входят в состав стандартного пакета mlocate. Файловая база данных находится в файле /var/lib/mlocate/mlocate.db и ежедневно обновляется программой Cron-Job /etc/cron.daily/mlocate. Конфигурационный файл /etc/updatedb.conf определяет, какие каталоги и файловые системы не будут учитываться при поиске (например, CD, DVD, различные буферные каталоги).

Команда wc

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

Общий вид команды:

user$ wc [ПАРАМЕТР]… [ФАЙЛ]

Параметры команды wc представлены ниже (таблица 8):

Вывод команды wc представляется в следующем виде:

  • первая колонка, количество строк (-l);
  • вторая колонка, количество слов (-w);
  • третья колонка, количество символов (-m).

Команда sort

Команда sort используется в ОС для сортировки содержимого текстовых файлов. Это позволяет выводить текстовые строки в определённом порядке.

Общий вид команды:

sort [ПАРАМЕТР]… [ФАЙЛ]

Команда направляет сортированное слияние всех [ФАЙЛ] на стандартный вывод.

Если [ФАЙЛ] не задан или задан как "-", то команда читает стандартный ввод.

Параметры команды sort представлены ниже (таблица 9).

Примечание – ОПР_КЛЮЧА задается как F[.C][OPTS][,F[.C][OPTS]] для начала и конца положения, где F – номер поля, а C – позиция в поле; оба отсчитываются от 1, а конечная позиция по умолчанию равна концу строки.

Если не задан параметр -t или -b, то символы в поле отсчитываются от начала предшествующего пробельного символа. OPTS составляется из одной или нескольких букв, задающих порядок сортировки [bdfgiMhnRrV]; он переопределяет соответствующие глобальные параметры сортировки для данного ключевого поля.

Сортировка по умолчанию (без опций):

sort example.txt

Обратная сортировка:

sort -r example.txt

Команда cut

Команда cut предназначена для вырезания части текста из файла и записи результата в стандартный вывод.

Общий вид команды:

cut [опция] [файл]

Параметры команды cut представлены ниже (таблица 10).

Команда find

Если не указывать дополнительные параметры, команда find выдает список всех файлов, находящихся в текущем каталоге и всех его подкаталогах:

Общий вид команды:

user$ find

Следующая команда ищет все файлы в текущем каталоге и во всех подкаталогах, названия которых начинаются с ".t":

user$ find -name '.e*'
./.thunderbird
./.thunar
./.textgen

В следующем примере команда find ищет все каталоги, находящиеся в /etc/. Обычные файлы, располагающиеся в /etc/, среди результатов не показываются. Список результатов упорядочивается по алфавиту с помощью команды sort (по умолчанию такой сортировки не происходит).

root# find /etc -type d | sort
/etc
/etc/alsa
/etc/alsa/conf.d
/etc/alternatives
...

В следующем примере команда find ищет все файлы в (под)каталогах /home, принадлежащих пользователям группы users, причем искомые файлы должны были каким-либо образом быть изменены в течение последних пяти дней (содержание, права доступа и т. д.):

root# find /home -group users -mtime -5
...

Команда find -mtime +5 находит такие файлы, которые были изменены ранее, чем пять дней назад, а команда -mtime 5 возвращает файлы, которые были изменены ровно пять дней назад. При этом во многих случаях "вчера" означает для команды find "24 и более часов от данного момента". Если вместо -mtime применить параметр -ctime, то точкой изменения времени будет считаться "время изменения индексного дескриптора". Эта точка изменяется и тогда, когда изменились лишь права доступа, а содержимое каталога осталось прежним.

Следующая команда удаляет все резервные копии, содержащиеся в данном каталоге и во всех подкаталогах. При этом команда find строит список всех сомнительных файлов и передает его команде rm через подстановку команды ($(команда)):

user$ rm $(find. -name '*~')

Если речь идет об очень большом количестве файлов, то при выполнении вышеуказанной команды возникает ошибка: запись со всеми *~-файлами может получиться настолько длинной, что превысит размер командной строки. В таких случаях следует воспользоваться либо параметром -exec- команды find, либо командой xargs.

Команда grep

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

Следующая команда просматривает все tex-файлы текущего каталога в поисках последовательности символов emacs. Список всех найденных строк (перед каждой из которых указывается имя файла) отображается на экране:

grep emacs *.tex

Команда grep определяет, как часто применяется функция arctan в указанных с-файлах.

grep -c arctan\(.*\) *.c

Команда grep с параметром -v возвращает в качестве результата все строки, в которых отсутствует заданный шаблон поиска.

В приведенном далее примере команда grep удаляет из configfile все строки, которые начинаются с символа решетки (#) (то есть все комментарии). Следующая команда cat дополнительно удаляет все пустые строки. Конечный результат сохраняется в файле nocomments.

grep -v '^#' configfile | cat -s > nocomments

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

Комбинации команд find и grep

Команды find и grep можно комбинировать, чтобы выполнять расширенный поиск. В следующем примере команда find просматривает все файлы на предмет того, нет ли в них последовательности символов emacs. Если такая последовательность обнаруживается, то название файла выводится на экран. Следует обратить внимание, что нельзя указывать параметр –print перед –exec (в отличие от предыдущего примера, команда grep emacs *.tex учитывает все файлы с расширением *.tex, независимо от глубины вложения подкаталога, в котором они могут находиться).

find -name '*.tex' -type f -exec grep -q emacs {} \; -print

Следующая команда просматривает в текущем каталоге все файлы размером менее 10 Кбайт на предмет наличия в них регулярного выражения case.*in. Список найденных файлов сохраняется в файле result. Ограничение размера файла вводится для того, чтобы исключить из поиска двоичные файлы (обычно они гораздо больше 10 Кбайт).

user$ find -name '*' -maxdepth 1 -size -10k -exec grep -q \
> case.*in {} \; -print > result

Переменные окружения

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

Для вывода всех переменных окружения используется команда:

env

Вывод этой команды обычно очень объёмен и отображает полный список установленных переменных, требуется найти запись PATH вида:

PATH=/root/.local/bin:/root/bin:/sbin:/bin:/usr/sbin:/usr/bin

Переменная PATH содержит перечень каталогов, в которых оболочка ищет исполняемые файлы при выполнении команд.

В оболочке bash переменные можно просмотреть также с помощью встроенной команды:

set

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

Просмотр только переменных окружения:

set | grep "^VAR="

Для фильтрации вывода по определённой переменной применяется команда:

set | grep "^PATH="

Чтобы извлечь значение переменной, нужно указать перед её именем символ "$".

Примеры:

echo $PATH      # вывод текущего пути поиска программ
cd $HOME        # переход в домашний каталог пользователя

Если переменная не установлена, команда вернёт пустую строку.

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

ПЕРЕМЕННАЯ=значение

Если переменная уже существует, её значение будет перезаписано.

Чтобы сделать переменную доступной для дочерних процессов, применяется команда export:

export ПЕРЕМЕННАЯ=значение

Пример добавления нового каталога в конец переменной PATH, если приложение установлено в /opt/app/bin:

export PATH=$PATH:/opt/app/bin

Справочные ресурсы по командам

Справочные страницы онлайн-руководства (так называемые man-страницы, поскольку их можно просмотреть с помощью команды man) составляют традиционную "интерактивную" документацию.

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

Команда man

Команда man имеет следующий формат и вызывает справочную страницу из указанного раздела:

man команда

Также можно использовать другой вариант команды:

man раздел заголовок

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

Команда вида:

man -k ключевoe_слово

или

apropos ключевое_слово

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

man -k translate
 
objcopy (1) copy and translate object files 
dcgettext (3) translate message
tr (1) translate or delete characters 
snmptranslate (1) translate SNMP OID values into more useful information 
tr (lp) translate characters

База данных ключевых слов может устаревать. При добавлении новых справочных страниц к ОС, возможно, придется перестроить (перекомпоновать) БД с помощью команды makewhatis.

В целях экономии места на диске ОС сжимает справочные страницы с помощью утилиты Gzip (команда man может очень быстро разархивировать их). Команда man поддерживает кеш отформатированных страниц в каталогах /var/cache/man или /usr/share/man, если соответствующие каталоги доступны для записи, но эти операции рискованны с точки зрения безопасности.

Команда man ищет страницы в ряде каталогов. В ОС выяснить путь поиска позволяет команда manpath:

manpath
/usr/local/man:/usr/local/Share/man:/usr/Share/man

Эта установка хранится в переменной среды MANPATH, и при необходимости ее можно изменить.

export MANPATH=/home/Share/localman:/usr/Share/man

Команда TLDR

В качестве альтернативы для получения справочной информации используют утилиту tldr (сокращение от "Too long; didn't read")

Утилита tldr доступна из репозитория ОС и устанавливается командой:

sudo dnf in tldr -y

Например, для получения tldr-справки по tar выполняется команда:

tldr tar

Рисунок 3 - Справка по tar

Вывод команды содержит минимальное описание назначения утилиты и компактный список из самых частых команд (рисунок 3).

Использование опций для получения справки

Многие консольные команды предоставляют подробную справочную информацию, которая может быть получена с использованием опции -h или --help. Эти опции позволяют пользователям быстро ознакомиться с основными параметрами и функциональностью команды без необходимости изучения руководства.

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

Рекомендуется использовать опции -h или --help перед тем, как начать работу с новой командой, чтобы узнать больше о ее функциональности и опциях, которые могут быть полезны в конкретном контексте.

Синтаксис опции -h:

команда -h

Некоторые команды предоставляют дополнительную опцию --help для вывода справочной информации:

команда –help

В консольном интерфейсе для получения подробной справки о любой команде нужно выполнить man <команда>, например:

man mc

Для текстовых команд в консоли доступно автодополнение по клавише Tab. Например, если ввести текст справка и нажать Tab, то будут показаны все аргументы команды справка. Если же после команды справка ввести через пробел букву "ф" и нажать Tab, то автоматически сгенерируется параметр "файл" (рисунок 4).

Рисунок 4 - Получение справки об операциях с файлами через консоль

Далее рассмотрены ключевые команды, необходимые для администрирования и работы с Системой.

  1. Информация о системе:
  • uname -a — вывод информацию о ядре и Системе;
  • hostnamectl — показ информации о хосте и Системе;
  • lscpu — отображение информации о процессоре;
  • lsblk — показ подключенных дисков и их разделов;
  1. Управление пакетами:
  • sudo dnf install <пакет> — установка пакетов с помощью пакетного менеджера dnf;
  • sudo dnf update — обновление Системы;
  • sudo dnf remove <пакет> — удаление пакета;
  • sudo rpm -q <пакет> — проверка установленного пакета;
  1. Управление сервисами (systemd):
  • sudo systemctl start <сервис> — запуск сервиса;
  • sudo systemctl stop <сервис> — остановка сервиса;
  • sudo systemctl restart <сервис> — перезапуск сервиса;
  • sudo systemctl status <сервис> — проверка статуса сервиса;
  • sudo systemctl enable <сервис> — включение автозапуска сервиса при старте системы;
  • sudo systemctl disable <сервис> — отключение автозапуска сервиса;
  1. Работа с файлами и каталогами:
  • ls -la — просмотр содержимого каталога с подробной информацией;
  • cp <файл> <путь> — копирование файла;
  • mv <файл> <путь> — перемещение или переименование файла;
  • rm <файл> — удаление файла;
  • mkdir <каталог> — создание нового каталога;
  • rmdir <каталог> — удаление пустого каталога;
  1. Мониторинг системы:
  • top или htop — отображение активных процессов и использование ресурсов;
  • df -h — информация о свободном и занятом месте на дисках;
  • du -sh <каталог> — подсчет занимаемого места каталогом;
  • free -h — показ использования оперативной памяти;
  1. Сетевые команды:
  • ip addr — информация о сетевых интерфейсах;
  • ping <хост> — проверка доступности удаленного узла;
  • traceroute <хост> — маршрут до удаленного узла;
  • netstat -tuln или ss -tuln — показ открытых портов и прослушиваемых сервисов;
  1. Работа с файлами и архивами:
  • tar -cvf <архив.tar> <папка> — архивация папки;
  • tar -xvf <архив.tar> — извлечение содержимого архива;
  • gzip <файл> — сжатие файла;
  • gunzip <файл.gz> — распаковка файла;
  1. Управление пользователями и правами:
  • useradd <имя> — создание нового пользователя;
  • passwd <имя> — изменение пароля пользователя;
  • usermod -ag <группа> <имя> — добавление пользователя в группу;
  • chown <пользователь>:<группа> <файл> — изменение владельца и группы файла;
  • chmod 755 <файл> — изменение прав доступа к файлу;
  1. Журналы и логи:
  • journalctl -xe — просмотр системных логов;
  • journalctl — просмотр всех записей журнала с момента последней загрузки Системы;
  • journalctl -f — просмотр последних записей в реальном времени;
  • dmesg — лог ядра (информация о загрузке и драйверах).