ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

10 минут чтени€

¬се, что вам нужно знать о Linux, можно найти в man. Ёто интерфейс, используемый дл€ просмотра справочных руководств системы, отсюда и название: man - сокращение от manual. Ќапример, можно выполнить поиск команды дл€ выполнени€ задачи, даже если неизвестно, как она называетс€. Ќо как найти само руководство? ¬ этой статье расскажем о некоторых скрытых возможност€х этой команды.

 ак пользоватьс€ командой man в Linux

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

—уществует стара€ шутка: единственна€ команда, которую нужно знать в Linux это man Ц точка входа в руководство пользовател€. Ќесмотр€ на то, что тут есть дол€ правды, но даже сама команда man может ввести в тупик вначале. ¬ернее, поиск информации с помощью этой команды.

Ќаверное, у всех был случай, когда знали, что вы хотите сделать, но не знали кака€ команда поможет выполнить поставленную задачу. Ёто похоже на то, как искать слово в словаре при том, не зна€ самого слова.

»так, как же можно найти, то что нужно? — man можно легко обойти эту сложность.

÷ифры - еще одна сложность перед новичками. „то они означают? ¬ы документации или в просторах »нтернета часто можно увидеть такие ссылки, man (2) или man (5). “акже можно встретить ссылки на команды, за которыми следуют цифры, такие как mount (2) и mount (8).  онечно, не может быть больше одной команды mount, верно?  ак мы увидим, цифры важны и их пон€ть относительно просто.

ѕроще говор€, вести поиск по man достаточно легко если один раз пон€ть, как это работает. Ќа самом деле, есть несколько способов поиска и навигации в man.


 ак перейти к руководству

„тобы запустить руководство по какой либо-команде достаточно в командной строке набрать команду man, а затем через пробел название команды, по которой нужно руководство. ѕосле этого система запустить руководство по команде Ц конечно, если найдет. ƒавайте посмотрим, что покажет команда man по man:

man man

Ќиже показано руководство по команде man:

man man

 ак видно, это перва€ страница руководства man (1). „тобы просмотреть другие страница выполните одно из следующих действий:

  • „тобы прокрутить по одной строчке: используйте колесо мыши, стрелки вверх или вниз и клавишу Enter.
  • ƒл€ перехода на следующую страницу: Ќажмите клавишу пробел, или же кнопки PgUp PgDown.
  • ƒл€ перехода в начало и конец руководства:  лавиши Home и End

≈сли нажать H (заглавна€ h), то можно перейти в раздел помощи, где можно найти альтернативные комбинации, которыми можно пользоватьс€ дл€ навигации. „тобы выйти из руководства нажмите Q.


—труктура руководства

¬ начале страницы можно увидеть Ќазвание (Name) и ќписание (Synopsis). ≈сть определЄнные правила оформлени€ страницы руководства. ≈сть руководства по командам, программам, функци€м и т.д. Ќе во всех руководствах есть эти заголовки, так как некоторые из них применимы только к конкретным командам.

Ќиже приведЄн список заголовков, которые можно встретить в руководстве.

  • Ќазвание (Name): название команды, по которой просматриваетс€ руководство
  • —инопсис (Synopsis):  раткое описание команды и синтаксиса
  •  онфигураци€ (Configuration): ƒетали настройки дл€ устройства
  • ќписание (Description): ќписание основного назначени€ программы
  • ќпции ( лючи): опции которые принимает команда
  • ¬ыходной статус (Exit Status): ¬озможные значени€, возвращаемые командой при завершении работы
  • ¬озвращаемое значение (Return Value): ≈сли руководство запущено по какой-то библиотеке, то это указывает на значение, которое вернет библиотека функции, котора€ вызвала ее.
  • ќшибки (Errors): —писок всех значение, которые может принимать errno в случае ошибки выполнени€ команды
  • ќкружение (Environment): —писок переменных окружени€, которые относ€тс€ к команде или программе
  • ‘айлы (Files): —писок файлов, которые использует команда или программа, например, конфигурационный файл
  • јтрибуты (Attributes): —писок различных атрибутов команды
  • ¬ерсии (Versions): —писок изменений в €дре Linux или библиотеке, которую использует команда
  • —оответствие (Conforming to): ќписание любых стандартов, которым может соответствовать команда, например, POSIX.
  • «аметки (Notes): ƒополнительные заметки
  • Ѕаги (Bugs): »звестные ошибки
  • ѕримеры (Examples): ќдин или несколько примеров использовани€ команды
  • јвторы (Authors): Ћюди, которые разработали и поддерживают команду
  • ѕросмотрите также (See Also): –екомендуемые материалы по команде

