Найти в Дзене
toTake

Как Shell выполняет поиск команды?

Вот представьте, у вас в системе определено: Вы пишите в консоль `ls` - но, вот что произойдет дальше? Какое будет поведение? Забегая "вперед" будет выбран алиас с именем `ls`. Почему? Смотри ниже порядок поиска! Ниже опишем порядок, в котором shell проверяет доступность той или иной команды:

Вот представьте, у вас в системе определено:

  • алиас с именем `ls`
  • функция с именем `ls`
  • а также, исполняемый файл с именем `ls` (директория которого определена в переменной $PATH)

Вы пишите в консоль `ls` - но, вот что произойдет дальше? Какое будет поведение?

Забегая "вперед" будет выбран алиас с именем `ls`. Почему? Смотри ниже порядок поиска!

Ниже опишем порядок, в котором shell проверяет доступность той или иной команды:

  1. Алиасы
  2. Зарезервированные слова shell (пример: `for`)
  3. Функции
  4. Встроенные команды в shell (т.е команды которые не представлены в файловой системе) (пример: `pwd`, `cd`)
  5. Команды представленные в файловой системе (пример: `bash`, `gzip`) -