在Linux中不同的系统配置各异,即使同一种系统的不同版本也不完全一样。在日常操作中经常会遇到“无法找到命令”("command not found")。这样的问题。
根据Linux系统中,环境变量的概念,后来由看了/bin,/sbin等文件夹的内容,发现所有的Linux命令对应一个可执行程序,只是这些不同的程序根据不同的功能放在不同的文件夹里。用户输入命令,shell根据系统环境变量来搜索各个文件夹,如果找不到对应的可执行程序,就会显示“command not found”。
有时候,系统为了安全起见,会把一些重要的系统命令,比如增加用户useradd,放在环境变量所在的目录中,并且这个操作有权限限制。这样这个命令就无法正常执行。
解决办法为,直接找个这个命令所在的绝对路径,在启动这个操作。
1:首先,echo $PATH
这个操作会列出环境变量值:比如/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2:把这些路径加到要操作的命令上,比如普通的useradd 无法执行,在前面依次加上上述路径,如/usr/bin/useradd。这个操作没什么技术含量,要不断的实验。直到命令可以执行。
这样上述问题就可以解决了。