–азделы руководства

ѕрокрутив ниже на несколько страниц увидите список разделов в данном руководстве:

man (7)

Ёто следующие разделы:

  1. ќсновные команды (General commands):  оманды, которые используютс€ в командной строке
  2. —истемные вызовы (System calls): ‘ункции €дра, которые может вызвать программа
  3. ‘ункции библиотек (Library functions): общий набор функций и возможностей, используемых программами
  4. ‘орматы файлов и соглашени€ (File formats and conventions): ‘орматы файлов как passwd, cron table, tar архивы
  5. —пециальные файлы (Special files): обычно устройства, например, найденные в /dev, и их драйверы.
  6. »гры (Games): ќписание команд, например, fortuna, котора€ при запуске показывает цитаты из Ѕƒ
  7. ƒополнительно (Miscellaneous): ќписание таких вещей как inodes, параметры загрузку
  8. јдминистрирование системы (System administration):  оманды и демоны, зарезервированные дл€ использовани€ root-ом.
  9. –аспор€док €дра (Kernel Routines): »нформаци€, касающа€с€ внутренних операций €дра. —юда вход€т функциональные интерфейсы и переменные, которые могут быть использованы программистами, которые разрабатывает драйвера устройств.

÷ифры в скобках р€дом с командой указывают на раздел руководства. Ќапример, man (1) означает первый раздел руководства, котора€ описывает работу команды man.

Ќа скриншоте выше видна ссылка на man (7). Ёто значит, что подробную информацию о команде можно найти в другом разделе.  огда впервые открываем руководство по команде, оно показывает man (1). ≈сли ввели команду man без указани€ раздела, команда будет искать переданные параметр во всех разделы по очереди и конечно же первым выведет первый раздел.

≈сли нужно найти информацию в конкретном разделе нужно передать команде номер этого раздела.

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

man 7 man

–уководство откроетс€ с седьмого раздела:

man 7 man

Ёта страница руководства содержит инструкции по созданию руководства. ќна описывает формат файлов и макросы, которые можно использовать дл€ автоматизации части работы. man (1) же в начале руководства описывает как вообще использовать саму команду man.


ѕоиск записей в разделах

¬ основном, если нужно просто узнать, как пользоватьс€ той или иной командой, не надо указывать номер раздела. man найдЄт стандартную запись в первом разделе руководства, котора€ описывает как нужно пользоватьс€ командой. »ногда же, в поиске нестандартной информации, нужно открыть конкретный раздел, содержащий запись по команде.

¬ Linux легко можно найти разделы, в которых встречаетс€ нужна€ записб.  аждое руководство обладает названием и кратким описанием.  люч Цf (whatis) ведЄт поиск по заголовкам и возвращает все вхождени€.

Ќапример, введем следующую команду:

man -f man
man -f man

 оманда нашла два совпадени€ дл€ команды man с разделами и кратким описанием. ќднако будьте осторожны - некоторые записи имеют одинаковое название, но описывают разные команды и функции.

Ќапример, введЄм следующую команду:

man -f printf
man -f printf

 ак видно, дл€ команды printf были найдены две записи: одна в первом разделе, и друга€ в третьем разделе. ќднако это разные команды. »нформаци€ в разделе 1 описывает команду printf командной строки, котора€ форматирует данные при выводе в окно терминала. ¬ третьем же разделе описываетс€ семейство функций библиотеки printf в €зыке программировани€ C.

