su教程中su与su-命令的环境变量到底有什么区别呢?
在Linux系统里,
susu--
命令plaintext复制
su- 命令用于切换用户,但不会改变当前的环境变量。当使用plaintext复制
su切换到其他用户时,新用户会继承当前用户的环境变量设置。plaintext复制su - 例如,当前用户的环境变量为plaintext复制
PATH,使用plaintext复制/usr/local/bin:/usr/bin:/bin切换到其他用户后,新用户的plaintext复制su依然是这个设置。plaintext复制PATH - 这就意味着新用户在执行命令时,会按照原用户的环境变量来查找可执行文件。
-
命令plaintext复制
su-- 命令不仅会切换用户,还会完全切换到新用户的环境。它会读取新用户的环境变量配置文件,如plaintext复制
su-、plaintext复制.bash_profile等。plaintext复制.bashrc - 假设新用户的环境变量配置为plaintext复制
PATH,使用plaintext复制/usr/sbin:/sbin:/usr/bin:/bin切换到该用户后,新用户的plaintext复制su-就会变成这个新的设置。plaintext复制PATH - 这样新用户在执行命令时,会依据自己的环境变量来查找可执行文件。
以下用表格来直观展示二者区别:
| 命令 | 环境变量变化 | 示例 |
|---|---|---|
plaintext 复制 su | 继承当前用户环境变量 | 当前用户 plaintext 复制 PATHplaintext 复制 /usr/local/bin:/usr/bin:/binplaintext 复制 PATH |
plaintext 复制 su- | 切换到新用户环境变量 | 新用户 plaintext 复制 PATHplaintext 复制 /usr/sbin:/sbin:/usr/bin:/binplaintext 复制 PATH |
综上所述,
susu-susu-
小卷毛奶爸