Доступ к руководству по Linux

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

Введение

Руководства по Linux (man-страницы) представляют собой всесторонние документы, которые предоставляют подробную информацию о командах, системных вызовах, библиотеках и других аспектах операционной системы Linux. Изучение способов доступа к этим руководствам и навигации по ним является важным навыком для любого человека, работающего с системами Linux.

В этом практическом занятии (LabEx) вы научитесь использовать команду man для доступа к руководствам, навигации по их содержимому, понимания различных разделов руководств и поиска конкретной информации. Эти навыки помогут вам стать более самостоятельными при работе с командами Linux и устранении неполадок.

Доступ к базовым руководствам

На этом этапе вы научитесь получать доступ к руководствам по командам Linux с помощью команды man. Руководства предоставляют полную документацию о командах, их параметрах и примерах использования.

Сначала перейдем в каталог нашего практического занятия (LabEx):

cd ~/project/manual_lab

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

man ls

После выполнения этой команды вы увидите руководство по команде ls. Руководство обычно состоит из нескольких разделов:

  1. NAME (Название): Название команды и краткое описание
  2. SYNOPSIS (Синтаксис): Синтаксис команды
  3. DESCRIPTION (Описание): Подробное описание функциональности команды
  4. OPTIONS (Параметры): Список доступных параметров с пояснениями
  5. EXAMPLES (Примеры): Примеры использования (не для всех команд)
  6. SEE ALSO (См. также): Связанные команды или дополнительные ресурсы

Вы можете перемещаться по руководству с помощью следующих сочетаний клавиш:

  • Нажмите Space (Пробел) или Page Down (Страница вниз), чтобы перейти на одну страницу вперед
  • Нажмите b или Page Up (Страница вверх), чтобы перейти на одну страницу назад
  • Нажмите стрелку Up Arrow (Вверх) или Down Arrow (Вниз), чтобы прокрутить по одной строке
  • Нажмите q, чтобы выйти и вернуться в командную строку

Постарайтесь изучить руководство по команде ls. Когда будете готовы выйти, нажмите q.

Теперь рассмотрим другую часто используемую команду, cd (изменить каталог):

man cd

Вы, возможно, заметите, что по команде cd нет руководства. Это потому, что cd - это встроенная команда оболочки (shell builtin), а не отдельная программа. Для встроенных команд оболочки можно использовать команду help вместо man:

help cd

В терминале отобразится информация о команде cd.

Запишем то, что мы узнали, добавив заметки в файл commands.txt:

echo "ls - list directory contents" >> commands.txt
echo "cd - change directory (shell builtin)" >> commands.txt
echo "man - access manual pages" >> commands.txt

Поиск в руководствах

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

Давайте получим доступ к руководству по команде grep, которая используется для поиска шаблонов в файлах:

man grep

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

  1. Нажмите / (слэш вперед)
  2. Введите поисковый запрос
  3. Нажмите Enter

Попробуем найти информацию о параметре -i, введя:

/\-i

После нажатия Enter руководство переместится к первому вхождению -i. Вы можете найти следующее вхождение, нажав n, или вернуться к предыдущему, нажав N.

Параметр -i заставляет grep игнорировать регистр букв, то есть он будет совпадать как с заглавными, так и с строчными буквами.

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

Давайте добавим то, что мы узнали о поиске, в файл commands.txt. Сначала выйдите из руководства, нажав q, затем:

echo "Searching in man pages: / (forward) or ? (backward), n (next), N (previous)" >> commands.txt
echo "grep - search for patterns in files" >> commands.txt
echo "  -i option: ignore case distinctions" >> commands.txt

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

man find

Отведите немного времени на изучение этого руководства. Найдите информацию о параметре -name, который позволяет искать файлы по имени:

/-name

Выйдите из руководства, когда закончите, и добавьте то, что вы узнали, в файл commands.txt:

echo "find - search for files in a directory hierarchy" >> commands.txt
echo "  -name option: search for files by name" >> commands.txt

Понимание разделов руководств

На этом этапе вы узнаете о различных разделах системы руководств Linux. Руководство разделено на номерированные разделы, каждый из которых охватывает определенную категорию документации:

  1. Пользовательские команды (User Commands) — команды, которые могут быть выполнены пользователем
  2. Системные вызовы (System Calls) — функции, предоставляемые ядром
  3. Библиотечные функции (Library Functions) — функции в программах-библиотеках
  4. Специальные файлы (Special Files) — файлы устройств и драйверы
  5. Форматы файлов (File Formats) — форматы конфигурационных файлов
  6. Игры (Games) — игры и развлекательные программы
  7. Разное (Miscellaneous) — различные команды и соглашения
  8. Администрирование системы (System Administration) — команды для администрирования системы
  9. Подпрограммы ядра (Kernel Routines) — внутренние компоненты ядра

Создадим файл для документирования этих разделов:

nano sections.txt

В редакторе nano введите следующий текст:

