Получение справки по командам Linux

LinuxBeginner
Практиковаться сейчас

Введение

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

Эта лабораторная работа непосредственно продолжает изучение основных операций с файлами. Вы исследуете знакомые команды, такие как cd, ls и cp, а затем сохраните небольшие файлы с результатами в каталоге /home/labex/project/command-help. К концу работы незнакомый синтаксис станет не препятствием, а поводом обратиться к документации.

Определите, что означает имя команды

На этом шаге вы научитесь отличать встроенные команды оболочки, псевдонимы и исполняемые файлы, чтобы выбирать подходящий источник справки.

Перейдите в рабочий каталог лабораторной работы:

cd /home/labex/project/command-help

Некоторые команды встроены в оболочку, потому что им необходимо изменять саму оболочку. Спросите у оболочки, чем является cd:

type cd

Вы должны увидеть вывод, содержащий:

cd is a shell builtin

Другие имена могут быть псевдонимами — короткими заменами, настроенными в оболочке, — или внешними программами, сохранёнными в виде файлов. Проверьте ls:

type ls

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

type -a ls

Команда command -V также выводит понятное описание:

command -V cp

Команда command -v печатает команду или путь, которые оболочка фактически выбрала бы:

command -v cp

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

type cd > command-types.txt
type ls >> command-types.txt
command -V cp >> command-types.txt
cat command-types.txt

В отчёте должно быть указано, что cd — встроенная команда, а также приведено описание ls и cp. Знание типа команды важно: для встроенных команд оболочки используется документация конкретной оболочки, а внешние программы обычно поддерживают --help и страницы руководства.

Прочитайте краткую справку и синтаксис использования

На этом шаге вы воспользуетесь встроенной справкой и параметром --help, а затем научитесь читать распространённые обозначения в строке использования.

Поскольку cd — встроенная команда оболочки, запросите её документацию у Bash. В терминале лабораторной работы используется Zsh, а help является встроенной командой Bash, а не отдельной командой, поэтому явно запустите Bash:

bash -c 'help cd'

Первая строка начинается с шаблона использования, похожего на cd [-L|[-P ...]] [dir]. Пока не нужно разбираться во всех параметрах. Обратите внимание на структуру: сначала указывается имя команды, а элементы в квадратных скобках являются необязательными.

Внешние программы часто поддерживают --help. Полная справка ls довольно длинная, поэтому здесь вы впервые намеренно используете конвейер. Конвейер записывается с помощью символа |. Команда слева выводит обычный результат, а команда справа получает этот результат на вход. В данном случае head -n 8 оставляет только первые восемь строк:

ls --help | head -n 8

Первая строка имеет следующий общий вид:

Usage: ls [OPTION]... [FILE]...

[OPTION]... означает ноль или более параметров. [FILE]... означает ноль или более аргументов — файлов или каталогов. Скобки описывают синтаксис; вводить их буквально не нужно.

Проверьте краткую справку по копированию:

cp --help | head -n 8

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

echo "=== ls ===" > quick-help.txt
ls --help | head -n 3 >> quick-help.txt
echo "=== cp ===" >> quick-help.txt
cp --help | head -n 3 >> quick-help.txt
cat quick-help.txt

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

Откройте страницу руководства

На этом шаге вы воспользуетесь интерактивным просмотрщиком man и узнаете, что означают разделы руководства.

Откройте страницу руководства для ls:

man ls

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

  • Стрелка вниз: перейти на одну строку вниз;
  • Space: перейти на один экран вперёд;
  • b: вернуться на один экран назад;
  • введите /sort и нажмите Enter: выполнить поиск sort вперёд по тексту;
  • n: перейти к следующему совпадению;
  • q: выйти и вернуться к приглашению командной строки.

В заголовке обычно отображается LS(1). Число обозначает раздел руководства. Раздел 1 содержит обычные пользовательские команды; другие разделы посвящены системным вызовам, функциям библиотек, форматам конфигурации и административным командам.

Используйте man -f, чтобы получить однострочное описание, также известное как поиск «whatis»:

man -f ls

Сохраните неинтерактивный фрагмент той же страницы руководства. Читайте этот конвейер слева направо: -P cat заставляет man печатать текст, не открывая просмотрщик, col -b удаляет управляющие символы форматирования терминала, head -n 20 оставляет двадцать строк, а > сохраняет итоговый поток:

man -P cat ls | col -b | head -n 20 > ls-man-excerpt.txt
cat ls-man-excerpt.txt

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

Найдите команды по теме

На этом шаге вы воспользуетесь apropos, когда знаете задачу, но не знаете имя команды.

apropos выполняет поиск по кратким описаниям, сохранённым в базе данных руководств. Выполните поиск документации, связанной с паролями:

apropos password | head -n 15

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

Выполните поиск по темам, связанным с файлами:

apropos file | head -n 20

По широким ключевым словам возвращается много результатов. Более конкретная фраза может оказаться полезнее:

apropos "copy files"

Вы также можете отфильтровать широкий результат. Параметр -i заставляет grep игнорировать регистр букв, а -m 5 останавливает поиск после пяти совпавших строк:

apropos file | grep -i -m 5 'copy'

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

apropos password > password-topics.txt
grep -E '^passwd|change.*password' password-topics.txt | head

Если apropos ничего не находит в недавно установленной системе, возможно, базе данных руководств требуется команда sudo mandb. В этой лабораторной работе база данных подготовлена автоматически, но знание этой связи поможет устранять неполадки при работе с инструментом в других системах.

Итоги

Вы освоили последовательную стратегию поиска справки: используйте type или command -V, чтобы определить имя, встроенную справку оболочки, например help в Bash, или --help программы — для быстрого изучения синтаксиса, man — для полной документации, а apropos — когда известна тема, но неизвестна команда. Эти инструменты избавляют от необходимости запоминать каждый параметр и помогают исследовать незнакомые команды на протяжении всего курса.