“акже возможен поиск по кратким описани€м, а также заголовкам страниц. ƒл€ этого используетс€ параметр -k (apropos). Ёто также будет искать соответстви€ искомому термину поиска внутри других, более длинных слов.

¬водим следующее:

man -k printf
man -k printf

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

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

ƒопустим, нужно изменить пароль учетной записи пользовател€. ћы можем искать любые команды, которые упоминают "user" в заголовках или описани€х страницы. «атем его можно пропустить через функцию grep дл€ поиска записей, содержащих слово "password".

ƒл€ этого нужно ввести следующую команду:

man -k 'user ' | grep password
man -k 'user ' | grep password

“ак как слово user мы выделили одинарными кавычками и в конце поставили пробел, команда будет искать только слово УuserФ, а не УusersФ. Ѕегло просмотрев результат, можно заметить, что сама€ подход€ща€ команда это passwd.

“ак как правило использовани€ указано в первом разделе руководства, не нужно указывать конкретный раздел:

man passwd

ƒопустим на нужна команда, котора€ выводит количество слове в текстовом файле. Ќабираем в командной строке, что-то подобное:

man Цk word | grep count
 man Цk word | grep count

„тобы узнать все, что нужно знать о подсчете слов, введите следующую команду:

 man wc

√овор€ о wc, мы также можем в качестве значени€ передать параметру Цk точку ., что означает любой символ. ј затем передать вывод команде wc, которой передадим еще и параметр Цl (lines), на выводе мы получим число страниц руководства.

„тобы сделать все это введем команду:

man -k . | wc -l
man -k . | wc -l

»того, у нас 6 706 страниц руководства, но не пусть вас не путает, если у вас это число отличаетс€, так как объем руководства напр€мую зависит от установленных в системе программ и предустановленных справочников.


ѕоиск по руководству

“акже есть возможность вести поиск по самому руководству. Ќапример, давайте рассмотрим руководство по команде history:

man history

„тобы вести поиск в следующих страницах от текущей вводим символ пр€мой косой черты / и набираем искомое слово. –езультат этих действий будет отображатьс€ внизу командной строки. „тобы начать поиск нажимаем Enter.

man history

—истема выведет и выделит первое совпадение по искомому слову:

man history

„тобы перейти к следующему результату нажмите n, а чтобы перейти к предыдущим результатам Ц N.

¬ключить или выключить подсветку найденного слова можно сочетанием клавиш Esc+U.

≈сли же дошли до конца руководства, но не нашли нужную информацию, то можно вести поиск в обратном направлении. ƒл€ этого нажимаем ? и набираем нужный текст:

?entry

“акже можно перемещатьс€ вперед и назад по найденным результатам.

≈сть другой способ поиска по руководству. ќн скрывает все строки, которые не содержат совпадени€ с искомым словом, поэтому лучше использовать номера строк с этим методом.

≈сли набрать ЦN и нажать Enter во врем€ просмотра руководства, то радом со строками отобраз€тс€ номера строк.

ЦN

“еперь нажимаем на &, набираем искомое слово и нажимаем Enter.

&/number

“еперь отобраз€тс€ только строки, в которых найдено искома€ фраза:

искома€ фраза

ѕросмотре вывод можно найти наиболее интересные результаты. ћы видим, что строка 292 наиболее подход€ща€ и хотим просмотреть данный раздел руководства.

„тобы показать все снова держим нажатым & и нажимаем Enter.

& + Enter

“еперь набираем номер строки: 292, а затем букву Ђgї, чтобы перейти к указанной строке.

292

 ак только мы нажмем Ђgї нас перебросит на 292 строку (именно поэтому на скриншоте выше не показана буква Ђgї).

„тобы убрать нумерацию строк достаточно набрать Цn и нажать Enter.


ѕрочитайте волшебное руководство

Ќа страницах руководства много полезной информации. ƒаже у команд, которые вы думаете, вы хорошо знаете, есть такие возможности, о которых вы никогда не слышали.

¬ы также определенно найдете команды, о существовании которых вы не знали. — таким количеством различных способов поиска и отслеживани€ информации, потр€сающе иметь под рукой такую команду.