由su和su -的区别谈学习linux运维方法一例

老男孩Linux培训新班刚开始,老男孩发现群里就在讨论这个su和su -的区别,有的同学们说,直接su就可以,有的说必须要su -。有的同学直接发问,到底su和su -有什么区别?

1授之以“鱼”的答案
6.6.1.3 su命令实例
当不加任何参数执行su命令时,表示要切换到root用户,但这样执行,会遇到一些问题。因为虽然是切换到root用户了,但并没有改变为root用户登录环境,用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,shell类型等。比较规范的操作方法是”su -“。见下面的实例。

实例1:由普通用户oldboy切换到root用户

[oldboy@oldboy ~]$ whoami #→确认当前用户为oldboy

oldboy

[oldboy@oldboy ~]$ su #→不加用户就表示切到root用户。当然也可以使用su root。

Password: #→这里当然就是root用户的密码了。

[root@oldboy oldboy]# env

HOSTNAME=oldboy

USER=oldboy

MAIL=/var/spool/mail/oldboy

PWD=/home/oldboy

HOME=/root

LOGNAME=oldboy

...省略部分无关内容...

#→细心的读者应该已经看到了,如果使用su而不加上“-”这个参数,那么,切换前的用户的相关信息还会存在,这会引起很多麻烦,甚至会出现意想不到的结果。因此,切换用户时,最好是 “su - 用户名”。这是生产场景中标准的切换用户的操作方法。

[root@oldboy oldboy]# exit #→退出当前用户,这个命令也可以用ctrl+d快捷键命令替代。

[oldboy@oldboy ~]$ su - #→带上“-”参数做切换,也可用su - root命令。这是生产场景中的标准操作方法。

Password:

[root@oldboy ~]# env|egrep "USER|MAIL|PWD|LOGNAME" #→切换后的环境变量信息结果。使用egrep过滤包含想查看的字符串的行。

USER=root

MAIL=/var/spool/mail/root

PWD=/root

LOGNAME=root

#→这次和上次就不同了,所有的环境变量信息都切换到了root下。因此,请大家在切换用户时一定要加上“su - 用户名”,这里提醒下,不光是切到root呦,切换到其他用户也是一样,呵呵。

su命令总结:

1)普通用户切换到root用户,可使用su -或su - root。必须输入root密码才能完成切换。

2)root用户切换到普通用户,可使用“su - 普通用户名”的写法。不需要输入任何密码就能完成切换。切换到普通用户后,在执行一些命令如ifconfig时,可能会遭遇到环境变量PATH路径问题而找不到某些系统命令(一般是/sbin,/usr/sbin等下面的命令),这时就需要将普通用户的PATH,配置成root的PATH内容,前面的文章已讲解过这个配置方法,不清楚的读者,可以翻阅下。

3)如果仅希望在某用户下执行命令,而不直接切换到该用户下操作,可以使用 su - 用户名 -c "命令"的方式。

上文摘录于老男孩Linux培训讲课与出书教案笔记部分。

老男孩评论:虽然这样给同学们讲解不错,但这依然是授之以鱼的讲解方式,学生必须要意识到自己如何能获取到这样的知识,而不是轻易去问老师获得,只有学会了学习方法与自学能力才是学习Linux运维比较高的境界,也是未来发展之道。

2授之以“渔”的答案
1)可以去搜索引擎搜索,然后根据说的去实践下,最后别忘了总结。

这个算是“渔”,但还不彻底,即不是学习Linux运维的优秀思想,但是很多初学者默认就会这样(但搜索的技能缺乏很多),所以,这条路也算可以吧,但最好还是下面的思想。

2)要了解su和su -的区别,其实就是要知道su -的作用就可以了,su -这样的命令显然,-是su的参数,因此,完全可以man su或者su --help获取到你想要的答案,然后,在辅助上面教案的提示去实践敲一下体会下(别忘了总结好笔记)。

man su或者su --help的如下:

