Коллега положил в каталог ~/tools утилиту lab-status — она печатает сводку о машине — и написал: «Набери lab-status — и увидишь сводку».
Запусти утилиту коллеги
Выполни по очереди три команды из списка: запуск по имени, просмотр каталога ~/tools и запуск по полному пути.
Сначала предположи
Файл ~/tools/lab-status существует. Что будет, если набрать lab-status?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Почему lab-status не находится, а ~/tools/lab-status работает?
-
Повреждённый файл не заработал бы и по полному пути. Файл один и тот же — разница в том, как оболочка его ищет.
-
lsлежит в /usr/bin и запускается из любого каталога. А в ~/tools короткоеlab-statusтоже напечатаетcommand not found— проверьcd ~/tools, затемlab-status. -
sudo меняет пользователя команды. Утилита и так работает без sudo, если указать путь:
~/tools/lab-status.
Короткое имя оболочка ищет в своём списке каталогов, и ~/tools в нём нет.