linux系統下的hash指令:

 

說明:linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令時,hash表會記錄下這條命令的路徑,就相當於緩存一樣。第一次執行命令shell解釋器默認的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令才會去PATH路徑下尋找。

 

hash表的作用:大大提高命令的調用速率

 

hash的參數:

[root@redhat ~]# hash  //輸入hash或hash -l 可以查看hash表的內容,我剛開機所以為空
hash: hash table empty
[root@redhat ~]# hash -l
hash: hash table empty

 

當我執行過2條命令后再看:

[root@redhat ~]# hash  //hash表會記錄下執行該命令的次數,以及命令的絕對路徑
hits command
   1 /bin/cat
   1 /bin/ls
[root@redhat ~]# hash -l  //加參數-l既可以看到hash表命令的路徑,也可以看到它的名字,說不定會有別名哦
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls

 

[root@redhat ~]# hash -p /bin/ls bb  //添加hash表,可以看到我把ls命令重新寫了一遍,改名為bb

[root@redhat ~]# bb    //當我執行bb時就是執行ls命令
anaconda-ks.cfg        icmp_echo_ignore_aly~  pub.key
dead.letter        icmp_echo_ignore_alz~  rpmbuild
icmp_echo_ignore_all~  install.log       RPM-GPG-KEY-useradd
icmp_echo_ignore_alw~  install.log.syslog     RPM-GPG-KEY-westos
icmp_echo_ignore_alx~  passwd

 

[root@redhat ~]# hash -t ls  //-t參數可以查看hash表中命令的路徑,要是hash表中沒有怎么辦?
/bin/ls

[root@redhat ~]# hash -t df  //我沒使用過df,執行hash,就會提示找不到該命令
-bash: hash: df: not found

 

[root@redhat ~]# hash -r  //清楚hash表,清楚的是全部的
[root@redhat ~]# hash -l
hash: hash table empty

 

[root@redhat ~]# hash -l
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls
[root@redhat ~]# hash -d cat   //清楚其中的某一條
[root@redhat ~]# hash -l
builtin hash -p /bin/ls ls

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM