Поиск по сайту:

Как использовать команду man в Linux: скрытые секреты и основы


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

Встроенное руководство Linux

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

Вы когда-нибудь знали, что хотите сделать, но не знали названия команды, которая выполнит задачу? Мы, наверное, все там были. Это как пытаться найти слово в словаре, когда ты его не знаешь.

Итак, как вы можете найти то, что ищете? Что ж, есть способы обойти это затруднительное положение с помощью man.

Цифры — еще одна проблема первокурсников. Что они собой представляют и что они означают? Такие вещи, как man(2) или man(5), цитируются в документации и в Интернете. Вы также увидите ссылки на команды, за которыми следуют числа, например mount(2) и mount(8). Конечно же, не может быть более одной команды mount, верно? Как мы увидим, цифры важны и относительно просты.

Говоря о простоте, поиск в man довольно прост, если вы знаете, как это делать. На самом деле, есть несколько удобных способов поиска и навигации внутри man. Давайте зажжем его и посмотрим!

Как открыть руководство

Чтобы использовать man, введите в командной строке man, затем пробел и команду Linux. man открывает руководство по Linux на «справочной странице», которая описывает эту команду — если, конечно, она может ее найти.

Давайте напечатаем следующее и посмотрим, что man говорит о man:

man man

Откроется справочная страница для man.

Как видите, это страница man(1).

Следуйте этим советам для навигации по странице:

  • Чтобы перемещаться по справочной странице по одной строке за раз: используйте колесо прокрутки мыши или стрелки вверх и вниз и клавиши Enter.
  • Чтобы перемещаться по справочной странице по одному экрану за раз: нажмите клавишу пробела и клавиши PgDn и PgUp.
  • Чтобы перейти непосредственно к началу или концу страницы руководства: нажмите клавиши Home и End.

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

Чтобы выйти из man, просто нажмите Q.

Анатомия мужчины Пейдж

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

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

  • Имя: имя команды, которую описывает справочная страница.
  • Краткий обзор. Краткий обзор команды и ее синтаксиса.
  • Конфигурация. Сведения о конфигурации устройства.
  • Описание. Объяснение того, что делает программа.
  • Параметры. Описание параметров командной строки, которые принимает команда.
  • Статус выхода. Возможные значения статуса выхода для команды и причины их использования.
  • Возвращаемое значение. Если справочная страница относится к библиотечной подпрограмме, здесь описывается значение, которое библиотечная подпрограмма может отправить обратно функции, вызвавшей эту подпрограмму.
  • Ошибки. Список значений, которые могут быть помещены в errno в случае ошибки.
  • Среда. Список переменных среды, которые влияют на команду или программу и каким образом.
  • Файлы. Список файлов, которые использует команда или программа, например файлы конфигурации.
  • Атрибуты. Сводка различных атрибутов команды.
  • Версии. Сведения о версиях ядра или библиотеки Linux, в которых системный вызов или библиотечная функция впервые появились или существенно изменились по сравнению с предыдущими версиями.
  • Соответствие: описание любых стандартов, которым может соответствовать команда, например POSIX.
  • Примечания. Разные примечания.
  • Ошибки: известные проблемы.
  • Примеры. Один или несколько примеров, демонстрирующих использование команды.
  • Авторы. Люди, написавшие или поддерживающие команду.
  • См. также: Рекомендуемая литература, связанная с командой или темой.

Мужчина Разделы

Если вы пролистнете пару страниц вниз, то увидите список разделов руководства.

Разделы:

  1. Общие команды. Команды, используемые в командной строке.
  2. Системные вызовы. Функции ядра, которые может вызывать программа.
  3. Библиотечные функции. Функции, которые программы могут вызывать в библиотеках кода (в основном стандарт C).
  4. Специальные файлы. Обычно это устройства, например те, что находятся в каталоге /dev, и их драйверы.
  5. Форматы файлов и соглашения: форматы для файлов, таких как passwd, таблица cron и tar. архивные файлы.
  6. Игры Описания команд, таких как fortune, которые отображают котировки из базы данных при их запуске.
  7. Разное: описания таких вещей, как индексные дескрипторы, параметры загрузки и сам man.
  8. Системное администрирование. Команды и демоны обычно зарезервированы для работы root.
  9. Подпрограммы ядра. Информация, относящаяся к внутренней работе ядра. Сюда входят функциональные интерфейсы и переменные, полезные, например, для программистов, которые пишут драйверы устройств. В большинстве систем этот раздел не установлен.

Когда вы видите команду, за которой следует число, это относится к описанию этой команды в этом разделе руководства. Например, man(1) относится к записи в первом разделе руководства, описывающей команду man.

На изображении выше вы видите ссылку на man(7). Это означает, что в другом разделе есть дополнительная информация о man. Когда мы впервые открыли справочную страницу, она отобразила man(1). Если вы введете только man без номера раздела, man ищет все разделы по порядку в поисках записи для введенной вами команды. Конечно, он нашел man(1) до man(7).

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

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

