Знакомая ситуация, когда вы знаете саму команду, но вот не помните её аргументы? Думаю, вполне распространённая ситуация. В такой ситуации у вас один выход - обратиться к команде man.

Один из источников документации, который встроен в ОС Linux по умолчанию называется system manual pages или man pages. Эти страницы идут совместно с устанавливаемыми пакетами и описывают все возможности приложения. Доступ к этим страницам документации как раз осуществляется при помощи утилиты man.

Команда man всю документацию для той или иной команды. Для того чтобы вывести инструкцию для ls мы вводим man ls.

Обновление инструкций

Рекомендую время от времени выполнять команду sudo mandb, которая обновляет документацию. Особенно если вдруг вы не нашли man для команды.

Разделы документаций

Сами страницы документации произошли из документации разработчиков Linux (Linux Programmer’s Manual), которые были огромными и делились на разделы.

Некоторые команды имеют несколько разделов документаций , номер раздела пишется сверху в скобках рядом с самой командой LS(1). Для того чтобы получить эти номера мы можем выполнить команду man -f command.

Если при выполнении команды вы получаете nothing appropriate выполните sudo mandb.

man -f ip
ip (8) - show / manipulate routing, network devices, interfaces and tunnels

Вот список всех разделов:

  • # 1👤 : Пользовательские команды
  • # 2🌌 : Системные команды
  • # 3📁 : Библиотеки
  • # 4🧃 : Специальные файлы
  • # 5📃 : Форматы файлов и соглашения
  • # 6🎮 : Игры
  • # 7🗞️ : Разное
  • # 8🧸 : Команды системного администрирования (обычно только для root)
  • # 9⚗️ : Подпрограммы ядра

Для того чтобы вызвать документацию именно по команде нам нужно указать раздел №1.

man 1 passwd

Для того чтобы вызвать документацию по файлу /etc/passwd нам нужно указать раздел №5.

man 5 passwd

Просмотр по всем категориям

Если вы видите, что у команды несколько категорий и вы хотите просмотреть их сразу все одной командой можно использовать man -a command. Сперва выведется инструкция для первой категории, после выхода вам будет предложено просмотреть следующую категорию (ENTER).

man -a passwd
q
--Man-- next: passwd(1ssl) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

Поиск по ключевым словам

Если вы хотите узнать какие команды вы можете использовать для своей задачи можно поискать определённое слово в инструкциях man выполнив man -k keyword. Например, я хочу задать пароль пользователя:

man -k pass
lpasswd (1)          - Change group or user password
openssl-passwd (1ssl) - compute password hashes
pam_localuser (8)    - require users to be listed in /etc/passwd
passwd (1)           - update user's authentication tokens

Команда apropos pass выполнить тоже самое, пользуйтесь той которая больше нравится.

Навигация в man ⌨️

При вызове команды man вы получаете новое окно, по которому также нужно перемещаться, используя горячие клавиши либо команды.

Команда Результат  
Spacebar (пробел) Пролистать вниз на одну страницу  
PageDown Пролистать вниз на одну страницу  
PageUp Пролистать вверх на одну страницу  
DownArrow Пролистать вниз на одну линию  
UpArrow Пролистать вверх на одну линию  
D Пролистать вниз на половину страницы  
U Пролистать вверх на половину страницы  
/string Поиск определённого слова (string) по странице ниже. Есть поддержка регулярных выражений  
N Переход к следующему совпадению  
Shift+N Переход к предыдущему совпадению  
G Переход в начало документации  
Shift+G Переход в конец документации  
Q Выход  

Структура man

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

Заголовок Описание
NAME Имя команды или исполняемого файла
SYNOPSIS Строка со списком всех возможных атрибутов команды
DESCRIPTION Описание для чего используется команда
OPTIONS Описание опций, которая может принимать команда
FILES Список файлов и директорий, относящихся к команде
BUGS Собственно известные баги
SEE ALSO Дополнительные man pages
EXAMPLES Собственно примеры использования команды
AUTHOR Автор документации

enter image description here

Онлайн документация

Если вам вдруг чем-то не подошёл man, то вы может просмотреть инструкции в интернете.

/usr/share/doc

Еще одно место где вы можете просмотреть информацию о команде это директория /usr/share/doc. В этой директории вы можете найти changelog по команде, узнать кто автор и также почитать инструкцию (FAQ).

find  /usr/share/doc/ -name FAQ
/usr/share/doc/bash/FAQ
/usr/share/doc/zlib/FAQ
/usr/share/doc/curl/FAQ
more /usr/share/doc/curl/FAQ
cat /usr/share/doc/passwd/AUTHORS

Используем help

Также каждая команда имеет атрибут --help, которым вы также можете воспользоваться для просмотра документации.

ls --help | less

whatis

Вы также можете просмотреть для чего именно предназначена та или иная команда, используя whatis command.

whatis ls
ls (1) - list directory contents

Не хватает man?

Есть вторая команда, которая делает всё тоже самое, но только иногда может выдавать немного больше информации, но только иногда. Это команда info.

info passwd