linux执行which,提示command not found,怎么回事
答案:2 悬赏:80 手机版
解决时间 2021-01-24 18:30
- 提问者网友:了了无期
- 2021-01-24 08:48
linux执行which,提示command not found,怎么回事
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-01-24 10:28
命令本身没错,这个和环境变量配置有关系。
[root@S3 ~]# find / -type f -name which
/usr/bin/which
[root@S3 ~]# /usr/bin/which
[root@S3 ~]# find / -type f -name which
/usr/bin/which
[root@S3 ~]# /usr/bin/which
全部回答
- 1楼网友:神也偏爱
- 2021-01-24 11:52
“sysctl: command not found”说明shell在当前搜多路径中找不到sysctl命令。
搜索路径是由冒号分隔的目录列表。用echo $path命令显示path的值,path的值代表当前搜索路径。当你结束命令的输入时(按下回车键后),shell立即执行命令。若是内置命令,shell直接执行命令。若是外部命令,shell将从搜索路径中顺序查找命令,一旦找到所需命令,它就停止查找并执行命令。即使搜索路径中有多个相同的命令,但shell只执行最先找到的命令。当shell从搜索路径中找不到所需的外部命令时,它就会产生“command_name:command not found”的错误提示。
搜索路径无非是告知shell如何查找你输入的外部命令,也就是说,shel从哪里可以找到你输入的命令(这里的命令是指可执行程序或脚本)。输入命令的绝对路径,shell总能找到命令,并执行它。理解这一点很重要!
例如,执行当前目录下a.out程序。输入./a.out后回车,shell立即执行a.out(“.”代表当前目录,结束命令输入后,shell用当前目录替换“.”,最后又变成了绝对路径了);但是只输入a.out后回车,马上产生“a.out: command not found”的错误提示。可是cd当前目录下的子目录不加“./”没问题呀,怎么搞的? 解决的办法:把当前目录添加到搜索路径中。还有一个笨办法,就是把a.out复制到搜索路径中的任何一个目录下,这样,shell就能找到了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