su 指令与su-指令
Xshell或者其他Linux终端中,su root
和 su - root
都是用来切换到root用户的身份,但它们之间存在一些关键差异:
-
su root
:- 这个命令将你切换到root用户,但基本上保持了当前用户的环境变量。也就是说,虽然你具有了root权限,但诸如PATH环境变量等设置可能仍然是原用户的配置。这可能导致某些依赖特定环境设置的命令在执行时出现问题,尤其是那些需要root完整环境才能正确运行的系统管理命令。
-
su - root
:- 添加了短横线
-
后,这个命令不仅切换到root用户,还会加载一个全新的登录shell环境。这意味着它会使用root用户的默认配置文件(如.bashrc
,.profile
等),以及root用户的环境变量,比如PATH。这样你就获得了root用户的完整环境,对于执行系统管理任务通常更为可靠,因为所有环境设置都是为root用户定制的。此外,你的工作目录也会被改为root用户的家目录(通常是/root
)。
- 添加了短横线
总结来说,如果你需要执行一些依赖特定root环境的管理任务,推荐使用su - root
来确保你在一个干净且完整的root环境中操作。而如果只是临时需要root权限执行一两个命令,并不特别依赖root环境,可以使用su root
。