man 7 man

Руководство открывается записью человека в седьмом разделе.

Эта справочная страница содержит инструкции по написанию справочных страниц. Он описывает формат файла и макросы, которые вы можете использовать, чтобы сделать часть работы за вас. Страница man(1) в первом разделе, который мы рассмотрели ранее, описывает, как использовать сам man.

Как найти записи в разделах

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

Вы можете легко узнать, какие разделы руководства содержат записи для команды. Каждая справочная страница имеет заголовок и краткое описание. Параметр -f (whatis) ищет заголовки страниц и возвращает список совпадений.

Для этого примера мы вводим следующее:

man -f man

Две справочные страницы для man перечислены вместе с номерами разделов и краткими описаниями. Однако будьте осторожны — некоторые записи имеют одно и то же имя, но описывают разные команды и функции.

Например, мы набираем следующее:

man -f printf

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

Также возможен поиск по кратким описаниям и заголовкам страниц. Для этого вы используете опцию -k (кстати). Это также будет соответствовать вхождениям поискового термина внутри других, более длинных слов.

Набираем следующее:

man -k printf

Многие из этих команд описаны на одних и тех же справочных страницах, потому что их основная функциональность в основном одинакова. Страница руководства для vprintf описывает функциональность 10 команд, перечисленных на изображении выше.

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

Допустим, вы хотите изменить пароль учетной записи пользователя. Мы можем искать любые команды, которые упоминают «пользователь» в заголовках или описаниях страниц руководства. Затем мы можем передать его через grep для поиска записей, содержащих «пароль».

Для этого набираем следующее:

man -k 'user ' | grep password

Поскольку мы заключили слово «пользователь» в одинарные кавычки и поставили пробел в конце, он найдет совпадения только для «пользователя», а не для «пользователей». Беглый просмотр результатов поиска показывает, что наиболее вероятным кандидатом является passwd.

Поскольку это справочная страница раздела, и нам не нужно включать номер раздела в команду, мы вводим следующее:

man passwd

Скажем, нам нужна команда, которая подсчитывает количество слов в текстовом файле. Мы вводим следующее, чтобы увидеть, существует ли что-то подобное:

man -k word | grep count

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

man wc

Говоря о wc, мы также можем использовать опцию -k (кстати) с одной точкой (.) в качестве цели поиска, которая соответствовать всему. Если мы направим это через wc и воспользуемся опцией -l (строки), это сообщит нам, сколько справочных страниц есть на компьютере.

Чтобы сделать все это, мы набираем следующую команду:

man -k . | wc -l

На этом компьютере с Ubuntu 6706 справочных страниц, но не удивляйтесь, если на вашем это число отличается. Оно может варьироваться в зависимости от того, какие программные пакеты и утилиты установлены на вашем компьютере и какие справочные страницы были предварительно установлены.

Поиск на справочной странице

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

В этом примере мы вводим следующее, чтобы открыть справочную страницу для команды history:

man history

Для поиска вперед нажмите косую черту (/), а затем введите слово «event». Цель поиска появляется в нижней части окна терминала, и мы нажимаем Enter, чтобы начать поиск.

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

Нажмите «n», чтобы перейти от результата к результату в нижней части страницы. Для поиска назад по справочной странице нажмите «N»; это вернет вас к началу страницы.

Чтобы включить или выключить выделение, нажмите Esc+U.

Если вы находитесь в нижней части справочной страницы и хотите выполнить поиск вверх, нажмите знак вопроса (?), а затем введите поисковый запрос. Мы искали «вход».

Опять же, все совпадающие результаты подсвечиваются.

Для поиска следующего совпадающего результата нажмите «n», чтобы перейти к началу справочной страницы. Нажмите «N», чтобы перейти к предыдущему результату сопоставления и перейти к концу страницы руководства.

Есть еще один способ поиска на справочной странице. Он скрывает все строки, которые не содержат совпадений с вашим поисковым запросом, поэтому с этой техникой лучше всего использовать номера строк.

Если мы введем «-N» и нажмем Enter, мы увидим номера строк на странице руководства.

Мы нажимаем амперсанд (&), вводим поисковый запрос (число) и нажимаем Enter.

Отображаются только те строки, которые содержат наш поисковый запрос.

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

Чтобы снова увидеть все строки, мы нажимаем амперсанд (&), а затем нажимаем Enter.

Мы набираем «292», а затем «g», чтобы перейти к этой строке.

Как только мы вводим «g», мы попадаем на строку 292 (именно поэтому «g» не появляется на изображении выше). Затем строка 292 отображается в верхней части окна терминала.

Вы можете нажать «-n» и нажать Enter, чтобы удалить номера строк.

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

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

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

RELATED: Best Linux Laptops for Developers and Enthusiasts