Поиск команд в терминале Linux

Подписка на LinuxFormat 2017 Инфофорум национальной безопасности

Если известно расположение команды, для ее запуска можно ввести полный путь к команде. Например, для запуска команды date из каталога /bin можно ввести :

Конечно, этот способ может оказаться неудобным, особенно если команда расположена в каталоге с длинным именем. Лучше хранить команды в известных каталогах и добавить их в значение переменной среды PATH.

Значение этой переменной состоит из списка каталогов, которые последовательно просматриваются при поиске вводимых команд. Для получения информации о текущем значении переменной PATH введите следующую команду:

Вывод команды соответствует принятому по умолчанию пути поиска команд для обычного пользователя Linux. Для разделения каталогов применяется двоеточие.

Каталоги, в которых расположены команды Linux

Большинство пользовательских команд в составе операционной системы 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. Некоторые команды встроены в командный интерпретатор. Кроме этого, команды можно переопределить с помощью псевдонимов, позволяющих указать параметры запускаемой команды. Также можно определить функцию, содержащую последовательность команд.

Ниже приведен порядок проверки вводимых команд командным интерпретатором:

  1. Псевдонимы — имена, устанавливаемые с помощью команды alias и представляющие конкретную команду с набором параметров. (Введите alias для просмотра списка установленных псевдонимов.) Часто псевдонимы позволяют определить короткое имя для длинной сложной команды.
  2. Зарезервированные слова командного интерпретатора— ключевые слова, зарезервированные командным интерпретатором для специального применения. Многие из этих ключевых слов используются при создании функций, например do, while, case и else.
  3. Функции — наборы команд, которые выполняются вместе в пределах одного интерпретатора.
  4. Встроенные команды — команды, встроенные в командный интерпретатор. Такая команда не имеет представления в файловой системе. Некоторые распространенные команды являются встроенными, например:
  • cd (для смены текущего каталога)
  • echo (для вывода текста на экран)
  • exit (для выхода из командного интерпретатора)
  • f g (для вывода команды из фонового режима)
  • history (для просмотра списка запускавшихся ранее команд)
  • pwd (для получения текущего каталога)
  • set (для установки параметров командного интерпретатора)
  • type (для определения расположения команды).
  1. Команда в файловой системе — такая команда хранится в файловой системе. (Для поиска этих команд в Linux используется список каталогов в переменной PATH.)

Для определения источника конкретной команды можно воспользоваться командой type

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

Введите вместе с командой type такие ключевые слова: which, case и return. Если команда одновременно присутствует в нескольких местах, можно добавить параметр -а для просмотра списка всех экземпляров команды.
Иногда после ввода команды выводится сообщение о том, что команда не найдена или отсутствуют права на ее запуск. В первом случае необходимо проверить правильность ввода команды и ее присутствие в пути, указанном в переменной path. Во втором случае команда может находиться в пути из переменной path, но для нее могут отсутствовать права на запуск.

Комментарии:

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">