Я добавил свой скрипт в /usr /bin, и он будет работать, как и ожидалось, если я введу полное имя команды. Как мне заставить терминал автозаполнить имя команды?
1 ответ
hash -r
или откройте новую оболочку.
Когда ваша оболочка запускается, она сканирует ваш PATH
и кэширует имена и местоположения программ, которые она находит; когда вы просите его запустить программу, он сначала проверяет свой кеш, и если он находит там местоположение, ему не нужно сканировать все каталоги на вашем пути, что довольно много времени. Bash использует результаты начального сканирования для завершения команды tab (и не обновляет его, когда вы запускаете новую программу), поэтому ваша программа не войдет туда, пока вы не откроете новый сеанс или не скажете ему перефразировать дорожка.
Примечание для будущих ищущих ответов: в zsh используйте rehash