服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - shell切换用户执行后面语句 su与su -的区别

shell切换用户执行后面语句 su与su -的区别

2019-12-01 16:56Linux教程网 Linux

关于su和su -的区别,切换用户是可以使用su tom或者su - tom来实现,但是两者有区别,su只是切换身份,但shell环境仍然是原用户的shell,su -是连用户的shell环境一起切换

shell里如果需要切换用户,然后以指定用户的身份运行一些命令,比如需要用Oracle用户向.bash_profile文件里写入一行“ORACLE_BASE=/oracle/app”的内容 
可以用下面的语句 
 

复制代码

代码如下:


su - oracle <<! 
echo "ORACLE_BASE=/oracle/app" >> .bash_profile 
exit 



关于su和su -的区别 

切换用户是可以使用su tom或者su - tom来实现,但是两者有区别 
su只是切换身份,但shell环境仍然是原用户的shell 
su -是连用户的shell环境一起切换 
切换了shell环境,PATH的环境变量才有效 

举例子: 

比如说 root用户在/root/目录下, su tom, 
切换到了tom 用户,但是目录仍然在/root/下。 
如果使用su - tom 
你可以发现目录也切换到tom用户的家目录下 
这也是造成一些命令报错:command not found的原因

延伸 · 阅读

精彩推荐