bash Cookbook / bash: Сборник рецептов: 1.3 Finding and Running Commands / Нахождение и запуск команд

Оглавление
Английский оригинал Перевод на русский

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

Проблема
Вам необходимо найти и запустить редко используемую команду в bash.

bbrodriges 26.12.08 в 12:35

0

Решение
Попробуйте команды type, which, apropos, locate, slocate, find и ls.

bbrodriges 26.12.08 в 12:36

0

Bash хранит список каталогов, в которых он должен искать команды, в переменной окружения $PATH. Встроенная команда type ищет в окружении (включая алиасы, ключевые слова, функции, встроенные команды и файлы в $PATH) исполнимые файлы, соответствующие ее аргументам и отображает тип и местоположение всех совпадений. У нее есть несколько аргументов. Стоит отметить флаг -a, который заставляет команду type выводить все совпадения, вместо того чтобы останавливаться после нахождения первого.
Команда which действует походим способом, но ищет только в $PATH и алиасах csh. Эта команда отличается от системы к системе (обычно это csh-скрипт в BSD и бинарный файл в Linux), и обычно как и type имеет флаг -a.
Используйте эти команды когда вы знаете имя команды, и нужно выяснить точное ее расположение, или узнать, есть ли она вообще на компьютере.

kbdfck 11.01.09 в 11:58

0

$ type which
which is hashed (/usr/bin/which)
$ type ls
ls is aliased to ls -F -h'
$ type -a ls
ls is aliased to ls -F -h'
ls is /bin/ls
$ which which
/usr/bin/which

bbrodriges 26.12.08 в 12:39

0

Почти все команды имеют возможность выдачи подсказки по использованию. Обычно имеются страницы документации - manpages, где man это сокращение слова manual. Получить к ним доступ можно при помощи команды man. Так, man ls выдаст документацию по команде ls. Многие программы также имеют встроенные средства помощи, вызываемые аргументами вроде -h или --help. Некоторые программы, особенно на других операционных система, выдут помощь, если вы вызовете их без аргументов. Некоторые UNIX-команды тоже так себя ведут, но подавляющее большинство из них этого не делает. Это связано со способом связывания UNIX-команд, так называемыми пайпами, о которых мы поговорим позже. Но что делать если вы не помните или не знаете название нужной команды?

kbdfck 11.01.09 в 13:04

0

Команда apropos ищет названия страниц руководства man и описания по регулярному выражению, указанному в качестве аргумента. Это очень полезно, когда вы не помните название необходимой команды. То же самое делает и man -k.

kbdfck 11.01.09 в 13:06

0

$ apropos music
cms (4) - Creative Music System device driver
$ man -k music
cms (4) - Creative Music System device driver

bbrodriges 26.12.08 в 12:40

0

$ locate apropos
/usr/bin/apropos
/usr/share/man/de/man1/apropos.1.gz
/usr/share/man/es/man1/apropos.1.gz
/usr/share/man/it/man1/apropos.1.gz
/usr/share/man/ja/man1/apropos.1.gz
/usr/share/man/man1/apropos.1.gz

bbrodriges 26.12.08 в 12:40

0

Подробности по команде find смотрите в Главе 9.

bbrodriges 26.12.08 в 12:41

0

Смотрите также
• help type
• man which
• man apropos
• man locate
• man slocate
• man find
• man ls
• Глава 9
• Рецепт 4.1, “Запускаем выполняемые файлы”
• Рецепт 14.10, “Добавляем текущую директорию в переменную $PATH”

bbrodriges 26.12.08 в 12:42

0
Минутку...