Лекция №3 - Справка Linux - man

На прошлой лекции мы рассмотрели загрузку операционной системы Linux. Мы уже знаем основные этапы, которые проходит компьютер вместе с операционной системой от момента нажатия на кнопку включения до момента регистрации в системе. Напомню, также, что работать мы будем в текстовом режиме, поэтому переключаемся на текстовую виртуальную консоль и регистрируемся в системе. После регистрации мы попадаем в командный интерпретатор или оболочку - bash. У оболочки очень много возможностей, пока достаточно понимать, что это среда которая принимает, обрабатывает и выдает результаты команд, которые мы посылаем операционной системе. Выглядит оболочка так как показано на рисунке 1.

Оболочка bash

Рисунок 1

То, что находится слева от курсора называется приглашением к вводу команд. Если приглашение заканчивается на символ $, то вы зарегистрированы в системе как обычный пользователь. Если приглашение заканчивается на #, то это значит, что команды будут выполнены от имени администратора (суперпользователя, “рута”). Давайте попробуем набрать несколько команд в оболочке и посмотреть на результаты.

Набираем команду date и нажимаем клавишу Enter. Вы увидите на экране текущие время и дату. Если ввести команду hostname, то вы получите имя вашего компьютера. Команда pwd покажет в какой директории мы находимся в текущий момент. По команде exit мы выйдем из оболочки и нам нужно будет регистрироваться снова (вводить имя пользователя и пароль).

Также хочу обратить внимание на клавишу Tab, которая позволяет дополнять команды, имена файлов и параметров. Например, наберите такое начало команды shut и нажмите на клавишу Tab. Видите shut автоматически дополнилось до shutdown? Такое дополнение работает если есть только один вариант продолжения набранного куска команды. Если набрать, например, if и нажать Tab, то ничего не отобразится так как существует несколько команд начинающихся с if. Чтобы отобразить эти варианты нужно еще раз нажать на Tab. Если вариантов будет много, будет запрос хотим ли мы смотреть все варианты. Не вводя никаких команд, нажмите два раза клавишу Tab и система спросит хотим ли мы посмотреть все команды? Таким образом можно узнать общее количество команд в системе (см. рисунок 2).

Клавиша Tab

Рисунок 2

Как видно на рисунке система знает 2448 команд! И что их все нужно знать?! Конечно нет. Достаточно знать основные команды (около сотни) и знать где и как найти информацию об остальных. Прежде чем пойдем дальше давайте рассмотрим несколько команд для отображения информации. Вывести содержимое файла на экран позволяет команда cat.

igor@adm-ubuntu:~$ cat /etc/event.d/tty1

Результат:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc2
start on stopped rc3
start on stopped rc4
start on stopped rc5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/getty 38400 tty1

После выполнения этой команды на экране будет представлено содержимое файла. Удобна для небольших текстовых файлов, содержимое которых помещается на экран. Существует также команда tac (cat - наоборот), которая позволяет вывести содержимое файла наоборот:

igor@adm-ubuntu:~$ tac /etc/event.d/tty1
exec /sbin/getty 38400 tty1
respawn

stop on runlevel 6
stop on runlevel 1
stop on runlevel 0

start on stopped rc5
start on stopped rc4
start on stopped rc3
start on stopped rc2

# started until it is shut down again.
# This service maintains a getty on tty1 from the point the system is
#
# tty1 - getty

Команд  cat неудобна при выводе больших файлов, которые не помещаются на одном экране. Поэтому существует также команда more. Эта команда выдает текст порциями, при нажатии на клавишу Enter - построчно, а при нажатии на клавишу пробел - постранично. Но на сегодняшний день есть более продвинутая команда - less.

less - это уже такой себе мини-браузер (просмотрщик, въювер) для отображения файлов с возможностью поиска и другими полезными функциями. Откройте любой текстовый файл, например /etc/bash.bashrc:

less /etc/bash.bashrc

