| 知乎专栏 | 
hase 命令:用来显示和清除哈希表,执行命令的时候,系统将先查询哈希表。
当你输入命令,首先在hash表中寻找,如果不存在,才会利用$PATH环境变量指定的路径寻找命令,然后加以执行。同时也会将其放入到hash table 中,当下一次执行同样的命令时就不会再通过$PATH寻找。以此提高命令的执行效率。
显示哈希表中命令使用频率
$ hash hits command 6 /usr/bin/svn 1 /bin/chown 3 /bin/bash 4 /usr/bin/git 12 /usr/bin/php 1 /bin/rm 1 /bin/chmod 1 /usr/bin/nmap 5 /bin/cat 13 /usr/bin/vim 3 /usr/bin/sudo 4 /bin/sed 2 /bin/ps 2 /usr/bin/man 23 /bin/ls
显示哈希表
$ hash -l builtin hash -p /usr/bin/svn svn builtin hash -p /bin/chown chown builtin hash -p /bin/bash bash builtin hash -p /usr/bin/git git builtin hash -p /usr/bin/php php builtin hash -p /bin/rm rm builtin hash -p /bin/chmod chmod builtin hash -p /usr/bin/nmap nmap builtin hash -p /bin/cat cat builtin hash -p /usr/bin/vim vim builtin hash -p /usr/bin/sudo sudo builtin hash -p /bin/sed sed builtin hash -p /bin/ps ps builtin hash -p /usr/bin/man man builtin hash -p /bin/ls ls
显示命令的完整路径
$ hash -t git /usr/bin/git
向哈希表中增加内容
		
$ hash -p /home/www/deployment/run run
$ run
Usage: /home/www/deployment/run [OPTION] <server-id> <directory/timepoint>
OPTION:
	development <domain> <host>
	testing <domain> <host>
	production <domain> <host>
	branch {development|testing|production} <domain> <host> <branchname>
	revert {development|testing|production} <domain> <host> <revision>
	backup <domain> <host> <directory>
	release <domain> <host> <tags> <message>
	list
	list <domain> <host>
	clean {development|testing|production} <domain> <host>
	log <project> <line>
	conf list
	cron show
	cron setup
	cron edit
		
		
		命令等同于
PATH=$PATH:$HOME/www/deployment export PATH
删除哈希表内容
$ hash -r $ hash -l hash: hash table empty