Рейтинговые книги
Читем онлайн Командная строка Linux. Полное руководство - Уильям Шоттс

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 6 7 8 9 10 11 12 13 14 ... 93

Мы узнали много нового, но чтобы информация усвоилась, требуется время. Выполняйте упражнения в песочнице раз за разом, пока не почувствуете, что понимаете их смысл. На данном этапе очень важно надежно усвоить, как работают основные команды управления файлами и групповые символы. Не бойтесь выйти за рамки предложенных упражнений — добавьте дополнительные файлы и каталоги, поэкспериментируйте с групповыми символами для определения групп файлов в разных операциях. Идея ссылок на первый взгляд может показаться малопонятной, поэтому уделите время их исследованию. Зачастую они оказываются настоящим спасательным кругом.

5. Работа с командами

До настоящего момента мы видели группы мистических команд, каждая из которых имеет свои таинственные параметры и аргументы. Теперь мы удалим часть этой таинственности и даже создадим несколько собственных команд. В этой главе будут представлены следующие команды:

• type — сообщает, как интерпретируется имя указанной команды.

• which — сообщает, какая программа будет выполнена.

• man — выводит страницу справочного руководства с описанием команды.

• apropos — выводит список подходящих команд.

• info — выводит запись из справочного руководства Info с описанием команды.

• whatis — выводит краткое описание команды.

• alias — создает псевдоним для команды.

Что такое команды?

Команда может быть:

• Выполняемой программой, как те файлы, что мы видели в каталоге /usr/bin. К этой категории относятся: скомпилированные двоичные программы, например, написанные на C и C++; программы, написанные на языках сценариев, таких как shell, Perl, Python, Ruby и др.

• Встроенной командой, реализованной внутри самой командной оболочки. Командная оболочка bash поддерживает множество внутренних команд, которые так и называют — встроенными (shell builtins). Команда cd, например, — это встроенная команда.

• Функцией командной оболочки. Функции командной оболочки (shell functions) — это миниатюрные сценарии на языке командной оболочки, встроенные в окружение. Мы еще вернемся к вопросам настройки окружения и создания функций командной оболочки в последующих главах, а пока просто помните об их существовании.

• Псевдонимом. Псевдоним (alias) — это команда, которую мы можем определить сами, сконструировав ее из других команд.

Идентификация команд

Часто бывает полезно точно знать, какому из четырех типов принадлежит команда, и Linux предлагает пару способов узнать это.

type — получение типа команды

Команда type — это встроенная команда, которая сообщает тип указанной ей коман­ды. Вызывается она следующим образом:

type команда

где команда — это имя исследуемой команды. Например:

[[email protected] ~]$ type type

type встроена в оболочку

[[email protected] ~]$ type ls

ls является алиасом для `ls --color=tty'

[[email protected] ~]$ type cp

cp хэширована (/bin/cp)

Здесь мы видим результаты определения типов трех разных команд. Обратите внимание, что команда ls (в дистрибутиве Fedora) фактически является псевдонимом (alias) команды ls с параметром --color=tty. Теперь-то мы знаем, почему результаты команды ls отображаются в цвете!

which — определение местоположения выполняемого файла

Иногда в системе имеется более одной версии исполняемой программы. Это довольно редкое явление для настольных систем, но вполне обычное для больших серверов. Точно определить местоположение данного исполняемого файла позволяет команда which:

[[email protected] ~]$ which ls

/bin/ls

which ищет только исполняемые программы, она не способна выявлять встроенные команды или псевдонимы, замещающие фактические исполняемые программы. Если попытаться с помощью which определить местоположение встроенной команды (например, cd), мы либо ничего не получим, либо получим сообщение об ошибке:

[[email protected] ~]$ which cd

/usr/bin/which: no cd in (/opt/jre1.6.0_03/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/opt/jre1.6.0_03/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/home/me/bin)

Это своеобразное сообщение «command not found» (команда не найдена).

Получение документации с описанием команд

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

help — получение справки для встроенных команд

bash имеет встроенную справку для каждой встроенной команды. Чтобы получить ее, введите help с именем встроенной команды. Например:

[[email protected] ~]$ help cd

cd: cd [-L|-P] [dir]

Change the current directory to DIR. The variable $HOME is the default DIR. The variable CDPATH defines the search path for the directory containing DIR. Alternative directory names in CDPATH are separated by a colon (:). A null directory name is the same as the current directory, i.e. `.'. If DIR begins with a slash (/), then CDPATH is not used. If the directory is not found, and the shell option `cdable_vars' is set, then try the word as a variable name. If that variable has a value, then cd to the value of that variable. The –P option says to use the physical directory structure instead of following symbolic links; the -L option forces symbolic links to be followed3.

