A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash/zsh: hash command not found #Debian apt-get install bash #Ubuntu apt-get install bash #Alpine apk add bash #Arch Linux pacman -S bash #Kali Linux apt-get install bash #CentOS yum install bash #Fedora dnf install bash #OS X brew install bash #Raspbian apt-get install bash #Docker docker run cmd.cat/hash hash
运行命令时,bash 在哈希表中查找其在磁盘上的位置。 此位置表先前是根据外壳初始化脚本中的 PATH 环境变量(例如 .bashrc
或 .bash_profile
)在启动外壳时确定的。
哈希表是自动维护的,但是您可以使用 hash 命令强制其重新计算其程序位置。
hash [-l] [-r] [-p pathname] [-d] [-t] [commandname ... ]
-d 忘记每个命令名的记忆位置。 -l 以可以用作其他程序输入的格式显示信息。 -p pathname 使用路径名作为命令名的完整路径。 -r 忘记所有记住的位置。 -t 打印每个命令名的记忆位置。 如果给出了多个命令名,则在每个位置之前加上相应的命令名。 commandname 在PATH环境变量中搜索指定的每个命令名,如果找到,则将其添加到记住的命令列表中。
命令名
hash 命令返回 0 表示成功。 其他任何值表示找不到命令名,或者给出了无效的选项。
显示有关哈希表的信息。 如果没有相关信息,此命令将不显示任何内容。
$ hash hash: hash table empty
忘记所有记住的位置,并立即确定它们。 如果您运行命令而 bash 找不到它(例如,因为您对系统进行了更改),请运行 hash -r
并重试该命令。
hash -r
忘记记住哪个可执行文件的位置(通常是 /usr/bin/which
)并立即确定。
hash -d which
打印哪个命令的记忆位置 /usr/bin/which
。
hash -t which