Linux Manual Sections:
1. User Commands
2. System Calls
3. Library Functions
4. Special Files
5. File Formats
6. Games
7. Miscellaneous
8. System Administration
9. Kernel Routines

Нажмите Ctrl+O, а затем Enter, чтобы сохранить файл, а затем Ctrl+X, чтобы выйти из nano.

Иногда одно и то же имя может встречаться в разных разделах. Например, printf существует как пользовательская команда (раздел 1) и как функция библиотеки C (раздел 3). Чтобы просмотреть определенный раздел, вы можете указать номер раздела:

man 1 printf

Это отображает руководство по команде printf (из раздела 1). После изучения нажмите q, чтобы выйти.

Теперь давайте посмотрим на версию функции библиотеки C:

man 3 printf

Это отображает руководство по функции printf из библиотеки C (из раздела 3), которая используется для форматированного вывода в программах на C. Снова нажмите q, чтобы выйти.

Добавим то, что мы узнали, в файл commands.txt:

echo "man <section> <name> - access a specific manual section" >> commands.txt
echo "printf - exists in section 1 (command) and section 3 (C function)" >> commands.txt

Вы также можете увидеть, какие разделы доступны для определенного имени, используя параметр -a:

man -a printf

Это последовательно отобразит все доступные руководства по printf. Чтобы перейти к следующему, нажмите q, а затем y, когда появится запрос.

Поиск команд

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

Команда apropos (или эквивалентно man -k) ищет в именах и описаниях руководств по заданному ключевому слову:

apropos directory

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

Для более точного поиска вы можете использовать регулярные выражения с параметром -r:

apropos -r "^ls$"

Эта команда ищет руководства, имена которых точно совпадают с "ls". Символ ^ обозначает начало строки, а $ - конец.

Попробуем другой пример: поиск команд, связанных с управлением паролями:

apropos password

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

Иногда базу данных руководств нужно обновить, чтобы включить все доступные команды. Это можно сделать с помощью команды mandb (требуются привилегии sudo):

sudo mandb

Теперь давайте запишем то, что мы узнали:

echo "apropos <keyword> - search manual pages for a keyword" >> commands.txt
echo "man -k <keyword> - equivalent to apropos" >> commands.txt
echo "apropos -r <regex> - search using regular expressions" >> commands.txt
echo "sudo mandb - update the manual page database" >> commands.txt

Еще одна полезная команда - whatis, которая выводит однострочное описание команды:

whatis ls

Это даст вам краткое описание того, что делает команда ls. Добавим это в наши заметки:

echo "whatis <command> - display a brief description of a command" >> commands.txt

Создание личного справочника по командам

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

Создадим обширный справочный файл:

nano command_reference.md

В редакторе nano введите следующий текст в формате markdown, включив то, что вы узнали о доступе к руководствам:

## Linux Manual Pages Reference

### Basic Manual Access

- `man <command>` - Display the manual page for a command
- `help <builtin>` - Get help for shell builtin commands
- `man <section> <command>` - Access a specific manual section
- `man -a <command>` - Display all available manual pages for a command

### Manual Navigation

- Space or Page Down - Move forward one page
- b or Page Up - Move backward one page
- Up/Down Arrow - Scroll line by line
- / - Search forward for a pattern
- ? - Search backward for a pattern
- n - Go to next search match
- N - Go to previous search match
- q - Quit the manual page

### Finding Commands and Information

- `apropos <keyword>` - Search manual pages for a keyword
- `man -k <keyword>` - Equivalent to apropos
- `whatis <command>` - Display a brief description of a command
- `sudo mandb` - Update the manual page database

### Manual Sections

1. User Commands
2. System Calls
3. Library Functions
4. Special Files
5. File Formats
6. Games
7. Miscellaneous
8. System Administration
9. Kernel Routines

### Useful Commands Learned

- `ls` - List directory contents
- `cd` - Change directory (shell builtin)
- `grep` - Search for patterns in files
- `find` - Search for files in a directory hierarchy
- `printf` - Format and print data

Сохраните и выйдите, нажав Ctrl+O, Enter, а затем Ctrl+X.

Теперь создадим простой скрипт, который будет отображать наш справочник, когда нам это понадобится:

nano show_reference.sh

Введите следующий скрипт:

#!/bin/bash
cat ~/project/manual_lab/command_reference.md | less

Сохраните и выйдите из редактора nano. Сделайте скрипт исполняемым:

chmod +x show_reference.sh

Запустите скрипт, чтобы просмотреть ваш справочник:

./show_reference.sh

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

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

Резюме

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

  1. Получили доступ к базовым руководствам с помощью команды man и научились перемещаться по ним
  2. Обучились поиску в руководствах для нахождения конкретной информации
  3. Поняли различные разделы системы руководств и как получить доступ к конкретным разделам
  4. Узнали, как искать команды с помощью apropos, man -k и whatis
  5. Создали личный справочник по командам, чтобы систематизировать свои знания

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

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