最近天天都在用su命令,却一直没去查它的具体用法,也没出过问题。今天用su切换到oracle用户下去执行一条命令,忽然出现一条提示,说是环境变量没有设置,百度了一下,才发现原来是命令用错了。su oracle与su - oracle差异仍是挺大的。 man su获得的帮助文档以下: -, -l, --login make the shell a login shell 也就是加上 -,-l或--login后,改变身份时,也同时变动工做目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变动PATH变量。 因而再用su - oracle登录进去,就一切正常了。 ********************************************************************************* 引用su的具体用法: 1.做用 su的做用是变动为其它使用者的身份,超级用户除外,须要键入该使用者的密码。 2.格式 su [选项]... [-] [USER [ARG]...] 3.主要参数 -f , --fast:没必要读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。 -l , --login:加了这个参数以后,就好像是从新登录为该使用者同样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,而且工做目录也会改变。若是没有指定USER,缺省状况是root。 -m, -p ,--preserve-environment:执行su时不改变环境变数。 -c command:变动帐号为USER的使用者,并执行指令(command)后再变回原来使用者。 USER:欲变动的使用者帐号,ARG传入新的Shell参数。