Тест откроется во въювере less. Сразу же скажу: чтобы выйти из less нужно нажать на клавишу q . В less уже можно навигационными клавишами перемещаться по тексту (стрелки вверх-вниз, вправо-влево, PgUp, PgDown), осуществлять поиск текста, выполнять переходы по найденным словам и много другое. Чтобы выполнить поиск нужно находясь во въювере нажать на клавишу / или ? затем без пробела искомое слово и нажать клавишу Enter. /искомое слово - поиск будет вестись вниз от текущего экрана, а ?искомое слово - вверх от текущего экрана. Если текст большой и искомых слов много или они разбросаны по всему тексу, то клавишами n и N можно быстро переходить по найденным словам. n - перемещение вверх по тексту, N - перемещение вниз. Если находясь во въювере нажать на клавишу h то откроется справка программы. Справка откроется также с помощью въювера less, поэтому, чтобы закрыть справку нужно нажать клавишу q .

Что ж  теперь перейдем к команде man. Команда man позволяет отобразить справку обо всех существующих в системе командах. Отображает информацию с помощью въевера less, поэтому мы и остановилсь на нем подробнее. Наберите команду man man - получить справку о справке. А теперь нажмите клавишу h и вы увидите справку о команде less, потому, что с ее помощью выведен текст о команде man. Нажмите q, чтобы выйти из справки по less.

