在Linux上放出哈希命令

Linux Hash命令提供有关系统或最近运行的命令的信息,但是您看到的取决于您正在使用的外壳。

  • 在脸书上分享
  • 分享到Twitter
  • 分享LinkedIn
  • 分享Reddit
  • 通过电子邮件分享
  • 打印资源
计算机命令屏幕模糊
快门 /媒体鲸鱼

当您在Linux系统上键入“哈希”时,您可以根据所使用的外壳获得两个截然不同的响应之一。

如果您正在使用bash或相关的外壳,例如ksh,您应该看到自终端会话开始以来所使用的命令列表,有时会计算每个命令的数量。这比使用历史命令如果您只想看到您最近的命令活动,但是哈希命令不是一个可执行的。相反,它依靠您的外壳。

哈希在狂欢中

这是一个例子哈希命令运行bash

$ hash hits命令1/usr/bin/who 1/usr/bin/vi 1/usr/bin/bin/man 2/usr/bin/ls/ls 1/usr/bin/bin/clear 3/usr/bin/cat/cat 3/usr/usr/bin/ps

为了bash, 这哈希命令是内置的。这不是一个单独的可执行文件,而是外壳内置的命令。一些命令 - 例如PWD回声- 不要被捕获哈希输出。您将通过此命令获得相同的结果:

$ hiNdin hash“ $@”命中命令1/usr/bin/who 1/usr/bin/vi 1/usr/bin/bin/man 2/usr/bin/ls/ls 1/usr/usr/bin/clear/clear 3/usr/bin/bin/猫3/usr/bin/ps

我在上面显示的命令/usr/bin/hash我的软呢帽系统上的脚本。这是一个/usr/bin/sh看起来像这样的脚本:

$ cat/usr/bin/hash#!/usr/bin/sh内置哈希“ $@”

如果我运行此脚本,我将没有输出:

$/usr/bin/ash $ <==否输出

为什么?因为脚本启动了一个新的外壳,并且在该外壳中没有运行命令哈希命令无需报告。另一方面,使用“。”来源脚本,您将获得截然不同的响应。

$。/usr/bin/hash命中命令1/usr/bin/who 1/usr/bin/vi 1/usr/bin/bin/man 2/usr/bin/ls/ls 1/usr/bin/bin/clear 3/usr/bin/cat/cat3/usr/bin/ps

哈希在ksh中

为了ksh,键入“哈希”还将显示您在当前会话中运行的命令的列表,但没有“命中”列。相反,它显示了使用的命令和可执行文件名称=路径格式。这有助于阐明外壳首先收集此信息的原因。如果Shell必须低头看您的搜索路径以找到您使用的所有命令的可执行文件,则有助于“记住”这些可执行文件所在的位置,以便每次使用命令时都不必搜索您的路径。

$ ash bash =/usr/bin/bash cat =/usr/bin/cat column =/usr/bin/column date =/usr/bin/date ls =/usr/bin/bin/ls man =/usr/bin/bin/manPS =/usr/bin/ps

为了ksh,,,,哈希似乎是一个别名:

$别名|grep hash =’别名-t  - ’

运行与别名关联的命令应产生相同的输出:

$ alias -t  -  bash =/usr/bin/bash cat =/usr/bin/cat column =/usr/bin/column date =/usr/bin/date ls =/usr/bin/ls y =/ls man =/usr/usr/bin/man ps =/usr/bin/ps

哈希在ZSH

哈希在其他一些外壳中命令ZSH,将提供截然不同的响应。它不会向当前Shell的命令历史记录报告,而是向您显示冗长的命令列表及其文件系统位置。要查看被记住的位置列表有多长时间,请使用这样的命令:

shs@dragonfly〜%哈希|WC -L 2753

要查看列表,您可能需要将命令输出输送到更多的命令。

shs@dragonfly〜%哈希|更多。keepme =/home/linuxbrew/.linuxbrew/bin/.kepme 7z =/usr/bin/7z 7za =/usr/bin/bin/7za atomicparsley =/usr/usr/bin/atomicparsley bod_met_meeting =/ezscript =/home/shs/bin/ezscript邮件=/usr/bin/mail modemmanager =/usr/sbin/sbin/modemmanager networkmanager =/usr/sbin/sbin/networkmanager vboxer vboxclient =/usr/usr/bin/bin/vboxclient vboxclient-usr/usr/bin =/usr/bin =/usr/bin =/bin =/usr/bin =/usr/bin =/usr/bin =/usr/bin =/usr/bin/vboxclient-all vboxControl =/usr/bin/vboxControl

在这种情况下,输出中包含的命令不限于您运行的命令。

请注意,外壳不仅跟踪系统命令,还记录了您在主目录中添加的脚本的位置。当您运行新脚本时,它将被添加到您的哈希下次启动外壳时,输出并可见。

shs@dragonfly〜%哈希|grep shs |head -10 bod_meeting =/home/shs/bin/bod_meeting ezscript =/home/shs/shs/bin/ezscript关于=/home/home/shs/shs/bin/aigh of append =/home/shs/shs/shs/bin/append backups.log =/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/shs/bin/backups.log bash.pg =/home/shs/bin/bash.pg bigfile =/home/shs/shs/bin/bigfile bigfile2 =/home/home/shs/shs/bin/bigfile2 calcpower2 calcpower2 calcpower2 calcpower2calcpower newscript =/home/shs/bin/newscript

包起来

哈希命令的响应取决于您使用的外壳以及如何维护其对您运行的命令以及系统上的可执行文件的引用。跟踪命令的主要目的是通过减少定位时间所需的时间来加快响应时间。

有关的:

版权所有©2022 IDG Com足球竞彩网下载munications,Inc。

企业网络中的10家最强大的公司2022