Как проверить, доступна ли команда в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь определять, доступна ли команда в Linux и где она расположена. Вы рассмотрите три различных метода: использование команды which для нахождения пути к исполняемому файлу, использование command -v для проверки наличия команды и определения встроенных команд или псевдонимов, а также использование команды type для проверки типа команды.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") subgraph Lab Skills linux/echo -.-> lab-558701{{"Как проверить, доступна ли команда в Linux"}} linux/ls -.-> lab-558701{{"Как проверить, доступна ли команда в Linux"}} linux/which -.-> lab-558701{{"Как проверить, доступна ли команда в Linux"}} end

Определение пути к команде с помощью which

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

Давайте найдем путь к команде echo, которую вы использовали в предыдущей лабораторной работе (практическом занятии).

Введите следующую команду в терминал и нажмите Enter:

which echo

Вы должны увидеть вывод, похожий на следующий:

/usr/bin/echo

Этот вывод говорит вам, что исполняемый файл echo находится в каталоге /usr/bin/. /usr/bin - это распространенный каталог для хранения исполняемых программ, доступных для всех пользователей.

Теперь давайте попробуем найти путь к команде htop, которую вы установили.

Введите следующую команду и нажмите Enter:

which htop

Вывод должен быть похожим на:

/usr/bin/htop

Это подтверждает, что htop также находится в каталоге /usr/bin/.

Команда which очень полезна, когда вам нужно точно знать, какую версию команды выполняется, особенно если вы установили несколько версий или если команда расположена в менее распространенном каталоге.

Проверка наличия команды с помощью command -v

На этом этапе вы научитесь еще одному способу проверять существование и расположение команды с использованием command -v. Это похоже на which, но он также может сообщить вам, является ли команда встроенной командой оболочки (shell) или псевдонимом (alias), а не только исполняемым файлом.

Давайте используем command -v для проверки команды echo.

Введите следующую команду в терминал и нажмите Enter:

command -v echo

Вы должны увидеть вывод, похожий на следующий:

echo

В этом случае command -v сообщает нам, что echo является встроенной командой оболочки. Встроенные команды являются частью самой оболочки, а не отдельными исполняемыми файлами.

Теперь давайте проверим команду htop с помощью command -v.

Введите следующую команду и нажмите Enter:

command -v htop

Вывод должен быть похожим на:

/usr/bin/htop

Здесь command -v дает нам полный путь к исполняемому файлу htop, как и which. Это показывает, что htop является внешней командой (исполняемым файлом), а не встроенной командой оболочки.

Использование command -v - это надежный способ определить, как оболочка будет интерпретировать имя команды. Это особенно полезно для различения между псевдонимами, встроенными командами и внешними исполняемыми файлами.

Проверка типа команды с помощью команды type

На этом этапе вы будете использовать команду type для получения описания того, как оболочка (shell) интерпретирует имя команды. Команда type предоставляет более подробную информацию, чем command -v, и может сообщить, является ли команда псевдонимом (alias), ключевым словом (keyword), функцией, встроенной командой или файлом.

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

Введите следующую команду в терминал и нажмите Enter:

type echo

Вы должны увидеть вывод, похожий на следующий:

echo is a shell builtin

Этот вывод четко указывает, что echo является встроенной командой оболочки.

Теперь давайте проверим команду htop с помощью type.

Введите следующую команду и нажмите Enter:

type htop

Вывод должен быть похожим на:

htop is /usr/bin/htop

Здесь type сообщает нам, что htop находится по адресу /usr/bin/htop, что означает, что это исполняемый файл.

Давайте попробуем еще один пример с командой, которая может быть псевдонимом. Псевдонимы - это сокращения для более длинных команд. Хотя в этой среде, возможно, не настроен стандартный псевдоним, давайте посмотрим, что говорит type о такой распространенной команде, как ls.

Введите следующую команду и нажмите Enter:

type ls

Вывод может отличаться в зависимости от конфигурации оболочки, но, скорее всего, будет показано что-то вроде:

ls is an alias for ls --color=auto

Это показывает, что ls - это псевдоним, который автоматически добавляет цвета к выводу.

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

Резюме

В этом практическом занятии (lab) вы научились проверять, доступна ли команда в Linux, а также определять ее тип и местоположение. Сначала вы использовали команду which для поиска полного пути исполняемых команд, таких как echo и htop, тем самым показав, как найти местонахождение бинарного файла команды в системе, обычно в директориях, таких как /usr/bin.

Затем вы изучили утилиту command -v, которая обеспечивает более комплексную проверку. Эта команда не только указывает местоположение исполняемых файлов, но и определяет, является ли команда встроенной командой оболочки (shell), как это было показано на примере команды echo. Это различие важно для понимания того, как оболочка обрабатывает разные типы команд.