Команда man основы linux или RTFM

Как говорили мне в институте:

Человеческий мозг не может хранить всю информацию обо всем сразу, но может хранить информацию о том, где ее найти.

Каждый уважающий себя пользователь Linux прежде всего должен знать, где хранится информация, и как с ее помощью можно разрешить возникшую перед ним проблему. Сегодня мы находимся в эре интернета. Интернет – огромная база человеческих знаний. Есть поисковые системы, которые помогают нам блуждать по этим залежам знаний, форумы, где можно спросить совета или найти ответ на уже кем-то поставленный вопрос.

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

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

Первый навык

Для того чтобы хорошо ориентироваться в среде операционных систем Linux для начала необходимо развить в себе навык поиска и чтения информации. Философия операционных систем Unix, а с ними и Linux, говорит о том, что система должна быть хорошо документирована. Каждая программа для Linux по существующим стандартам распространяется со страницей документации, описанием. Так называемой man-страницей, от Английского manual – руководство. Поэтому отныне будем соблюдать такой порядок действий при возникновении какой-либо проблемы с ОС Linux – сначала  ищем и читаем man-страницу, затем обращаемся к поисковикам и Википедии, потом (если решения все еще нет) курим форумы и социальные сообщества. 

RTFM

В сетевом сообществе хорошим тоном считается сначала прочитать руководство, прежде чем задавать вопросы на форумах или в сервисах FAQ. Если не соблюдать это простое правило можно с легкостью нарваться на специализированном форуме при составлении банального вопроса на аббревиатуру “RTFM”, что означает “Read The Fucking Manual”.

Структура

Страницы руководства предназначены для конкретной операционной системы и ее версии, вместе с которой они установлены. Это важно, потому что могут быть небольшие различия в командах и их параметрах в зависимости от конкретной версии операционной системы. Man-страницы очень полезные, но стиль их написания может отпугнуть новичков. Не стоит их бояться, достаточно разобрать структуру, прочитать несколько раз, и все станет понятно. Тем не менее, пользователи обычно находят их все более полезными, поскольку со временем они становятся более знакомыми и простыми к восприятию, также взаимодействуя с ними пользователи получают опыт работы в Unix-подобных операционных системах. Попробуем в этом разобраться.

Сама команда чрезвычайно проста в использовании. Ее основной синтаксис:

man [option(s)] keyword(s)

Примеры использования

man чаще всего используется без каких-либо опций[option(s)] и имеет только одно ключевое слово(keyword). Ключевое слово – это точное имя команды или другого элемента, для которого требуется информация. Например, ниже приводится информация о команде ls (которая используется для отображения содержимого любой указанной директории):

$ man ls

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speci‐
       fied.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -a, --all
              do not ignore entries starting with .

Результатом выполнения этой команды является вывод в консоль страницы документации на команду ls. Из нее можно увидеть что информация разбита по пунктам. Первый пункт это имя заданной команды, второй Синопсис – краткое изложение синтаксиса и информации о команде, третий – описание. Дальше пошел список параметров.

В качестве другого примера, можно вывести man-страницу самой команды man:

$ man man

Man автоматически отправляет свой вывод через так называемый пейджер. Пейджер – это программа, которая заставляет вывод любой программы отображаться на одном экране за раз, а не в виде большого количества текста, прокручивающегося вниз по экрану с высокой (и, как правило, не читаемой) скоростью. Двоеточие в нижней части экрана, указывает на конец экранной страницы. Пользователь может перейти на следующую страницу, нажав пробел и вернуться на предыдущую страницу, нажав клавишу b. Нажатие клавиши q выходит из справочных страниц и возвращает пользователя в консоль.

Каждая страница руководства представляет собой самостоятельную статью, которая разделяется на несколько разделов, заголовки для которых помечены буквами верхнего регистра. Секции для команд, как правило, похожи на NAME, SYNOPSIS, DESCRIPTION, OPTIONS, AUTHOR, BUGS, COPYRIGHT, HISTORY и SEE ALSO, хотя могут быть некоторые отличия в соответствии с конкретной командой. Некоторые из них могут быть разбиты на подразделы, в частности OPTIONS, в случае команды с множеством опций.

Разделы страниц руководства

Кроме того, страницы руководства в целом организованы в разделы, каждая из которых содержит страницы о конкретной категории тем, как показано ниже. Раздел, которому принадлежит статья, указан в скобках в верхней строке перед заголовком NAME.

1. исполняемые программы или команды оболочки
2. системные вызовы
3. библиотечные процедуры
4. специальные файлы (т.е. Устройства в каталоге / dev)
5. форматы файлов
6. игры
7. макросы
8. команды системного администрирования
9. подпрограммы ядра
n. Tcl / Tk (язык программирования)

Поиск в man

Поиск в man-странице вызывается с помощью клавиши “/”, каждое последующее найденное вхождение можно просмотреть с помощью клавиши “n”. Если вы знаете, что вам нужно, но не знаете точное название man-страницы, вам поможет apropos(1). Вы наверное обратили внимание на цифру в скобках после названия команды. Она задает категорию, к которой принадлежит команда. Для лучшей организации, и чтобы избежать дублирования, man-страницы делятся по категориям. Например, printf в Linux может принадлежать категориям 1, 1p, 3 и 3p. Она является как функцией библиотеки C, так и пользовательской командой, частью coreutils, которая часто используется в скриптах оболочки. В Linux категории, после номера которых следует “p”, предназначены для POSIX-программистов. В таких случаях вы можете задать требуемую категорию, вставив ее номер между “man” и командой:

$ man 3 printf