Введение
Опытные пользователи 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 и имеют справочные страницы.
Чтение краткой справки и синтаксиса использования
На этом шаге вы воспользуетесь встроенной справкой и параметром --help, а также научитесь читать распространённые обозначения в строке с описанием использования команды.
Поскольку cd является встроенной командой оболочки, запросите её документацию у Bash с помощью help:
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. Потренируйтесь использовать следующие клавиши:
- Стрелка вниз: перейти на одну строку вниз;
- Пробел: перейти на один экран вперёд;
- 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 или --help — для быстрого просмотра синтаксиса, man — для полной документации, а apropos — когда известна тема, но неизвестно имя команды. Эти инструменты избавляют от необходимости запоминать каждый параметр и помогают исследовать незнакомые команды на протяжении всего курса.



