sudo su 进入之后所有的命令都是command not found
报错解释:
当你使用sudo su
命令切换到root用户后,遇到所有命令都显示command not found
,通常是因为环境变量PATH
没有正确设置。在root用户下,PATH
环境变量可能没有包含系统的标准路径,例如/usr/bin
、/usr/local/bin
等,这导致shell无法在这些目录中找到执行文件。
解决方法:
-
输入
echo $PATH
查看当前的PATH
环境变量设置。 -
如果
PATH
变量不包含标准路径,你可以手动修复。输入export PATH=$PATH:/usr/bin:/usr/local/bin
来临时修复PATH
变量。 -
为了避免每次开启新会话时都要重新设置
PATH
,可以将上述命令添加到你的shell配置文件中,例如~/.bashrc
或~/.bash_profile
(取决于使用的shell),然后保存退出。 -
为了使改动永久生效,需要对
/etc/environment
或者/etc/profile
(对所有用户生效)、~/.profile
或~/.bashrc
(对单个用户生效)进行编辑,在文件中添加export PATH=$PATH:/usr/bin:/usr/local/bin
。 -
编辑完成后,使用
source /path/to/config
(例如source ~/.bashrc
)来使改动立即生效,或者重新登录会话。
请根据实际使用的shell和需求选择合适的配置文件进行编辑。如果不确定使用哪个shell,可以通过echo $0
或echo $SHELL
命令来查看当前使用的shell