Mackit 신제품

Mackit — macOS 개발자 캐시 클리너:Xcode / Node / Flutter 등이 남긴 재생성 가능한 캐시를 스캔하고 항목별 위험을 표시해 디스크 공간을 되찾으세요

자세히 보기
안내 2024년 6월부터 개발자 게시판의 새 글 업데이트를 중단했습니다. 방문해 주셔서 감사합니다. 아카이브 글
知识

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 的差别是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注名翠软件,小编会继续努力为大家带来更多实用的文章!