Bash Hash 命令17 Mar 2025 | 4 分钟阅读 在类 UNIX 操作系统中,hash 是 bash shell 的一个内置命令,用于列出最近执行命令的哈希表。它用于查看、重置或手动更改 bash 路径哈希。它保存了最近执行的程序的位置,并在我们想要查看时显示它们。它提供了每个命令名称的完整路径名。 换句话说,当任何命令在未指定其路径的情况下执行时,shell 开始在路径变量中列出的目录中搜索该命令。当 Bash 找到该命令时,它会将该位置保存在哈希表中,以便记住该命令的位置。之后,Bash 开始检查该表以查找命令的位置,而不是再次查找该命令。这使得命令运行速度更快。但是,如果在将命令的位置记录在表中后移动了该命令,则 shell 将无法找到该命令。在这种情况下,将执行路径中目录的完整搜索以获取命令数据。 内置的“hash”命令负责维护哈希表。在没有任何开关的情况下,hash 会列出以前使用的命令、它们的位置以及它们在会话期间执行的次数。 语法上面的语法用于确定和记住每个 command_name 的完整路径名。如果没有参数,它会显示有关以前使用的命令及其位置的信息。 选项
退出状态hash 命令成功返回“0”。非零值表示未找到 command_name,或者给出了无效选项。 列出 Bash 哈希表我们可以通过调用不带任何参数的 hash 来显示当前会话的哈希表。![]() 在这里,hash 命令显示命中次数(该命令的调用次数)以及会话期间的命令及其路径。所有命中的总和被认为是通过路径保存的搜索次数。 注意- 如果打开一个没有执行任何命令的新会话,则该会话将没有哈希表。输出将如下所示![]() 如果我们使用 -l 选项,那么它将以可用作输入的格式显示哈希表,即: ![]() 我们还可以使用 -t 选项打印会话期间使用的命令的记住的位置。 ![]() 我们还可以打印由空格分隔的多个命令的位置,即: ![]() 将命令路径和名称添加到 Bash 哈希表我们可以将项目添加到哈希表中,以便在 shell 中再次使用。应该记住,哈希表仅存在于 shell 的当前活动会话中。如果我们打开一个新的 shell,bash 将根据该 shell 的执行命令创建一个新的哈希表。 当我们开始运行第一个命令时,bash 立即开始创建哈希表。要将命令添加到哈希表,我们可以使用 -p 选项,后跟路径,然后是名称。这样,我们可以像使用别名一样使用哈希表。以下示例中,我们将 /home/bash.sh 脚本添加到哈希表,名称为“bash”。 ![]() 将 /home/bash.sh 添加到哈希表并映射名称“bash”后,我们可以直接通过名称“bash”调用它 ![]() Bash 检查哈希表中的命令名称以查找可执行文件。通常,除非我们希望该脚本在新 shell 中可用,否则无需将其放入路径中。 从哈希表中删除项目我们还可以选择删除或忘记哈希 bash 中命令的记住的位置。我们可以简单地使用 -d 选项,后跟名称来执行此任务 ![]() 在这里,我们从哈希表中删除了 /home/bash.sh,该哈希表映射了名称“bash”。 清除哈希表要清除哈希表,我们可以使用 -r 选项。 ![]() 在这里,可以看到使用 -r 选项成功清除了哈希表。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。