我知道sudo
不会以当前用户身份运行命令,但我不明白为什么以下两个命令会产生不同的输出:
情况1:
user@.../folder$ sudo python
Python 2.7.17 (default, Nov 7 2019, 10:07:09)
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
案例 2:
user@.../folder$ sudo su
(base) root@.../folder# python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
答案1
您的普通用户与 root 用户拥有不同的 shell 环境。您的第一个命令:
sudo python
是您的常规环境。
user@.../folder$ sudo su
(base) root@.../folder# python
是您的 root 用户环境。尝试在两个环境中执行该命令env
,您应该会看到很多差异。不同的 Python 版本可能是由于 $PATH 变量的差异造成的。您可以查看您正在使用的 Python 版本type -a python