Для начала узнаем, что это вообще такое:
# type -a hashhash is a shell builtinHash встроена в оболочку bash. С ее помощью можно посмотреть кэш путей к исполняемым файлам, который хранится до перезапуска оболочки. Возможно где-то в инструкциях в интернете по настройке чего-либо вы видели запуск этой команды для очистки кэша путей. Иногда это нужно сделать при установке нового софта, когда изменился по какой-то причине путь к исполняемому файлу, который вы ранее уже запускали в консоли в текущем сеансе.
Покажу на практике, как и на что влияет hash.
# htop# hashhits command 1 /usr/bin/htop# mv /usr/bin/htop /usr/local/bin# htop-bash: /usr/bin/htop: No such file or directory# hash -r# htop# hashhits command 1 /usr/local/bin/htopЯ запустил htop, он уехал в кэш с путём /usr/bin/htop. Потом я его перенёс в /usr/local/bin/htop и не смог запустить через консоль, пока не очистил кэш команды. На практике заниматься подобным обычно не приходится, но у меня были иногда ситуации, когда этот кэш нужно было почистить. Так что лучше про него знать.
Впервые с hash я познакомился еще во freebsd. Там часто в руководствах после установки чего-то из портов предлагалось очистить hash оболочки командой:
# rehashВ bash на linux аналог этой команды:
# hash -rВы можете отключить или снова включить использование кэша исполняемых команд:
# set +h# hash-bash: hash: hashing disabled# set -h#bash #terminal