Mackit New

Mackit — Cache cleaner for macOS developers: scans regenerable caches left by Xcode / Node / Flutter and more, risk-labeled, so you can reclaim disk space.

Learn more
Notice We stopped publishing new developer articles in June 2024. Thank you for visiting. Archived posts
知识

shell切换用户执行后面语句 su与su 的差别是什么

    系统运维

本文主要介绍“shell切换用户执行后面语句 su与su 的差别是什么”,在日常操作中,相信很多朋友在shell切换用户执行后面语句 su与su 的差别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell切换用户执行后面语句 su与su 的差别是什么”的疑惑有所帮助!下一步,请跟着小编一起来学习吧!

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的原因

到此,关于“shell切换用户执行后面语句 su与su 的差别是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注名翠软件,小编会继续努力为大家带来更多实用的文章!