19 авг. 2000 г.

Азы linux (для детей) урок 4

man и info

Выполняя ту или иную команду в bash-оболочке, мы запускаем какую-либо программу. Количество этих небольших программ-утилит в операционных системах на базе ядра Linux очень большое. В связи с этим невозможно запомнить весь перечень команд с их параметры. Поэтому каждая команда в Linux имеет описание в виде так называемых man-страниц. Man (в данном случае) – это сокращение от слова manual (руководство).
Чтобы посмотреть документацию к той или иной программе (команде) необходимо в оболочке Linux написать man имя_команды. Например, если дать команду man sleep, то увидим справочную информацию по команде sleep.

Поскольку команда sleep весьма специфична, то имеет достаточно короткое описание. На самом деле большинство man-документов не умещаются в пределах экрана. Для их просмотра можно использовать следующие клавиши:
Стрелки вверх и вниз – построчная прокрутка;
Page_Up и Page_Down – постраничная прокрутка;
Home и End – перемещение в начало и конец документа.
Покинуть руководство позволяет клавиша Q.
Следует отметить, что все man-документы написаны на английском языке и лишь малая доля переведена (локализована). Выход тут один – учить английский.
Помимо man-страниц есть другая версия документации – это info-страницы. В отличие от первых они не являются строгой документацией, их легче понять начинающим пользователям Linux, могут содержать примеры и ссылки. Ниже представлен info-документ команды sleep (info sleep).

структура man-страниц

При первом взгляде на man-документ его бывает трудно понять, т.к. он не похож на простой текст-объяснение (он им и не является). Маны всегда строго структурированы и разбиты на разделы. Некоторые из разделов присутствуют обязательно, другие по необходимости:
  1. NAME (ИМЯ) – команда и то, что она делает.
  2. SYNOPSIS (ОБЗОР) – синтаксис команды. Параметры без скобок являются обязательными, а в квадратных скобках – нет (обычно это ключи).
  3. DESCRIPTION (ОПИСАНИЕ) – подробное описание как использовать команду.
  4. OPTIONS (ОПЦИИ) – перечень возможных ключей и их описание.
  5. ...

как найти команду?

Может возникнуть ситуация, когда требуется выполнить какую-нибудь задачу, а как ее выполнить не знаешь. Всегда можно предположить, что такая задача возникала перед другими людьми ранее и, возможно, уже создана программа (утилита) решающая ее. Следовательно, в bash-оболочке Linux есть команда, позволяющая выполнить возникшую задачу. Но как найти эту команду? Может быть мы даже готовы почитать маны про эту команду, но не знаем и с какой буквы она начинается. Что делать? Книги и Интернет? Однако есть еще один вариант - это команда apropos. Она выводит на экран описание команд, содержащих слово, переданное ей в качестве аргумента. Допустим возникла потребность объединить пару файлов. Чтобы узнать какими способами это можно сделать, достаточно дать команду apropos объедин (окончание недописано, т.к. неизвесто как слово "объединение" используется в описании команды – может быть и "объединяет" и "объединяюся" ...).
Команда apropos
Полученный список позволяет оценить, какая команда больше всего нам подходит. Но это только полпути: далее следует почитать man-страницу к данной команде, чтобы выяснить, как ее следует использовать. Только вот одно существенное примечание: аргумент команде apropos мы передали на русском языке, поэтому поиск осуществлялся только в части документов (причем довольно малой). Обычно следует использовать русские и английские слова, чтобы найди требуемую команду.
Поиск команд bash-оболочки LinuxИ еще одно примечание: для поиска команд вместо аpropos можно использовать man с ключом -k (man -k строка) – будет тоже самое.
Работают одинаково: apropos и man -k

практическая работа

  1. Выясните, для чего предназначена команда cat. Используя данную команду, создайте два файла с данными, а затем объедините их в один.
  2. С помощью команды apropos найдите команду для удаления файлов. Прочитайте к ней man-документ. Удалите какой-нибудь файл.
  3. Дайте команду info bash. Прочитайте информацию о данном командном интерпретаторе. Если она на английском языке, переведите пару абзацев.