Linux下 su命令与su - 命令有什么区别?

请高手说的详细一点,先谢谢了。
su 也可以切换到其他用户..我就是那样写的 但是师傅说:‘错了。

Linux下 su命令与su - 命令的区别:

一、切换root身份不同

1、su命令:su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。

2、su - 命令:su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。

二、采用su deploy命令后,取目标用户不同

1、su命令:su不会读取目标用户的环境配置文件,如图。


2、su - 命令:su - 读取目标用户的环境配置文件,如图。


综上总结:有“-”和无“-”各自的环境变量不同。

三、service命令

1、su命令:使用 su root 切换到root用户后,不可以使用service命令;

2、su - 命令:使用 su - 后,就可以使用service命令了。

四、用echo $PATH命令后,环境量不同

1、su命令:环境量变为usr。

2、su - 命令:环境量变为oracle。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-10-25

Linux中切换用户的命令是su或su -。
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd
一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。

扩展资料:

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

常用操作:

    安装: dpkg -i package;

    卸载: dpkg -r package;

    卸载并删除配置文件: dpkg -P |--purge package;

    查看软件包安装内容 :dpkg -L package。

参考资料来源:百度百科-linux

本回答被网友采纳
第2个回答  推荐于2019-08-24

Linux下su与su -命令的区别

在启动服务器ntpd服务时遇到一个问题

使用 su root 切换到root用户后,不可以使用service命令;

使用 su - 后,就可以使用service命令了。

原因:

su命令和su -命令区别就是:

su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。

su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。

用echo $PATH命令看一下su和su - 后的环境变量已经变了。

以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

扩展资料

Linux 命令大全

1、文件管理    

cat    chattr    chgrp    chmod    

chown    cksum    cmp    diff    

diffstat    file    find    git    

gitview    indent    cut    ln    

less    locate    lsattr    mattrib    

mc    mdel    mdir    mktemp    

more    mmove    mread    mren    

mtools    mtoolstest    mv    od    

paste    patch    rcp    rm    

slocate    split    tee    tmpwatch    

touch    umask    which    cp    

whereis    mcopy    mshowfat    rhmask    

scp    awk    read         

参考资料

linux快捷键

本回答被网友采纳
第3个回答  2020-06-22

su与su -都是用来切换用户的命令,简单说它们之间的区别就是:su -切换的干净彻底,而su
切换用户却拖泥带水。

su

su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

su -

su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~,环境变量
即刻切换到指定目录的环境变量。

su命令功能说明:切换用户身份。
语  法:su [-flmp][--help][--version][-][-c <指令>][-s <shell>][用户帐号]
补充说明:su可让用户暂时变更登入的身份。变更时须输入所要变更的用户帐号与密码。
参  数:
-c<指令>或--command=<指令>  执行完指定的指令后,即恢复原来的身份。
-f或--fast  适用于csh与tsch,使shell不用去读取启动文件。
-.-l或--login  改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。
-m,-p或--preserve-environment  变更身份时,不要变更环境变量。
-s<shell>或--shell=<shell>  指定要执行的shell。
--help  显示帮助。
--version  显示版本信息。
[用户帐号]  指定要变更的用户。若不指定此参数,则预设变更为root。

示例: 

su-clsroot#变更帐号为root并在执行ls指令后退出变回原使用者。suroot-f#变更帐号为root并传入-f参数给新执行的shell。su-test#变更帐号为test并改变工作目录至test的家目录(homedir)。更详细的Linux命令介绍可以去《Linux命令大全》看一下,里面介绍的很全面,查询方式如下图:

































































































































第4个回答  推荐于2017-09-18
Linux中切换用户的命令是su或su -。
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd
一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo
$PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。
1.su的作用是变更为其它使用者的身份,需要键入该使用者的密码(超级用户除外)。

2.格式

su [选项]... [-] [USER [ARG]...]

3.主要参数

-f , --fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。

-l , --login:加了这个参数之后,就似乎是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。假如没有指定USER,缺省情况是root。

-m, -p ,--preserve-environment:执行su时不改变环境变数。

-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

USER:欲变更的使用者账号,ARG传入新的Shell参数。

Linux下 su命令与su - 命令有什么区别?
一、切换root身份不同 1、su命令:su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。2、su - 命令:su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工...

Linux下su命令与su-命令有什么区别?
- `su`命令不会读取目标用户的环境配置文件,因此可能会遇到环境变量不正确或命令找不到的问题。- `su -`命令则会读取目标用户的环境配置文件,确保环境变量和路径设置正确。4. 使用`service`命令的能力:- 当你使用`su root`切换到root用户时,通常无法直接使用`service`命令,因为它依赖于特定的环境...

Linux下 su命令与su - 命令的区别是什么
1、切换root身份不同su命令:su只是切换了root身份,但shell环境仍然是普通用户的shell;而su-连用户和shell环境一切切换成root身份了。只有切换了shell环境才不会出现PATH环境变量错误,报command not found的错误。su-命令:su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su-...

linux命令,su与su-的区别
su 与su - 切换用户最明显的区别就是su - 切换后就会回到用户的主目录,比如su - abc 然后pwd就会发现回到了\/home\/abc 环境变量也是一个区别。

Linux里面切换用户su和su -区别是什么?
su是不读取相应用户的login-shell的环境变量进行切换,su -是指读取相应用户的login-shell的环境变量并进行切换。Linux系统中,一些变量的值取决于用户,比如用~代表用户的主目录,不同用户的主目录的实际位置自然不同。如果是前者,切换用户后,那些变量没做出相应变化,输入cd命令会切换到原先用户的主目录...

Linux里面su 用户和su -用户的区别是什么?
su的话当前目录不变,su -的话,主目录换成root的 - 在最末尾,表示使用目标用户的环境变量,类似于退出登录换被 su 用户进行登录的效果。如果 su xxx 后面没有 - ,那么很多环境变量还是 su 之前的用户状态。

linux su和sudo命令的区别
su命令 su是最简单的身份切换,用su我们能够进行任何用户的切换,一般都是su - username,然后输入password就ok了,可是root用su切换到其他身份的时候是不需要输入password的。一般我们切换身份都是切换到root,然后进行一些仅仅只有root能干的事,比如改动配置文件,比如下载安装软件。这些都是仅仅是root才有...

在linux中su-和suroot和sudo有什么区别?
在Linux系统中,su、sudo和suroot这三个命令常被用于切换用户权限,但它们之间的功能和用法存在显著区别。理解这些差异对于安全管理和系统操作至关重要。首先,su命令用于从当前用户身份切换到另一个用户身份。当您输入su命令后,需要输入目标用户的密码。例如,使用sudo su命令将用户从普通用户身份切换到root...

linux中 su - 的含义,及其作用是什么?
su 命令 和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH 环境变量 错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,...

Linux su和sudo命令的区别,并获得root权限
su是切换用户,但是没有切换用户环境变量 su - 是切换用户,并且切换用户环境变量 sudo,是不切换用户,直接使用用户权限进行执行

相似回答