Linux 下 su 和 su - 的区别和实际中遇到的问题

从普通用户切换成root用户:

可以用su 或者 su -   :

su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell; 而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd 一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

从root用户切换成普通用户:

例如: 从root切换成 deploy用户

如果采用su deploy

如果采用 su - deploy

不带-的su不会读取目标用户的环境配置文件,带-的su才会读。

有“-”和无“-”各自的环境变量不同

时间: 2024-10-24 01:03:03

Linux 下 su 和 su - 的区别和实际中遇到的问题的相关文章

linux下用户切换su,右键菜单添加

su 和 su - 的区别: 前者只是换了身份,但SHELL环境仍然是原用户的SHELL; 而后者连用户和SHELL环境一起切换成新用户的了. 只有切换了SHELL环境才不会出现PATH环境变量错误. linux下添加右键菜单: 1.用whereis命令查看你要添加的软件在哪里,比如说我想添加一个 终端 到右键中. whereis gnome-terminal 从返回的显示你知道是在 /usr/bin/gnome-terminal 2. 把 gnome-terminal 拷贝到 ~/.gnome

Windows下与Linux下编写socket程序的区别 《转载》

原文网址:http://blog.chinaunix.net/uid-2270658-id-308160.html [[Windows]] [Windows: 头文件的区别] #include<winsock.h>#include<winsock2.h> [Windows: 初始化的区别] WSADATA wsaData;WSAStartup(0x202,&wsaData); [Windows: 声明Socket] SOCKET类型 [Windows: Socket关闭]c

Linux下tmpfs与ramfs的区别

ramfs是Linux下一种基于RAM做存储的文件系统.在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率.由于ramfs的实现就相当于把RAM作为最后一层的存储,所以在ramfs中不会使用swap.你什么时候听过会把HDD上的文件swap到哪里去吗?平常说的swap都是针对内存来说的,而ramfs底层的存储是RAM,虽然不是HDD,但是在Linux看来它就跟HDD一样.但是ramfs有一个很大的缺陷就

docker在windows下和linux下网络底层的一些区别

windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows -> linux系统的docker(hyper-v中) -> docker内的容器(应用) 其中docker desktop会默认创建一个网络DockerNAT,windows宿主分配IP:10.0.75.1 linux虚拟机会分配IP:10.0.75.2,并且还另外会分配内部网段IP:172.17

Linux下配login.sql,并在.bash_profile中配置SQLPATH

在linux下的目录/u01/oracle/sqlplus/admin下编写了一个login.sql,代码如下 ---login.sql-- define _editor=vim set serveroutput on size 1000000 set trimspool on set long 5000 set linesize 100 set pagesize 9999 column plan_plus_exp format a80 column global_name new_value

Linux下执行的java命令重定向到文件中的方法

在Linux下通常会执行如:java -version 的命令, 但是,命令只是打印到了屏幕上不能重定向到文件中或标准输出流中. 此时需要将错误输出流重定向到标准输出流中就可以得到了. 比如:java -version> test.log 2>&1 就可以将输出的信息重定向到test.log中,注意>与-version之间不能有空格. 再比如:java -version 2>&1 | grep "java version" | awk '{pri

linux下 bin和sbin的区别

/bin里面一般是普通可执行程序,而/sbin里多为系统管理程序和服务程序 s应该是system这个单词 Linux系统各个目录的一般作用 记录一:Linux各个目录其实就是文件, 以下是根目录低下的个个目录的作用总结: 1. 根文件系统(/ ) 根文件系统中包含了几乎所有的文件目录.相当于中央系统.进入的最简单方法是:cd /   2. /usr文件系统 /usr文件系统中包含了命令库文件和在通常操作中不会修改的文件.安装程序默认就是安装在此文件内部某个子文件夹内.输入命令后系统默认执行/us

Linux下进程与线程的区别及查询方法

在平时工作中,经常会听到应用程序的进程和线程的概念,那么它们两个之间究竟有什么关系或不同呢?一.深入理解进程和线程的区别 1)两者概念 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是指进程内的一个执行单元,也是进程内的可调度实体. 线程是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位线程自己基本上不拥有系统资源,只拥有一点 在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线

linux下Clang和gcc的区别

Clang 比 GCC 编译器的优势: 编译速度更快 编译产出更小 出错提示更友 好,比如 clang 在编译过程可以直接指出相对简单的出错位置以及它 “ 认为 ” 正确的方式 . 内置有静态分析工具,可以对代码进行静态分析 (clang—analyze) .这也是 gcc 做不到的 . 专注,因为 clang 只需要完成词法和语法分析,代码优化和机器代码的生成工作由 llvm 完成.所以和全部由自己包下的 gcc 比起来, clang 可以更专注地做好一件事.这种结构也使 clang 可以被单

Linux下xz与tar的区别

同一文件,tar.xz格式比tar.gz格式小了三分之一! 说明: xz是一个使用LZMA压缩算法的无损数据压缩文件格式. 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案文件. 相反,xz通常作为一种归档文件自身的压缩格式,例如使用tar或cpioUnix程序创建的归档. xz在GNU coreutils(版本7.1或更新) 中被使用. xz作为压缩软件包被收录在Fedora(自Fedora 12起),Arch Linux,FreeBSD, Sl