Введение
Опытные пользователи 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 — когда известна тема, но неизвестна команда. Эти инструменты избавляют от необходимости запоминать каждый параметр и помогают исследовать незнакомые команды на протяжении всего курса.



