起因
在 Linux 开发板上以 root 身份执行 poweroff
命令关机时,却提示找不到命令,如下:
必须使用 sudo poweroff
才能正常关机。
原因
在搜寻了大量资料后发现如下规则:
su
:切换到 root 用户,但不会切换用户环境变量su -
:切换到 root 用户,同时切换用户环境变量sudo xxx
:以 root 用户身份和环境变量执行xxx
命令
我是 以普通用户的身份登录 Linux 开发板,并通过 su
切换到 root 用户,虽然获取到了 root 的权限,但并没有切换到 root 的环境变量,所以找不到 poweroff
、fdisk
等在 root 环境变量下的命令;而使用 sudo
执行命令,会同时使用 root 用户的权限和环境变量,所以可以正常找到这些命令并执行。
解决方法
- 直接以 root 用户登录 Linux
- 切换 root 用户时使用
su -