当前位置: 首页 > 工具软件 > SU2 > 使用案例 >

Linux中的su 和su -

罗金林
2023-12-01

Linux中的su 和su -

前言背景:

笔者在在一次体验华为昇腾开发的过程了遇到了一个问题,就是一条atc的转换模型指令报出来错误:atc: invalid option -- '- '。最开始我还以为是不是因为英文指令中存在中文字符的问题导致linux环境中无法识别。后来参考一篇文章后终于破案了(atc: invalid option – ‘-‘_qq_49723795的博客-CSDN博客 )原来我没有正确的进入镜像里面的用户环境,导致当前的环境不能识别出atc指令。

笔者错误进入环境用的是su HwHiAiUser,而正确的写法应该是su - HwHiAiUser

su指令:

在linux中,su是“switch user”的缩写,是切换用户的意思,su命令用于变更为其他使用者的身份,语法为“su 选项 [USER [ARG]]”;使用该命令时,除 root 外,需要键入该使用者的密码。

语法:

[root@localhost ~]# su [选项] 用户名
选项 :用途:
-当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
-l同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。
-p表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。
-m和 -p 一样。
-c仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。

susu - 的区别:

所以su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。

 类似资料: