Linux下提⽰bash:commandnotfound解决⽅法⼩结
0x00 前⾔
⽂章中的⽂字可能存在语法错误以及标点错误,请谅解;
如果在⽂章中发现代码错误或其它问题请告知,感韩国 三级
0x01 解决⽅法
我们在使⽤linux开发编译的时候可能会遇到:
1.前⼏次还好⽤的命令,这次再输⼊就出现-bash: ***: command not found的情况;
2.第⼀次使⽤就出现 -bash: ** : command not found的情况。
导致这种问题的原因有很多(就像导致肚⼦疼痛的原因各种各样),有可能是环境变量配置问题,也可能某⼀个bin⽂件夹下的内容全部删除导致等,所以现在将主要导致bash:command not found的原因写在下⾯,希望对⼤家的开发过程有帮助。
1.检查该命令⼯具是否安装
出现这个问题时,⾸先⽤whereis命令确定该指令⼯具是否安装,例如确定gcc是否安装班杰明微博
江疏影2分半资源whereis gcc,如果此时显⽰gcc:/usr/bin/gcc则说明已经安装好,可以接着⽤下⾯的⽅法继续原因,如果只是显⽰gcc:,则说明gcc没有下载,此时进⾏下载就可以。
Centos(Rehat系列)系统下载gcc命令:yum install gcc
Ubuntu系统下载gcc命令:apt-get install gcc
2.检查各个bin⽂件夹的内容是否⾮空
在使⽤其它相对更复杂的⼿段“还原”到之前好⽤的状态之前,应该先检查的bin⽂件夹⾥的命令是否都在,这个⽅法最简单也最直观。如果⾃⼰需要⽤到的命令所在的bin⽂件夹为空,那么就会理所应当的出现-bash: ***: command not found情况。
要检查的bin⽂件夹有以下⼏个:
/bin, /usr/bin, /sbin, /usr/sbin
查看这四个⾥⾯的是否为空,若出现为空的情况,那么解决办法就是⼀个同样系统版本的linux把对
应⽂件夹的内容复制到本地空的bin⽂件夹中。例如我的linux版本是CentOS release 6.8,我输⼊gcc命令编译的时候出现bash: gcc: command not found,通过查看四个⽬录发现其中/usr/bin内容为空,然后⾃⼰通过将同样的CentOS release 6.8系统下的 /usr/bin内容全部复制到本地的/usr/bin中,然后再次gcc编译,通过。
注意,这种排查⽅法适⽤在输⼊类似ls、tty这种常见指令以前可⽤但最近出现not found的情况。
3.检查是否是$PATH设置是否正确
$PATH决定了shell到哪些⽬录下去寻命令或⼯具,PATH的值是⼀系列⽬录,当程序运⾏时,Linux系统会到这些⽬录下进⾏搜索,所以当出现 -bash: ** : command not found可能因为是PATH没有设置。
PATH设置格式:
PATH = $PATH:<PATH1>:<PATH2>:<PATH3>:...:<PATH N>
1
可以将⾃⼰指定的路径加到PATH中(见上,若有多个变量路径则在中间⽤冒号":"隔开),例如:export PATH=/opt/STM/STLinux-
2.3/devkit/sh4/bin:$PATH,设置成功之后,使⽤echo查看是否配置成功:
跟女孩子聊什么[root@localhost u-boot-sh4]# echo $PATH
/opt/STM/STLinux-2.3/devkit/sh4/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 1
2
上述⽅法添加PATH 在终端关闭后会消失。建议通过 vi /etc/profile 修改PATH,也可修改主⽤户⽬录下的 .bashrc,这样可以永久⽣效。若使⽤前⼀种⽅法,则输⼊指令vi /etc/profile,然后在该⽂件最后添加:
export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
1
保存后,退出,再执⾏:介绍自己的话
[root@localhost etc]# source /etc/profile
倪萍和赵忠祥的丑闻1
不报错就成功。
当然,可能还有其它原因导致bash:command not found,这时候就需要在⽹上仔细,把导致该问题的前因后果都说清楚(配置了什么,删
掉了什么),相信问题最后⼀定能解决。\