Примечание к форме записи: квадратные скобки в описании синтаксиса команды указывают на необязательность элемента. Вертикальная черта используется для перечисления взаимоисключающих вариантов. В примере с описанием команды cd, приведенном выше, ее синтаксис описывается как cd [-L|-P] [dir].

Эта форма записи говорит, что команда cd может принимать необязательный параметр -L или -P и необязательный аргумент dir.

Несмотря на то что help дает краткое и точное описание команды cd, это описание не может служить инструкцией по использованию, и, как вы можете видеть, в нем упоминается многое из того, чего мы еще не знаем! Но не волнуйтесь, со всем этим мы познакомимся в свое время.

--help — вывод инструкции по использованию

Многие выполняемые программы поддерживают параметр --help для вывода описания синтаксиса и параметров, поддерживаемых командой. Например:

[[email protected] ~]$ mkdir --help

Использование: mkdir [КЛЮЧ]... КАТАЛОГ...

Создает КАТАЛОГ(и), если он еще не существует.

-Z, --context=CONTEXT установить контекст безопасности SELinux для каждого

создаваемого каталога равным CTX

Аргументы, обязательные для длинных ключей, обязательны и для коротких.

-m, --mode=РЕЖИМ установить код доступа (как в chmod), не a=rwx — umask

-p, --parents не выдавать ошибок, если существует, создавать

родительские каталоги, если необходимо

-v, --verbose печатать сообщение о каждом созданном каталоге

--help показать эту справку и выйти

--version показать информацию о версии и выйти

Об ошибках в mkdir сообщайте по адресу <bug-coreu[email protected]>.

Некоторые программы не поддерживают параметр --help, но вы все равно пробуйте передать его. Часто в результате выводится сообщение об ошибке, содержащее ту же информацию о порядке использования.

man — вывод страниц справочного руководства

Большинство программ, предназначенных для использования в командной строке, предоставляют официальную документацию, которую называют страницей справочного руководства (man-страницу). Для просмотра этих страниц используется специальная программа постраничного просмотра man, например:

man программа

где программа — имя команды.

Страницы справочного руководства могут несколько отличаться друг от друга оформлением, но в общем случае содержат заголовок, краткий обзор синтаксиса команды, описание назначения команды и список всех параметров с их описанием. Однако страницы справочного руководства обычно не включают примеры использования, и их главная цель — служить справочником, а не инструкцией по использованию. Для примера попробуйте вывести страницу справочного руководства для команды ls:

[[email protected] ~]$ man ls

В большинстве систем Linux man использует less для вывода страницы, поэтому при просмотре страницы можно использовать все известные команды less.

«Руководство», которое отображает man, разбито на разделы и охватывает не только пользовательские команды, но и команды системного администрирования, программные интерфейсы, форматы файлов и многое другое. В табл. 5.1 перечислены разделы справочного руководства.

Таблица 5.1. Организация справочного руководства

Раздел

Содержит

1

Пользовательские команды

2

Программные интерфейсы системных вызовов в ядре

3

Программные интерфейсы в библиотеке C

4

Специальные файлы, такие как узлы устройств и драйверы

5

Форматы файлов

6

Игры и развлечения, такие как хранители экрана

7

Прочее

8

Команды системного администрирования

Иногда, чтобы найти искомое, нужно заглянуть в конкретный раздел. Это актуально для форматов файлов, названия которых часто совпадают с именами команд. Если номер раздела не указан, man всегда будет возвращать первую найденную страницу, обычно из раздела 1. Ниже приведен пример прямого указания номера раздела:

1 ... 6 7 8 9 10 11 12 13 14 ... 93
На этой странице вы можете бесплатно читать книгу Командная строка Linux. Полное руководство - Уильям Шоттс бесплатно.
Похожие на Командная строка Linux. Полное руководство - Уильям Шоттс книги

Оставить комментарий