Linux 切换用户命令: su 和 su -

    在搭建oracle的Linux平台服务器时,在某一时刻切换到了root用户,看了下history当时用的是su - ,完成操作后切换回来用的是#su oracle 。此时在终端输入sqlplus时报错:sqlplus:command not found。查阅资料后才发现是su 和su - 命令的区别。

     在Linux的manpage中,su命令的描述是:

NAME
       su - run a shell with substitute user and group IDs


SYNOPSIS
       su [OPTION]... [-] [USER [ARG]...]

DESCRIPTION
       Change the effective user id and group id to that of USER.


       -, -l, --login
              make the shell a login shell
大概意思是:让shell终端重新登录

     shell重新登录会执行~/.bash_profile  ~/.bashrc 等文件来设置环境变量。

(linux启动时加载的配置文件详见:http://www.cnblogs.com/ifaithu/archive/2013/02/05/2893067.html

   此时会切换用户,并读取相应配置,完成当前用户的环境设置。

   而使用su仅仅只会变更用户,并不加载相应配置文件,只是单单的权限变更。所以前文中提到command not found错误会出现,是因为root用户并未含有功能。

   由此,解决了问题,也深入理解了命令的区别。

   

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值