• 注意linux bash缓存


    在已经运行的系统中更改了某些以前存在于PATH环境变量所指明的目录中的程序的存放目录后可能出现No such file or directory的错误提示。
    比如,以前python存放于/usr/bin/下,现在临时将/usr/bin/python删除,在/usr/local/bin下生成python,按照正常逻辑,此时直接执行python的话,会找到/usr/local/bin/python,因为/usr/local/bin也在环境变量PATH中,但却会出现bash: /usr/bin/python: No such file or directory
    为何?
    具体原因如下:
    bash会保存一个从开机运行以来曾执行过得命令,而不是每次都搜索$PATH,如果在上次执行python命令之后更改了python的实际位置,则bash还会去按照原有hash table里面记录的路径去执行,但因为原执行文件已不存,所以会报出No such file or directory的错误提示。
    通过执行 hash 命令可以很容易看出:
    root@ubuntu:~$ hash
    hits    command
       3    /usr/bin/which
       2    /usr/bin/file
       4    /usr/bin/sudo
       1    /bin/mv
       1    /usr/bin/whereis
       7    /usr/bin/python
    root@ubuntu:~$
    解决方法:
    解决方法也很简单,重置bash 的hash table即可,比如执行 hash -d python即可删除hash table中python的记录,如果再次执行python的时候,bash将搜索$PATH得到新的python路径

  • 相关阅读:
    ha-wordy-Write-up
    HA: Infinity Stones-Write-up
    为什么k8s引入pod概念?
    vxlan 跨网段虚拟机迁移
    交换机配置
    Git四大组件(转)
    php-fpm
    docker容器中用户自定bridge网络与默认bridge网络之间的区别
    原型链
    'style-loader', 'css-loader'使用
  • 原文地址:https://www.cnblogs.com/Jerryshome/p/2836072.html
Copyright © 2020-2023  润新知