su 参数选项

注释说明(带※的表示重要,需要掌握)

-, -l, --login

make the shell a login shell

#→※使一个shell成为登陆的shell,如执行su - oldboy 时,表示该用户想改变身份为 oldboy,并且使用oldboy用户的环境变量配置,如:/home/oldboy/.bash_profile等。

[oldboy@student ~]$ su --help

Usage: su [OPTION]... [-] [USER [ARG]...]

Change the effective user id and group id to that of USER.

-, -l, --login make the shell a login shell

…省略部分…

[oldboy@student ~]$ man su

NAME

   su - run a shell with substitute user and group IDs

SYNOPSIS

   su [OPTION]... [-] [USER [ARG]...]

DESCRIPTION

   Change the effective user id and group id to that of USER.-, -l, --loginmake the shell a login shell

…省略部分…

实践的过程非常重要,见上文。

拓展:在举个例子就是老男孩曾经发布在博客的考试题

1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r-- 为644,要求使用命令取得644这样的数字。
解答如下:
http://oldboy.blog.51cto.com/2561410/791638

这道题就是一个很好的培养学习思维和自学能力的例子。其中的当命令结果包含我们需要的内容的时候,我们要想到此命令是否有具体的参数能够一步达到我们需要的结果。
重视学习方法的学习,才是学好Linux运维之道,这也是老男孩写博客时很少发表一些服务的部署过程给大家或者具体的业务脚本,因为,老男孩觉得这些都是授之以“鱼”的方法,应尽可能避免或者一定要多种方法结合,完全授之以“鱼”作用比较小。所以,“渔”的过程基本是在老男孩给学生留的课后作业部分完成的,老男孩讲“渔”,同学们给老师“鱼”。

补充一个老男孩课后要求大家上交捕的“鱼”:

提示:既然同学们学会捕鱼的技巧了,就要让老男孩看到鱼:下面是要求大家上交的捕的鱼:
老男孩培训第15次讲课课后shell作业:

(面授班按个人分配的总结,网络班全部都编写)

请全体同学务必完成,捕鱼的技巧不是老男孩讲了你们就会的,必须要多次的实践才能掌握,同学们加油,有不会的问题课后群内讨论或者找导师咨询。

1)lnmp一键安装脚本<==zhengdong
要求:linux centos5.8,nginx1.3.4,mysql5.5.27,php5.3.17

2)linux系统一键优化脚本<==chenya

3)lamp一键安装脚本<==zhangji

4)rsync,sersync,inotify一键安装及配置脚本<==sanyapen

5)mysql多实例安装及备份脚本<==zhangxian

6)apache,nginx,mysql,rsync的服务检测监控脚本<==yanggongwan

7)mysql主从同步一键实现脚本<==fengyiwe

8)lamp一键安装脚本<==lifen

转载于:https://blog.51cto.com/tanlinhyhy/2143917

