linux系统中su 和 su - 的区别
1、linux系统中su 和 su - 都是用于登录用于切换的命令
su:切换用户,环境变量不变,路径不变
su - : 切换用户,环境变量随切换用户发生改变,回到家目录
测试 su 命令:
[root@linuxprobe test]# ls
[root@linuxprobe test]# whoami
root
[root@linuxprobe test]# pwd
/home/test
[root@linuxprobe test]# echo $PATH
/root/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxprobe test]# su linuxprobe ## 直接切换用户
[linuxprobe@linuxprobe test]$ whoami
linuxprobe
[linuxprobe@linuxprobe test]$ pwd ## 路径未改变
/home/test
[linuxprobe@linuxprobe test]$ echo $PATH ## PATH环境变量未改变
/root/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2、测试su - 命令
[linuxprobe@linuxprobe test]$ exit ## 返回root
exit
[root@linuxprobe test]# whoami
root
[root@linuxprobe test]# ls
[root@linuxprobe test]# pwd
/home/test
[root@linuxprobe test]# echo $PATH
/root/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxprobe test]# su - linuxprobe ## 使用 su - 切换
Last login: Wed Oct 21 15:28:46 CST 2020 on pts/0
[linuxprobe@linuxprobe ~]$ whoami
linuxprobe
[linuxprobe@linuxprobe ~]$ pwd ## 回到用户linxprobe家目录
/home/linuxprobe
[linuxprobe@linuxprobe ~]$ echo $PATH ## PATH环境变量改变
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/linuxprobe/.local/bin:/home/linuxprobe/bin
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律