Если известно расположение команды, для ее запуска можно ввести полный путь к команде. Например, для запуска команды date из каталога /bin можно ввести :
/bin/date
Конечно, этот способ может оказаться неудобным, особенно если команда расположена в каталоге с длинным именем. Лучше хранить команды в известных каталогах и добавить их в значение переменной среды PATH.
Значение этой переменной состоит из списка каталогов, которые последовательно просматриваются при поиске вводимых команд. Для получения информации о текущем значении переменной PATH введите следующую команду:
echo $РАТН /bin: /usr/bin: /usr/local/bin: /usr/bin/Xll: /usr/XHR6/bin: /home/pavel/bin
Вывод команды соответствует принятому по умолчанию пути поиска команд для обычного пользователя Linux. Для разделения каталогов применяется двоеточие.
Каталоги, в которых расположены команды Linux
[ads]
Большинство пользовательских команд в составе операционной системы Linux хранятся в каталогах /bin,/usr/bin и /usr/local/bin. Хотя многие команды графического интерфейса находятся в каталоге /usr/bin, существуют специальные команды X Window, которые расположены в каталогах /usr/bin/Xll и /usr/XHR6/bin. Последним в списке показан каталог bin в домашнем каталоге пользователя.
Если необходимо добавить собственные команды или сценарии командного интерпретатора, разместите их в каталоге bin в собственном домашнем каталоге (например, /home/pavel/bin для пользователя pavel). Данный каталог автоматически добавляется в путь поиска команд Linux. Это значит, что после добавления команды в собственный каталог с правом на выполнение (дополнительная информация о правах доступа приводится в разделе «Информация о правах доступа к файлам») команду можно сразу использовать, вводя ее имя в командной строке.
В путь поиска команд в Linux для пользователя root включаются каталоги /sbin и /usr/sbin, содержащие команды администрирования.
Порядок просмотра каталогов имеет важное значение. Каталоги просматриваются слева направо. В данном случае, если команда fоо расположена одновременно в каталогах /bin и usr/bin, будет выполняться команда из каталога /bin. Для запуска другой команды foo придется или ввести полный путь к команде, или изменить значение переменной PATH. (Изменение значения переменной PATH и добавление каталогов в путь поиска команд рассматриваются нами чуть ниже.)
Не все запускаемые команды расположены в каталогах, перечисленных в переменной PATH. Некоторые команды встроены в командный интерпретатор. Кроме этого, команды можно переопределить с помощью псевдонимов, позволяющих указать параметры запускаемой команды. Также можно определить функцию, содержащую последовательность команд.
Ниже приведен порядок проверки вводимых команд командным интерпретатором:
- Псевдонимы — имена, устанавливаемые с помощью команды alias и представляющие конкретную команду с набором параметров. (Введите alias для просмотра списка установленных псевдонимов.) Часто псевдонимы позволяют определить короткое имя для длинной сложной команды.
- Зарезервированные слова командного интерпретатора— ключевые слова, зарезервированные командным интерпретатором для специального применения. Многие из этих ключевых слов используются при создании функций, например do, while, case и else.
- Функции — наборы команд, которые выполняются вместе в пределах одного интерпретатора.
- Встроенные команды — команды, встроенные в командный интерпретатор. Такая команда не имеет представления в файловой системе. Некоторые распространенные команды являются встроенными, например:
- cd (для смены текущего каталога)
- echo (для вывода текста на экран)
- exit (для выхода из командного интерпретатора)
- f g (для вывода команды из фонового режима)
- history (для просмотра списка запускавшихся ранее команд)
- pwd (для получения текущего каталога)
- set (для установки параметров командного интерпретатора)
- type (для определения расположения команды).
- Команда в файловой системе — такая команда хранится в файловой системе. (Для поиска этих команд в Linux используется список каталогов в переменной PATH.)
Для определения источника конкретной команды можно воспользоваться командой type
(Если применяется не bash, а другой командный интерпретатор, воспользуйтесь командой which.) Например, для определения расположения интерпретатора bash введите следующую команду:
type bash bash is /bin/bash
Введите вместе с командой type такие ключевые слова: which, case и return. Если команда одновременно присутствует в нескольких местах, можно добавить параметр -а для просмотра списка всех экземпляров команды.
Иногда после ввода команды выводится сообщение о том, что команда не найдена или отсутствуют права на ее запуск. В первом случае необходимо проверить правильность ввода команды и ее присутствие в пути, указанном в переменной path. Во втором случае команда может находиться в пути из переменной path, но для нее могут отсутствовать права на запуск.