由su和su -的区别谈学习linux运维方法相关推荐

  1. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》

    本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者. <跟 ...

  2. linux运维需要掌握的,学习Linux运维需要掌握哪些技能?Linux运维

    如何学习Linux技术?每年都有许多人转行进入it互联网行业,为了高薪也好,为了理想也罢,学习it技术的人们越来越多.Linux运维学习是目前大众热衷于选择学习的方向之一.那么学习Linux技术能获的 ...

  3. 用虚拟机学linux,虚拟机上学习Linux运维?学linux有什么用

    一些不熟悉Linux运维的朋友认为,只有把他们的计算机安装成Linux系统或真正的服务器设备,他们才能开始学习Linux. 但事实上,Linux操作和维护技术可以通过使用虚拟机来学习. 使用虚拟机软件 ...

  4. 0基础学习Linux运维的必经之路

    最近看到了一篇新闻,linux之父建议找一份基于linux和开源环境的工作,确实,这已经是未来的大趋势了. 今天就来聊一聊我的想法,本人8年linux运维一线经验,呆过很多互联网公司,从一线运维做到运 ...

  5. 怎样学习Linux运维云计算,linux运维云计算课程学习,Linux云计算面试时遇到的问题...

    原标题:linux运维云计算课程学习,Linux云计算面试时遇到的问题 Linux命令行,以及用户使用Linux命令进行Linux shell交互,是Linux最吸引人的地方,也是面试中最普遍的话题之 ...

  6. linux运维现在怎么样,浅谈现下Linux运维人员面临的问题

    随着时代的进步,技术的飞速发展,IT领域对用人的要求也逐步提高,为了更佳的适应自己的市场环境,小伙伴们不断地走在学习的路上,给自己充电为自己增值.时代在进步,大家在进步,若是停留,你就已经退步了.那对 ...

  7. 跟老男孩儿学习LINUX运维

    学习LINUX计划书 我叫李想,2016年2月21日在老男孩儿教育机构跟老男孩上了第一堂课(8:30-19:30).感触很深,老师教育有套路有方法.有激情有活力.有奖励有惩罚,做事细致,对学员认真负责 ...

  8. 学习Linux运维的个人笔记:特殊权限(十四)

    一.特殊权限SUID 前面我们已经学习过 r(读).w(写). x(执行)这三种普通权限,但是我们在査询系统文件权限时会发现出现了一些其他权限字母,比如: ll /usr/bin/passwd-rws ...

  9. 如何选择培训机构学习linux运维工程师

    01师资水平 作为教学第一线人员,一个培训机构的师资水平直接影响着其整体教学水平.作为一名优秀的培训机构讲师,不仅要有项目经验.更重要的是能把这些技术讲出来,让0基础的小白学得会,这就是考量这个老师的 ...

最新文章

  1. Nginx概述与安装
  2. ASP.NET Core EFCore 之Code First
  3. C#编码规范2[转]
  4. k近邻算法_k近邻算法
  5. 批量保存网页_一键下载网页所有图片,把美丽存下来
  6. 苹果应用商店反垄断案败诉,市值蒸发500多亿美元;脸书杠上了土耳其政府;Nutanix 扩展多云产品组合……...
  7. Identifying Antioxidant Proteins by Using Optimal Dipeptide Compositions论文笔记
  8. android系统与苹果手机号码,苹果手机号码怎么导入到手机 苹果手机号码导入到手机的方法步骤【图文教程】...
  9. 数据中台在企业数字化转型中的践行(上篇)
  10. 怎么上传云班课的计算机作业,云班课怎么交作业_云班课作业提交教程_3DM手游...
  11. 多张图片如何合并成一个pdf
  12. vue2 ElementUI 表单标签、表格表头添加问号图标提示
  13. linux 命令 置顶,[置顶] Linux命令惯用法
  14. MySql项目查询优化经验总结
  15. python手持弹幕LED滚动字幕
  16. Python相关的文件扩展名
  17. 使用Qt二次开发周立功CAN(一)
  18. 天玑9000和骁龙8gen1哪个好 天玑9000和骁龙8gen1参数对比
  19. 【参赛作品42】openGauss/MogDB数据库完美适配Grafana及Prometheus
  20. 常用金属材料基本知识

热门文章

  1. Java-COW在Java中的应用
  2. Oracle-AWR性能报告解读
  3. 计算机里面如何更改处理器,电脑处理器如何更换 电脑处理器更换方法介绍【详解】...
  4. in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...
  5. 【Linux】【服务器】 CentOS7下卸载MySQL详细过程步骤
  6. mysql 插入数据后返回该条数据id
  7. r语言中矩阵QR分解_R语言常用的矩阵操作
  8. 代码高亮_微信公众号代码高亮美化工具 Markdown Nice
  9. netstat和lsof端口结果不一致
  10. linux让数值依次递增的快捷键,如何将文件名批量修改成上一级文件夹的名字。如:A(文件夹名)-01这样依次递增?...