sudo -i
和 sudo su
都用于以超级用户(root)的身份运行命令,但两者有以下区别:
-
参数:
sudo -i
中的-i
表示以交互式方式登录为超级用户,会执行超级用户的登录脚本(例如.bashrc
),创建一个新的登录会话。而sudo su
不需要参数,它会使用超级用户的默认shell来创建一个新的 shell 会话。 -
环境变量:
sudo -i
会将环境变量设置为超级用户的环境变量,而sudo su
仅仅是切换到超级用户的身份,保持原来用户的环境变量。 -
历史记录:
sudo -i
会保存命令历史记录到超级用户的家目录下的.bash_history
文件中,而sudo su
不会保存命令历史记录。
总结:如果你需要完全切换到超级用户的身份并且需要超级用户的环境变量和命令历史记录,使用 sudo -i
;如果你只需要暂时以超级用户的身份运行某个命令,并且保持当前用户的环境变量,可以使用 sudo su
。