命令复制到/usr/local/bin 无法执行
发布网友
发布时间:2023-03-25 07:09
我来回答
共1个回答
热心网友
时间:2023-04-22 01:52
PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。
我本机的PATH目录:
当我们执行命令出现可能会遇到
类似这样的错误
但是执行完整的目录命令可以执行,这种情况的错误就需要考虑是环境变量的问题
可以使用which查看是否可以找到
一般情况下出现上述错误,是肯定找不到的
参考PATH变量作用,当我们执行命令的时候会从PATH变量指定的目录去寻找相应的可执行程序
例如上述php命令,我们一般的做法是将php执行文件所在bin目录添加到PATH变量中
执行完上述的命令,在执行php命令时就可以在/usr/local/php/bin 文件夹下找到对应可执行程序
如果理解PATH的作用,则可以不采用这种方式,而是采用在PATH变量现有目录下建立软链接的方式实现
这样建立软链接后,当执行命令时,就会在/usr/local/bin/找到对应的可执行程序
理解了以上内容,对于这个问题就好解决,有时候查网上的资料,就是将可执行命令建立软链接到/usr/local/bin/,为什么命令还是无法执行哪?抓耳挠腮
这个时候就需要执行export,查看一下本机的PATH变量是不是含有/usr/local/bin/目录
一般情况下是不会有的,如果有却执行不成功,哪肯定是可执行程序的问题
可以直接执行程序的完整目录试下
有时候我们会遇到连本机命令找不到的情况,大概率也是PATH变量的原因
本机命令找不到,就是/usr/bin 未在PATH变量中