在 Linux 中,了解如何切换用户和设置环境变量是非常重要的。本文将介绍 su
命令以及 /etc/profile
文件的作用。
首先,让我们来了解 /etc/profile
文件。它是 Linux 系统中的一个全局配置脚本,主要用于设置所有用户的全局环境变量。这包括如何修改 $PATH
环境变量,定义全局环境变量(例如 JAVA_HOME
、PYTHONPATH
等),设置全局 shell 选项,以及初始化工具。需要注意的是,修改 /etc/profile
需要 root 权限,并且修改后的设置在下次登录时才会生效。如果需要立即生效,可以使用 source /etc/profile
命令。
然后是 su
命令,它用于在当前会话中切换到不同的用户。su
命令有几种不同的使用方式,其中一些包括:
su
或su username
:这将启动一个非登录 shell,系统将不会读取/etc/profile
或目标用户的~/.bash_profile
,~/.bash_login
或~/.profile
文件。su -
或su -l
或su --login
或su - username
:这将启动一个登录 shell,系统将会读取并执行/etc/profile
和目标用户的~/.bash_profile
,~/.bash_login
或~/.profile
文件。因此,如果目标用户的这些文件中定义了与/etc/profile
中相同的环境变量,那么/etc/profile
中的全局变量设置将会被覆盖。su -p
或su --preserve-environment
:这将以目标用户的身份启动一个非登录 shell,但保留原始用户的环境变量。这意味着环境变量不会被重置为目标用户的环境,而是保持原样。
总的来说,su
命令和 /etc/profile
文件是 Linux 中的两个非常重要的工具,它们可以帮助你管理用户和环境变量。理解它们的工作方式可以帮助你更有效地在 Linux 环境中工作。