由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 --helpUsage: 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 suNAME   su - run a shell with substitute user and group IDsSYNOPSIS   su [OPTION]... [-] [USER [ARG]...]DESCRIPTION   Change the effective user id and group id to that of USER.   -, -l, --login          make 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

本文出自 “老男孩的linux博客” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/1053606

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索课后习题答案
, shell
, 命令
, 方法
, 切换
, root
, 用户
, su
普通变量区别
,以便于您获取更多的相关知识。

时间: 2024-09-18 08:57:05

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

优云CMDB专家实践谈:自动化运维的基石CMDB

CMDB是什么? 运维百花齐放繁荣景象的同时,也让碎片化问题产生:每个人都想整合运维平台,但是往往事与愿违. CMDB就像一个人的大脑核心,是一个信息协调库,其存储的资料是协调身体完成各种复杂运动的信息来源.  我心中的CMDB . 碎片整合 面向运维工具的碎片化场景,是盘活整个运维管理的数据核心 . 元数据库 提供运维活动的基础元数据,是唯一可信的运维配置数据服务 . 场景驱动 为运维联动提供数据驱动,可协调工具来完成各类自动化场景    ​自动扩容+自动监控 CMDB如何建设? 痛点现象与对

零基础 女孩子-女孩子零基础学习运维

问题描述 女孩子零基础学习运维 我是个女孩子 马上大学毕业面临就业 想去培训学点一技之长 还有三个月就去了 不想什么都不会得去学习 听说运维相比于嵌入式还是比较容易接受的 有木有大神可以给俺指点迷津 基于零基础学习运维 推荐个具体应该完成的科目表 学到什么程度 现在在啃鸟哥这本书 很厚 ...金币很少 望见谅 解决方案 没这样的说法,女生学习任何东西和男生没有什么分别,既不更难也不更简单.不过相对来说,女生就业面临的性别歧视是存在的,因此需要比男生更多的努力才行. 任何行当都和你付出的学习成本成

程序员谈学习:我为什么要学习Linux?

今天这篇博客不是写关于具体技术的,而是我对程序员怎样学习和提高自己能力的一些感悟.我是今年7月初毕业的,离开学校后就直接进入之前实习的公司上班了.现在算来工作了也将近半年了,算上实习的时间,将近一年了.在这期间,参与了几个android项目的开发,也维护过别人写的项目,虽然都不是很大的项目,但也学习了不少东西.在这其间,我亲身经历了一个设计拙劣的项目,是怎么样一步步趋于混乱而最终变的完全不可维护.从这件事情我了解到优秀的程序员是多么可贵,而"不优秀"的程序员是怎样把项目一步步的搞砸搞烂

机器学习如何选择模型 &amp; 机器学习与数据挖掘区别 &amp; 深度学习科普

今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里.    更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html   另外关于机器学习与数据挖掘的区别, 参考这篇文章:https://www.zhihu.com/question/30557267 数据挖掘:也就是data mining,是一个很宽泛的概念.字面意思就是从成吨的数据里面挖掘有用的信息.这个工作BI(商业智能)可以做,数据分析可以做,甚至市场运

如何学习linux的建议

  一.从基础开始 常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的.例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题.而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础.这是相当困难的. 二.Linux命令是必须学习 虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力.Lin

《Puppet权威指南》——1.1 浅谈运维工程师

1.1 浅谈运维工程师 想必大家都看过<好的程序员是普通程序员效率的数十倍>这篇文章,这句话是比尔·盖茨说的,被很多文章引用和转载.笔者读后感同身受,觉得这篇文章讲的并不夸张.程序员如此,运维工程师也是如此,一个优秀运维工程师的效率确实是普通运维工程师的数十倍.本节笔者将带领大家了解一下优秀运维工程师和普通运维工程师之间的不同之处.我们从运维工程师的定位和职责开始介绍,继而详细分析普通运维工程师和优秀运维工程师的差别,最后落脚到自动化运维工具.1.1.1 运维工程师定位和职责 要想了解普通运维

学习 Linux,101: 创建分区和文件系统

概述 在本文中,学习磁盘分区和 Linux 文件系统相关内容.学习: 创建分区 使用 mkfs 命令来设置 ext2.ext3.ext4.xfs.Reiser v3 和 vfat 文件系统 创建和管理交换空间 本文帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试 101 中主题 104 下的目标 104.1.该目标的权值为 2. 注意:本文包含适用于 LPI Exam 101: Objecti

linux发行版介绍及如何学习Linux

一. 选择适合自己的linux发行版 谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面我们就分类介绍. 1.1 初学者入门首选-redhat系列 在学习redhat系列

阿里毕玄:智能时代,运维工程师在谈什么?

目前业界真正的智能化运维的落地实践其实并不多,大多还是停留在自动化甚至人工化阶段,然而智能化运维是大势所趋.阿里又是如何应对呢?下面请看来自阿里巴巴研发效能团队负责人.阿里研究员毕玄的演讲<智能时代的新运维>. 阿里的运维体系承载着怎样的责任? 阿里的运维体系介绍 阿里的运维团队,主要覆盖五个层面. 一.资源的规划与支付是运维的基石 整个运维团队需要负责资源的规划.资源的交付. Quota管理:比如我们会跟业务团队做一些预算的管理,对于每个业务团队首先需要有预算.只要你有预算,运维团队一定会把