su 与 su - 区别
su
与su -
都是用来切换用户的命令,简单说它们之间的区别就是:su -
切换的干净彻底,而su
切换用户却拖泥带水。
su
su username
,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。
su -
su - username
,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~
,环境变量
即刻切换到指定目录的环境变量。
测试环境
测试环境是CentOS6.9_64位,系统中有两个用户oldboy和root
oldboy的环境变量和家目录如下
[oldboy@as4k ~]$ echo ~
/home/oldboy
[oldboy@as4k ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@as4k ~]$
root用户的环境变量和家目录如下
[root@as4k ~]# echo ~
/root
[root@as4k ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@as4k ~]#
测试效果
root -> oldboy (su -)
[root@as4k ~]# pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@as4k ~]# su - oldboy
[oldboy@as4k ~]$ pwd && echo $PATH
/home/oldboy
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
oldboy -> root (su -)
[oldboy@as4k ~]$ pwd && echo $PATH
/home/oldboy
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@as4k ~]$ su - root
Password:
[root@as4k ~]# pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
root -> oldboy (su)
[root@as4k ~]# pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@as4k ~]# su oldboy
[oldboy@as4k /root]$ pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
oldboy -> root (su)
[oldboy@as4k ~]$ pwd && echo $PATH
/home/oldboy
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@as4k ~]$ su root
Password:
[root@as4k /home/oldboy]# pwd && echo $PATH
/home/oldboy
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
结论
切换用户尽量使用su -
,干净彻底,符合人类认知。
问题: 一不小心使用su切换了用户,傻傻分不清自己到底用的是哪个环境,怎么办?
解决: 使用su - username
再切换一次,即使自己已经是oldboy用户,还是可以su - oldboy
再切换一次,以达到更改操作环境的目的。
[oldboy@as4k ~]$ pwd && echo $PATH
/home/oldboy
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@as4k ~]$ su root
Password:
[root@as4k /home/oldboy]# pwd && echo $PATH
/home/oldboy # what ? 我的环境乱了
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[root@as4k /home/oldboy]# su - root
[root@as4k ~]# pwd && echo $PATH
/root # ok 回到了熟悉的环境
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
转载于:https://www.cnblogs.com/asheng2016/p/9350800.html
su 与 su - 区别相关推荐
- Linux下su与su -命令的区别
Linux下su与su -命令的区别 在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令: 使用 su - 后,就可以使用service命 ...
- Linux下 su命令与su - 命令的区别
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell:而后者连用户和Shell环境一起切换成root身份了.只有切换了Shell环境才不会出 ...
- su 和su -的区别
最近在培训linux,讲师让探究下su 和su -的区别,于是就有了本文. 本文的内容取材于互联网,经由本人理解,从新整理而成. su 后面不加用户是默认切到 root su 是不改变当前变量 s ...
- linux下su和su - 的区别
linux使用中常会使用su来切换用户 使用su切换为tom用户 [root@bogon ~]# su tom [tom@bogon root]$ [tom@bogon root]$ pwd /roo ...
- Linux中su 和 su -的区别
Linux中切换用户的命令是su或su -.su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell:而后者连用户和Shell环境一起切换成ro ...
- 由su和su -的区别谈学习linux运维方法
由su和su -的区别谈学习linux运维方法一例 老男孩Linux培训新班刚开始,老男孩发现群里就在讨论这个su和su -的区别,有的同学们说,直接su就可以,有的说必须要su -.有的同学直接发问 ...
- Linux 中su 与su - 的区别
Linux 中su 与su - 的区别 一.区别 Linux 中切换用户的命令是 su 或 su - . su命令和 su - 命令最大的本质区别就是: 前者只切换了root身份 , 但是shell环 ...
- 深入理解 sudo 与 su 之间的区别
深入理解 sudo 与 su 之间的区别 作者: Himanshu Arora 译者: LCTT zhb127 在早前的一篇文章中,我们深入讨论了 sudo 命令的相关内容.同时,在该文章的末尾有提到 ...
- Linux中关于 su 和 su - 的区别
Linux中关于 su 和 su - 的区别 一.切换用户 二.su和su - 1.su 用户名 (不加参数-) 2.su - 用户名 2.我们用man手册查看一下su的详细说明 一.切换用户 我们在 ...
- 解析su,su -,sudo的区别
2019独角兽企业重金招聘Python工程师标准>>> 本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认 ...
最新文章
- python3实现汉字转拼音
- matlab内存不足问题
- net程序员的iPhone开发-MonoTouch
- php微信模板信息发送的代码例子,微信模板消息发送样例
- 树莓派lnmp安装mysql_在树莓派上安装 LNMP
- 安装虚拟环境virtualenv 适用于windows操作系统
- 模电Aus,Uo/Us,童诗白例2.3.3。
- oracle中的dbf是什么文件,ORACLE数据库 DBF数据恢复-dbf是什么文件
- 登上大别山主景区天堂寨
- 使用h5制作一个五子棋游戏
- 七进制转十进制java_java基础——Java进制转换
- 题注自动带章节编号 and怎样删除Word题注标签和编号间的空格?
- 手机网页视频背景自动播放记录
- redis的lru原理_Redis的LRU算法
- 【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析
- R语言绘图——实用篇 ggplot2绘图
- 章鱼网络进展月报 | 2022.8.1-8.31
- opencv标定实现总结(圆点,棋盘格和非对称圆点)
- 基于项目协同过滤的电子商务推荐系统
- 在uni-app中使用彩色的iconfont