Справочная информация сгруппирована по разделам. Всего разделов 9. О них вы можете прочесть в справке man man. В качестве разъяснения можно привести пример с командой и именем файла passwd. Если набрать команду man passwd, то будет отображена справка о команде passwd. Наберите в командной строке man passwd. В самом верху справки вы увидите надпись passwd(1). Цифра в скобках указывает, что данная информация относится к первому разделу (пользовательские команды). Пролистайте теперь в самый конец файла (раздел see also - смотрите также) и вы увидите там надпись passwd(5), которая говорит о том, что существует еще информация о passwd в пятом разделе справки. Выйдем из текущей справки (q) и наберем команду man 5 passwd (цифра 5 указывает на то, что справка должна быть отображена из пятого раздела. Пятый раздел описывает форматы файлов и в этой справке содержится информация не о команде passwd, которая позволяет изменить пароль пользователя, а о файле passwd в котором содержится информация о пользователях. Если искомое понятие содержится  в нескольких разделах, то по умолчанию будет выводится информация из раздела с меньшим номером.

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

NAME (название) - заголовок справки с кратким описанием.

SYNIPSIS (синтаксис) - синтаксис команд. Каждая команда может иметь опции (или ключи) и параметры. Опции изменяют поведение команды, а параметры это то с чем команда будет работать. Например, команда ls -l /home/. -l - это ключ команды, который говорит ей отобразить дополнительную информацию о директориях, а /home/ - это передаваемый команде параметр, который показывает команде с какой директорией ей нужно выполнить операцию. Синтаксис показывает какие у команды есть ключи, как их можно компоновать друг с другом, какие параметры можно передавать команде. Нужно уметь читать синтаксис команд в справке man.

[-с|-w|-tz] - такая запись говорит о том, что ключи перечисленные через | несовместимы и не могут использоваться вместе. То есть в команде нельзя указать ключ -с и ключ -w или ключ -t. Должен быть указан какой-то один из них. Квадратные скобки в которых указаны ключи говорят о том, что ключи не есть обязательными. То есть эти ключи могут вообще ни использоваться в команде.

[-adhu7V] - такая запись говорит о том, что ключи также не обязательные (т.к. в квадратных скобках) и, что ключи совместимы, то есть могут использоваться в любой комбинации. Например, -ad, -a, -ahu, -h7V и т.д.

При указании ключей принято соглашение, что после одного знака “-” идут однобуквенные ключи, а после двух знаков “–” идет один ключ состоящий из одного слова. Очень часто однобуквенные ключи дублируются ключами-словами.Например, -p и –parents, -v и –verbose, и т.д. Между ключами-словами обязательно должны быть пробелы, между однобуквенными ключами пробелов может и не быть. Упрощенно общий вид команды можно записать так:

Команда [-однобуквенная опция[ параметр]] [--опция-слово[ параметр]] [параметр]

DESCRIPTION (описание) - в этом разделе дано описание команды.

EXAMPLES (примеры) - полезный раздел в котором представлены практические примеры команд с наиболее часто употребляемыми ключами и параметрами.

OPTIONS (опции, ключи)  - в этом разделе кратко описывается назначение каждого ключа команды.

FILES (файлы) - здесь указано расположение файлов так или иначе связанных с командой.

SEE ALSO (смотрите также) - в этом разделе указаны разделы справки по командам, файлам, которые связаны с изучаемой и рекомендуются также к просмотру.

Существуют и другие разделы предлагаю с ними ознакомится самостоятельно.

Как еще можно получить справку в Linux? Существует также команда info, которая похожа на man, но появилась гораздо позже и имеет некоторые отличия в представлении информации. На команде info останавливаться не буду просто знайте, что есть и такой способ получения информации.

И man и info хороши когда известно о какой команде нужно получить справку. Но вы как новички в Linux пока не знаете какие команды есть вообще. Поэтому у команды man есть ключ -k, который позволяет искать команды по ключевым словам. Например вы хотите узнать найти команды для работы с сетью. Сеть по английси будет network. Выполните в командной строке команду man -k network. Вы увидите список команд в справке которых употребляется слово network. Список довольно большой и чтобы его немного уменьшить можно воспользоваться следующим приемом. Например, чтобы из отображенных команд выбрать только те которые отвечают за конфигурацию можно команду выполнить так:

man -k network | grep configure

Результат:

ifconfig (8)         - configure a network interface
iwconfig (8)         - configure a wireless network interface
iwpriv (8)           - configure optionals (private) parameters of a wireless network interface

Таким образо мы нашли три команды, которые позволяют настраивать сетевые интерфейсы. О команде grep мы еще будем говорить, пока скажу, что в данном примере результаты команды man -k network будут переданы команде grep, которая отобразить только те результаты в которых встречается слово configure. Комбинируя таким образом два ключевых слова, можно в большинстве случаев найти нужную информацию. Например, man -k editor | grep text выдаст информацию о текстовых редакторах которые есть в системе. И т.д. Вместо команды man -k можно использовать команду apropos - они аналогичны.

Полезной может оказаться и команда man -f или ее аналог whatis. Ее целесообразно применять когда вы помните имя команды, но подзабыли, что именно она делает. Вот несколько примеров:

igor@adm-ubuntu:~$ man -f pwd
pwd (1)              - print name of current/working directory
igor@adm-ubuntu:~$ man -f ls
ls (1)               - list directory contents
igor@adm-ubuntu:~$ man -f grep
grep (1)             - print lines matching a pattern
igor@adm-ubuntu:~$ whatis mkdir
mkdir (1)            - make directories
igor@adm-ubuntu:~$ whatis rm
rm (1)               - remove files or directories

И последняя команда которую мы рассмотрим - это команда whereis. Эта команда позволяет показать где расположен исполняемый файл той или иной команды, а также месторасположение файла справки man указанной команды. Пример:

igor@adm-ubuntu:~$ whereis rm
rm: /bin/rm /usr/share/man/man1/rm.1.gz

Здесь /bin/rm/ это исполняемый файл, а /usr/share/man1/rm.1.gz - это файл справки о команде rm.

Попробуйте самостоятельно определить для чего нужны команды ls, cd, mkdir, cp, mv, rm, rmdir. Попробуйте также найти команду которая отображает информацию о системе. И определить с каким ключем нужно выполнить эту команду, чтобы отобразить только версию ядра.

Читать другие лекции по курсу Администратор ПК с Linux

Статьи и новости схожей тематики:

Комментариев: 4

  1. Igorka: Как я minitube из исходников обновлял:

    [...] файл INSTALL. Открываю его, командой less: 1$ less [...]

  2. Igorka: Уменьшение размеров фотографий в Linux:

    [...] Команда apropos позволяет выдать список разделов справки, где встречается указанное ключевое слово. Меня заинтересовала следующая строка: 123… convert (1) - convert between image formats as well as resize an image… … [...]

  3. Bek:

    на страницах сделали бы переход к следующей лекции было бы удобно, т е типа туда и сюда..)

    Ответить

  4. Valdemar:

    Igorka, большое спасибо, у Вас очень хорошие лекции. Весь материал, пройденный в уч.центре год назад, вспоминаю на ура, у Вас все только по делу, никакой воды. Браво.

    Ответить

Оставьте свой отзыв