一,首先,help下su,sudo su,sudo,仔细理解下其中的帮助说明。
二,其次,理解"login shell" and "interactive shell".
"When Bash starts executes the commands in a variety of different scripts.
(1) When started as an interactive login shell: Bash reads and executes the /etc/profile (if it exists). After reading that file, it looks for
~/.bash_profile, ~/.bash_login, and ~/.profile in that order, and reads and executes the first one (that exists and is readable). When a login shell
exits: Bash reads and executes ~/.bash_logout (if it exists)。
(2) When started as an interactive shell (but not a login shell): Bash reads and executes ~/.bashrc (if it exists)."
显然login shell和interactive shell在环境的设置上是存在差别的,详细可以参考:
http://groups.google.com/group/linux.debian.user/browse_thread/thread/2b71ecfc45789958/7bff24e3bae74b36?lnk=raot
三,再来说下su命令,参数横杠-, 是为了让切换获取的shell是一个login shell
-, -l, --login make the shell a login shell
有了以上的介绍,对于su命令中横杠的作用,大家理解了吧。