zoukankan      html  css  js  c++  java
  • shell命令的搜索顺序(hash -r, hash的作用)

    我一直以为, shell命令, 比如执行ls, which, less这些, 就是在$PATH或者shell function/builtin中找, 今天才知道还有hash table的存在. 并且hash table搜索先于$PATH. hash table记录了最近的搜索路径, 用hash查看, 得到的是:

    hits    command                                                                                       
       1    /usr/bin/which                                                                                
       1    /usr/local/gnubin/stat                                                                        
       8    /usr/bin/man                                                                                  
       3    /usr/local/gnubin/cut                                                                         
       2    /usr/bin/vim                                                                                  
       1    /usr/local/gnubin/ls
    

    这有什么影响呢? 如果之前调用了命令, 保存了搜索路径, 又改了环境变量, 按理说前面那个命令的搜索路径应该被更新, 由于hash table的存在, 就得不到更新. 这几天我就遇到了这个问题. 我装了两个编译器, LLVM和GCC, 默认是GCC, 发现有代码只能用clang编译(既然发现了这一点, 说明我调用了GCC的gcc), 然后我改环境路径, 改完了用which gcc看, 是clang, 但执行的时候, 还是GCC. 就是这个原因. 怎么办? 用hash -r清空hash table

  • 相关阅读:
    Vim+Vundle+YouCompleteMe 安装
    TortoiseSVN 的分支合并操作
    JSP数据交互一
    Jquery操作DOM
    Jquery
    JQuery选择器
    第五章初始JQuery
    JavaScript对象及初识面向对象
    JavaScript第三章操作DOM
    JavaScript第二章操作BOM
  • 原文地址:https://www.cnblogs.com/Tokubara/p/14408696.html
Copyright © 2011-2022 走看看