Командная строка Linux. Полное руководство - [18]

Шрифт
Интервал

Таблица 5.2. Команды программы info

Команда

Действие

?

Вывести справку

Page Up или Backspace

Вывести предыдущую страницу

Page Down или ПРОБЕЛ

Вывести следующую страницу

n

Вперед (next) — вывести следующий узел

p

Назад (previous) — вывести предыдущий узел

u

Вверх (up) — вывести узел, родительский по отношению к текущему, обычно меню

ENTER

Перейти по гиперссылке, находящейся на позиции курсора

q

Завершить (quit)


Большинство программ из числа обсуждавшихся до сих пор, является частью пакета coreutils проекта GNU, поэтому о них можно получить дополнительную информацию командой

>[me@linuxbox ~]$ info coreutils

Она выведет страницу с меню, состоящим из гиперссылок на документацию для каждой программы, входящей в состав пакета coreutils.

README и другие файлы с описанием программ


Многие программные пакеты, установленные в вашей системе, включают файлы с документацией, размещаемые в каталоге /usr/share/doc. Большинство из них имеют простой текстовый формат и могут просматриваться с помощью less. Некоторые файлы имеют формат HTML и могут просматриваться с помощью веб-браузера. Можно также встретить файлы с расширением .gz. Это сжатые файлы, обработанные программой-архиватором gzip. Пакет gzip включает специальную версию less с именем zless, которая выводит содержимое текстовых файлов, сжатых архиватором gzip.

Создание собственных команд с помощью alias


А теперь проведем первый опыт по программированию! У нас есть возможность создавать собственные команды с помощью команды alias. Но прежде чем начать, познакомимся с одной маленькой хитростью командной строки. Она позволяет уместить в одной строке несколько команд, для чего нужно просто отделить их друг от друга точкой с запятой:

>команда1; команда2; команда3...

Следующий пример демонстрирует этот прием:

>[me@linuxbox ~]$ cd /usr; ls; cd -

>bin games kerberos lib64 local share tmp

>etc include lib libexec sbin src

>/home/me

>[me@linuxbox ~]$

Как видите, мы поместили три команды в одну строку. Первая выполняет переход в каталог /usr, вторая выводит его содержимое, и третья осуществляет возврат в предыдущий каталог (команда cd -), поэтому по завершении мы оказываемся там же, где и были. Давайте теперь с помощью alias превратим эту последовательность в новую команду. Первое, что мы должны сделать, — придумать имя для новой команды. Пусть это будет test. Но прежде чем продолжить, хорошо бы проверить, не занято ли уже имя test. Для этого воспользуемся командой type:

>[me@linuxbox ~]$ type test

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

>Ой! Имя test уже занято. Попробуем foo:

>[me@linuxbox ~]$ type foo

>bash: type: foo: не найден

Отлично! Имя foo свободно. Теперь создадим наш псевдоним:

>[me@linuxbox ~]$ alias foo='cd /usr; ls; cd -'

Обратите внимание на структуру этой команды:

>alias имя='строка'

За командой alias следует имя, сразу за которым (то есть без пробелов) следует знак «равно» и строка в кавычках, описывающая действие, присваиваемое имени. После определения псевдонима его можно подставлять везде вместо команды.

Давайте попробуем:

>[me@linuxbox ~]$ foo

>bin games kerberos lib64 local share tmp

>etc include lib libexec sbin src

>/home/me

>[me@linuxbox ~]$

Тип псевдонима определяется с помощью команды type:

>[me@linuxbox ~]$ type foo

>foo является алиасом для `cd /usr; ls; cd -'

А удаляется псевдоним с помощью команды unalias:

>[me@linuxbox ~]$ unalias foo

>[me@linuxbox ~]$ type foo

>bash: type: foo: не найден

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

>[me@linuxbox ~]$ type ls

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

Если вызвать команду alias без аргументов, она выведет список всех псевдонимов в окружении. Ниже приводятся несколько псевдонимов, объявляемых в дистрибутиве Fedora по умолчанию. Попробуйте понять, что они делают:

>[me@linuxbox ~]$ alias

>alias l.='ls -d .* --color=tty'

>alias ll='ls -l --color=tty'

>alias ls='ls --color=tty'

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

Навестите старых друзей


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

>2 Некоторые разделы справки Linux переведены на русский язык, а некоторые — нет. Для переведенных разделов мы будем приводить русский текст, выводимый системой на консоль, для непереведенных — указывать перевод в сносках. — Примеч. ред.