linux 系统命令突然不能直接执行了是咋回事 #⼀sbin⼀shutdown -h now

2025-04-07 00:32:27
推荐回答(1个)
回答1:

  在Linux中使用shell命令,不管是root用户还是普通用户,很多命令(如 ,fdisk ; ifconfig)等都会无效,系统出现:"bash: .. command not found"。这些命令都有一个共同的特点:存在于 /sbin 这个目录下。这时尝试这样做[linux@axws ~]$/sbin/ifconfig 我们发现命令能够正常执行,这说明不是安全限制,很可能是PATH出了问题。原因是/sbin的目录路径(系统用户目录)不在root的$PATH变量中造成的。
  关键:PATH路径设置问题。
  首先切换到root,再试用一下命令,能用的话跳过下面这步直接修改用户目录下的这个文件就可以了。若还是不能用首先修改管理员的PATH,方法:
  (1)进入到用户主目录:cd ~ ;
  (2)编辑这个隐藏文件:vi .bash_profile
  # .bash_profile
  # Get the aliases and functions
  if [ -f ~/.bashrc ]; then
  . ~/.bashrc
  fi
  # User specific environment and startup programs
  PATH=$PATH:$HOME/bin
  export PATH
  unset USERNAME
  修改其中PATH=$PATH:$HOME/bin其后添加“:/sbin”冒号不算。
  (3):wq保存退出;
  (4)重启系统或执行source .bash_profile重置命令路径。
  接着执行/sbin下命令,应该可以了,exit退出管理员身份,再执行/sbin下命令,发现还是不能用,好,此时可以先用echo $PATH查看所在路径,若没有/sbin则修改用户主目录下的这个文件:
  (1)cd ~;
  (2)vi .bash_profile按照上面的做同样的改动,保存退出:wq;
  (3)重启系统或执行source .bash_profile。
  然后就可以了。如果还不行,把这行export PATH=/sbin:$PATH 加入到.bash_profile文件的最后就好。
  /sbin下的命令是给root使用的,对普通用户一般没什么用处,如果root用户也用不了那就是路径设置问题。