00:00
那咱们上午呢,讲了一些这个Linux的基本操作啊,提到了用户账户,那目前来讲呢,咱们系统中有两个账户,一个是root,一个是咱们在装系统时候指定的一个用户账户,那这两个账户我们平常做这个实验,一般都是以root身份登录啊,当然大家可能也发现。在乌邦兔里面,我们不能够直接拿root直接登录。有没有同学发现这一点的,就在乌邦兔里面,不论是1804版还是2004版里面,我们装好系统root,不让直接登录。啊,不像tos,好像我们直接拿root就可以直接登录啊,这个情况大家应该观察到了吧?哎,那这个为什么U不允许root登录呢?那就是为了安全。因为这个root账户啊,权限过大,它容易造成这个误破坏啊,所以在生产中基于安全考虑呢,通常都是拿普通用户登录,当然由于普通用户权限小,真的想管理了,那么我们还是要变成root用户的啊,当然我们在上课期间呢啊,为了提高学习效率啊,所以我们通常都是拿root账号来登录的啊,所以这一点呢,希望大家能明白啊,就是我们工作中不会说动不动就拿root来做什么事情,这个是很危险的,今天中午的时候,咱们39期的一个同学啊,他给我发消息了,他说老师你看看你这个千叮就是叫什么千叮咛万嘱咐啊,我我给你们发一个截屏啊,让你们看一下,你们看一给我的。
01:48
大伙儿可以欣赏一下啊,这个是咱们39期的同学,中午的时候呢,刚发的。哎,给你发的那个。
02:01
上课群里吧,大家看一下。啊,大家看见了吧,那有的时候呢,咱们上课强调的一些事情呢,在工作中确实有的时候不小心就犯了错啊,当然这个犯了错啊,轻的小问题,那大的呢,可能就是啊生产故障了啊,当然这个错误呢,我们啊初学有些同学可能还没有预习到这个位置,所以可能还看不懂,但是呢,这个就是因为他以入的身份去。执行这个程序,执行自己编的脚本,结果自己编的脚本还有重大的bug啊,造成了一个小小的生产啊事故啊,不过这个还好吧。啊,大家可以看到它用的命令并不是呃RM命令啊,这个RM命令呢,是删除对吧,所以这个造成的结果,还好他是用的MV,幸亏还能找回来啊这个同学呃是39期,还算是学的挺好的同学,结果还是不小心犯了这样的错误。
03:10
呃,能看懂这个界面的同学。有多少有多少同学看不懂吧,我看看大家是不是有,因为这个是需要大家有一定的这个基础啊,就是你们可能前面得有预习,如果没有预习可能看不明白。啊,看不的同学吧,就是我看看有哪些同学看不懂,我就了解了解看不懂的,看不懂的同学打个零,看不懂的我就看你有哪些看不懂啊,看懂的我就不说了啊看不懂的同学有多少。啊,我看看有多少同学是预习还没有到那个位置的。别添乱啊,这个我发现你们这个纯粹添乱啊,这个明明能看懂,你说这个,呃,连脸同学啊,你凑什么热闹啊,英辉同学,你们都是架构师级别的,你跑过来凑热闹啊,陶杰同学假装看不懂,是不是假装看不懂这个阿俊同学啊,是这个真的看不懂啊,啊这个看懂看不懂不重要啊,就是说呃,我们上课强调的一些东西呢,这个你们在生产中确实是有可能这个误操作的,这个是不可避免的啊,就像我的话,你别说我天天跟你们啊,这个也是叨叨啊,耳听面命的,不要犯这种第一错误,你别说我,我有的时候我还不小心,自己不小心做了一些这个误操作呢,这个都是很难说的啊,很难说的,所以这个权限的问题呢,大家千万要小心啊,千万小心,尤其到了生产环境啊,你们敲命令的时候,每敲一个回车,自己的脑子里头先转上几圈,你是不是要确定做这件?
04:47
事啊,咱们为什么说要求大家把这个键盘啊命令要背的很熟,然后这个这个盲打要练的很熟啊,你别说盲打的不会光闷头看键盘,看键盘敲完了,然后屏幕上打的什么东西你也不看,然后。
05:06
盲头敲,然后啪一敲回车,结果屏幕上显示的命令根本就不是你想的那个命令,敲错了是不是就惨了?所以这个大家有些有些不是搞计算机的同学,或许还真的是不会盲打啊,这个下来抽空练一练啊,咱们往届班的同学,呃,也有那个基础真是比较弱的,有的是京东的啊,大家知道京东是吧?诶注意京东公司出来的同学,他的基础有多弱的?哎,有人说京东出来的还能弱吗?啊,他是京东送快递的知道吗?他是京东送快递的,然后跑过来学运维,你说他啥有啥基础,他没基础啊,所以他盲打都不会,那二指禅敲键盘都是二指禅,哎,所以来了以后,他每每天早上花上半个小时的时间,找一个那个练敲打字的软件来练一练,到最后毕业我看还学的不错,所以这个东西需要下工夫啊,因为咱们有些同学的基础确实,呃,前期没有基础,那后期你就加把劲儿了。
06:07
啊,那上午呢,我们讲了一下账号的这两个注用户啊,一个是root,一个是普通用户,需要大家注意这个权限问题,另外呢,我们上午还提到了share类型啊,在系统中咱们通常目前用的share都是半share,但是我们上午也提到过,在一些后期的小型环境中,可能他连但是都没有装啊,那咱们就只能用一个SH这种share了啊,不管是哪种share吧,它都能够把我们。输入的指令,输入的一些英文单词给你解释进行执行啊,这一点他们都是能做到的,只不过就是它支持的这个命令有些是不太一样的。好,那接下来我们继续来看一下这个share的之后的内容。那在上午呢,我们通过这个命令可以来确定share,可以查看你当前使用的类型啊,当然大家如果仔细的话,你也能发现好像和上午我敲的命令略微不同,有没有眼神好的同学,这个命令和我上午敲的命令有差在哪了?
07:12
有没有同学观察到我上午敲的好像不是这个是吧,是不是差点意思,哎,对,就是这个画括号,哎,我看同学们这个学习还是非常认真的啊,这个大多了个画括号,这个地方的画括号可加可不加都行啊,当然加上画括号是比较稳妥的做法,当然我现在说大家可能现在还很不好理解,这个没关系,当我们学到后面的时候,我们会解释这个画画号的作用,听懂吧,这个画号呢,在这儿,实际上在这个例子里面加也行,不加也可以,嗯。好,那接着来我们来说说主机名,那么我们装好系统以后呢,呃,大家应该可能像我这样都有自己的主机名,这个主机名呢,它会默认在这个提示符的这个位置能显示,不过呢,它显示的名字并不全啊,它是一个部分名称,那全名我们可以通过这个命令来观察到,叫host nameme,这个命令可以显示你当前目前正在使用的主机名,我们可以看到这是我的主机名,那主机名呢,我们看到它是由呃,前面一个名称后面加点隔成了好几段这样的分段的这样的一个命名,这个命名方式呢,跟我们网络上上网访问网站很像啊,比方说我们去访问什么淘宝京东之类的,对吧?诶,那么大家都知道访问的时候是不是也是用点这样隔开的,诶,那事实上呢,咱们在Linux里,我们的主机名确实就是和互联网上这种名称啊,是很类似的,就是用这种点隔开的,其中呢,后面这段。
08:46
就是最前面点第一个点前面的这个,这是它的这个主机名的简称,后面这个呢,是我们称为它的域名啊,是称为它的域名,是它的域名叫domain name啊,叫doin,嗯。
09:01
那么一般来讲呢,在生产中,咱们公司内部的域名都是统一的啊,比方说现在我就想把我这个公司的所在的主机这个加上公司内部的一个域名啊,有些公司呢,在企业内部所有的服务器,它都会添加关于这个公司内部用的专有域名啊,当然就像马哥教育,咱们马哥教育呢,对互联网上它有一个这样的网站,那这个就是它的域名,对吧?啊,这是它的域名,当然我们在局域网中也会用到自己的一个域名啊,一般来讲,公司内部的域名和互联网的域名可能并不完全一样啊,比方说如果我们马哥教育在公司内部,企业里面的服务器,我们可能会用这个域名,比方说叫叫叫,叫什么local。啊,叫local可能会起这样的名字,诶,啊,当然这个公司不一样,它带的后缀不一样啊,就是域名不一样,这个每家公司都有自己的规划啊,那么我这儿呢,为了也是和这个,呃,咱们企业内部的环境相匹配呢,我这样吧,我换一个叫org,换一个org啊,我加一个这样的后缀,这个就表示我们公司内部的,那这个是我们公司内部用的域名,那么这个内部的域名我们加上前面的名字,我想改它的名字,怎么改呢?在SS7往后的主机中呢,要改名非常简单,这一条命令就搞定了,这条命令就可以搞定,叫host name ctl set host name后面跟上新改的名字。
10:30
啊,这个命令呢,是七往后才支持S6,不支持S6呢,只能改文件啊,那这个命令改的时候,后面跟的这个名称,一般来讲各家公司都有统一的规范啊,比方说我这儿就有一个例子,那这就是一个例子,这个例子说的就是一个企业里面的服务器给他起了一个比较有代表性的主机名,那这个主机名我们看到这是不是有个域名对吧?哎,这个域名,比方说我把它换了吧,换成这个呃,Logo。
11:00
换成logo啊,那它和互联网的这个域名相区分好,然后呢,这个。前面这串我想大家应该能猜到是什么意思啊,有没有同学能猜到这个壁勾,你应该猜到什么意思吧?哎,这个就是说每一个主机它的名称是有特定含义的啊,并不是说随便胡写的啊,咱们上课的话,咱们简单一点诶在工作中每个主机的名称都有实际意义,哎,比方说北京对吧?诶大家还是很聪明的意识到了,当然这个就需要您在北京比较熟悉了,这个知道哪儿吗?有没有同学熟悉北京的同学,诶,有没有从大北京跑到郑州上课的同学,诶这个这个有没有,有没有从从这个这个从有打个一,有同学没有从北京跑过去的,去郑州上上课的同学有吗?有北京去的吗?班里头有没有有啊哦哦,那还真是好,那你们还真是啊,辛苦了啊,从北京跑到郑州去,原来原来就是在北京开课的,不过正好诶也是算是顺便去去去郑州也是短期短期旅游一下是吧?诶有空的话,中间学习累了,哪一天可以去少林寺转一转是吧,洛阳开封这地方都是中国的这个有历史的地方啊,实际上大家都知道这个郑州河南大省是咱们啊,可以说是呃旅游胜地啊啊中间有很多很多有历史的城市,那这个就是亦庄,就是北京市呢,它有一个,呃,南边的一个这个亦庄开发区,这个亦庄开发区有很多互联网公司都在,比方说大名鼎鼎的京东,京东就在亦庄,哎,原来我在亦庄还曾经工作过一段时间,哎,那么那个亦庄那边有很多互联网公司都在那啊,那这个就是表示我这个服务器在亦。
12:51
装这边,那么这个KS大家可能也啊,至少是不是耳朵上,应该是经常听过很多人都说这个K8S这东西是吧,那K8就是我们服务器的一个应用,那么它是K8S节点中的第一个节点,那一节点啊,就表示第一个主机,然后这个是什么呢?这是它的IP地址的后面的两个字符,就比方说我们当前的主机,我的IP地址,我们可以用这个命令来查,这是我的IP,它写的就是最后的两个位,最后的两个位就这。
13:25
把这两个位拿过来,就一百点十,一百点十表示就十点那一百点十,但是前面它就没有写了啊,前面没有写原因是因为前面大家都一样,只有后面的两位可能不一样,就加在这儿了,理解了吧,所以我们用这种方式来命名主机名,那么当然我们在生产中一看这个名字,我是不是就知道这个机器到底是干什么的,到底它是承担什么功能,到底在什么位置,是不是清清楚楚,所以在生产中我们每一个机器的主机名都一定有一定的规范,有一定的命名规范啊,当然这里面我需要强调一点,主机名不允许带下划线,听懂了吧,大家注意到,我这可是横线哦,我这可是没有用下划线,横线是不支持的啊,这里有下划线不支持,你看说出来说说糊涂了,下划线是不支持的,用横线啊,文件名我们都知道文件名用下划线,用横线什么都行,对不对,但是主机名一定是不能用下划线的,听到吧,在工作中的话,如。
14:25
如果以前曾经有同学就是犯了这个错误,结果写了或下划线,他也不会当时报错,有的时候他不会当时报错,诶,他就是莫名其妙的就出现了问题啊,到折腾半天,到最后发现啊闹了半天,这个主机名给加了个下划线。哎,就是这样的。好,那比方说咱们用host STEM这个命令来临时修改,这个命令是可以临时修改主机名的啊,这个命令临时修改意思是说它只是在内存中修改,它不会保存下来啊,比方说我现在就想把我的当前的主机名,把这个后缀改成马格一丢G,那我这么改,这是临时修改啊,临时修改。
15:08
哎,这没问题,就可以临时改了,改了以后呢,我怎么知道确实改了呢,我们可以敲这个命令来改,看到没有,是不是看见了,但是呢,话说回来,这个东西它是临时修改成功,换句话说,如果我机器重启,它就丢了,又回到了旧的名称啊,那当然我这个名称呢,加上一个下划线,咱们来试试,比方说下划线这个是8.2啊,我随便写一个,你看它这是不是就提醒我们了,说当前主机名是无效的,看到没有无效的啊,所以大家写的时候不要写的这个下划线,不要用下划线用横线可以,比方说我们这用横线啊,要说那的一看这没问题,明白吧,诶,这个横线可以。好,当然我们现在为了永久保存,所以我们用这个命令来设,叫set host name,后面跟上S8马E丢org,那这就永久保存了。那之所以刚才那个命令永久保存不了,就是它只是发生在内存里面,如果要想永久保存,那必须要存到磁盘中,那我们现在如果要永久保存,这条命令确实能做到永久保存,那么它到底是存在哪个文件里了呢?那它是存在这个文件里的。
16:26
这个是默认在S78包括乌邦tu存放主机名的位置。啊,所以实际上也有一个方法,就是你改主机名也可以改,把这个文件改了,听了吧,你可以把这个文件改了,改了以后在这儿重启一下机器,它也行。理解了吗?你在这儿改也可以,这样改也行,改了以后呢,你再配合命令改,如后内命令改也行,不过呢,这样的话需要你操作好几遍,就是操作好几步,不如这个命令省事,那这个命令呢,一次性就到位了,比方说我们这条命令回车,现在他就把这个文件给改了啊,你看现在这个文件是不是改了,我们来确认一下。
17:06
看到没,是不是改了,改了以后,而且它的主机名也生效了,那我们来确认一下是不是生效了。所以你看这个命令是不是很好用,既能保存又能生效啊,这个早期圣透六之前没有这个命令,没有这个命令的话呢,我们就得手工做两遍,SO6上呢,它存放主机名,存放的位置还不一样,存放主机名它存放在这个位置,ETC啊,C con network它存在这个里面。你看这是它的主机名,看到吧,行吧,这个主机名啊,那我想现在要把它改了的话,我们第一把这个文件改了啊,第二还得用命令让它临时生效,这两个配合起来得执行两操两次操作啊,那当然这个改文件的话呢,我们需要用文本编辑工具啊,这个是个文本文件,这是个文本文件啊,文本文件呢,它是里面可以看到一些人类能理解的英文单词呀,汉字呀,这些,这叫文本文件啊,这个文本文件呢,我们在Linux里有一些文本编辑工具,那么后面讲的vim之类的,可能有些同学还没有预习到,那那咱们也可以用一个简单的文本编辑工具叫nano。
18:14
Nano呢,这个命令它是比较简单的一个文本的修改工具啊,它呢学习起来难度很小,不过呢,我们初期一般来讲,可能为了降低难度,我们用这个,但是我们学了VM以后,这个工具就不太用了啊好,那所以我现在临时用一下它,我把它打开,打开以后呢,在这改一下。啊,我把这个不要了啊,这个东西这个东西就不要了。把它改了,改成马哥edo啊这个org,哎,那么改完以后要想保存怎么保存呢?大家看底下有一个exit退出,然后前面有一个字符大X字符表示C的C加。哎,然后Y。
19:02
然后问你是不是保存是回车就行了啊,实际上它这一都有提示啊,如果说你初期不会用,你就看提示就行了,不过呢,这个命令改完以后,它只是把文件改了,这个文件改了,我们用cat命令是可以看到这个文件的内容的,可以看内容改了,内容改了,但是它生效了吗?那我们看一下后name这个命令呢,它是没生效的,看到没没生效没生效,所以诶这个这个。就生效了是吧,这是刚才因为我改过了吧,啊,我刚才这个地方是不是执行过命令过呀。改过吧,我是不是刚才执行命令改过,如果你改过了的话,就应该生效了啊,这个hostna命令呢,它是可以临时修改的,但是这个文件你一般改的话不会立即生效,你需要配合一个命令,比方说我们需要执行一个这量的命令S6啊,你再配合一个这样的命令把它改了,要不它只是临时生效,呃,只是这个保存生生不了效,所以这个地方呢,我们在生产中的话,一般来讲,呃,好多命令都需要配合两步,一步呢,就是第一让它保存,第二让它生效啊这是两个不同的操作,大家到前面学过计算机的工作,呃,几个基础,我们知道数据是可以放在硬盘以及内存中的,内存中的数据我们就认为是正在生效的数据啊,内存中的数据,但是它生效是生效,保存不住,因为断电就会丢,而硬盘的数据可以持久保存,断电丢不了,但是它不会生效,哎,因为。
20:37
只有把数据读到内存中,CPU才能进行处理,它才认为是生效的,所以这种呢,我们就容易产生内存中数据和硬盘数据不匹配,不统一的问题,不同步啊,不同步只有放在内存中它才能生效,理解了吗?诶,这就是我们希望大家明白的道理啊。好,这是刚才我们执行的这个命令,呃,那这里面呢,有一个这样的一个服务,它就依赖于我们的主机名,如果你的主机名里面携带有特殊符号,比方说你加了横线啦,加了这个什么点啦,像这种点啊,我们敲命令,你发现它好像也没报什么错,哎,比方说我们执行一下这条命令CL set name啊,比方说我们就来个8.2,表面上你这个8.2好像执行它也能执行成功,哎,你来个八杠二,它也能执行成功八_二,诶你看它都不会报错,你看它都不会报错,我们刚才也强调了主机名不要带下划线是吧,当然点也不要带,诶,那但是像不是不要带点,就是说我们用这个2.2这种名称就有问题了啊,因为它不符合我们定义主题名的要求,就是有些软。
21:58
软件他会挑这个名字,你要是这个名字,比如说你要是有马哥一丢点com这可以,但你后面是以数字结尾,这就不符合要求了,听了吧,呃,所以在工作中我们表面上看这些名字怎么改好像也没什么错,他现在也成功了,但是叫来会造成有些软件服务出问题,比方说我这有一个这样的一个软件叫啊F,这个软件呢,在如果你设置的主机名有问题,它甚至会导致你无法启动,当然我这个地方它横线呃,下划线没问题啊,你看我这个是8.21,我改成8.1,改成8.21啊8.2,然后重启一下,看看有没有问题。
22:45
哎,大家看这就出问题了,就是如果你的主机名起的是这样的一个特殊的不符合规范的名称,这时候就会导致服务都起不来了,看到没有,所以以前有同学就不小心把主机名给改成这样,导致邮件服务起不来了,邮件服务起不来,这是邮件服啊,它可以实现发送邮件用的,所以起名字呢,尽可能要规范一点,明白吧,啊好,当然我所以我刚才起的这个名字呢,给它重新恢复过去啊好,我给它。
23:19
Org。好,这来恢复,恢复完了以后再重新启动一下,你看它没有报错了,理解了吧,所以这个呢,希望大家记住这个小小的一个容易出错的地方啊,这个东西也谈不上什么大的技术问题,就是有一些呃,起名字不要胡起啊,你看这个下划线呀,这个点光以二结尾呀,这个忘了加这个后缀了,这都是容易产生错误的地方啊,好了,这是刚才我们提到的主机名啊,主机名。所以我们定义主机名,虽然说有一定的规范,但也不是说这个,呃,你说你你你就随便拿个数字呀,点啊这种你这个随便写,可能会产生一些服务的影响,有的时候你执行改主机名,他不会给你报错,结果呢,导致了一些软件,别的软件产生了错误,所以这时候那就莫名其妙了,有的同学就傻了,哎,我这个福怎么起不来呀,他根本想不到是他十天前改了个主机名造成的啊,十年前的事儿谁记得呀,对不对啊,记不得了啊,今天才出的事儿啊,所以这时候就很麻烦了,明白了吧,当然了,这种错误呢,实际上我们也是有办法来看的啊,它会有一些提示,通过这个日志啊,有一些东西可以报告一些原因是什么啊,所以这个我们慢慢积累经验,等我们学到后面的时候,你出了一些错也不用担心了,因为我们可以分析日志中的提示错误,来及时纠正这个错误啊,当然这个需要慢慢积累。
24:50
慢慢积累这个经验。好了。接着我们来看一下提示符啊提示符,那么咱们Linux里面用户账户登录之后呢,它是有一个提示符信息的,当然大家可能也发现了,诶我这明明都改了主机名了,发现这个地方是不是还是旧的那个名字呢?大家注意到没有,你看这个名字是不是我之前做实验的时候改的这个名字他留下来的啊,你不是刚才老师你说了,你说你这个命令既能保存又能生效吗?那他这怎么是没有显示出来呢?注意这个提示符信息啊,是用户登录之后,哎,他。
25:30
用户登录之后,他不会主动的变的,虽然说我们的主机名已经改了,我们来确认一下,你看这命令确实改了,但是提示符他没有变,要想变,那么怎么变呢?那你退出来重新登录一下。啊,重新登录一下。好,大家看重新登录之后,是不是就这个主机名就恢复成我们原来的状态了,看到吧,那当然这个提示符的格式呢,现在我们可以来看一下了,提示符的格式虽然说比较呃简单,但是呢,在工作中通过定义提示符的颜色和格式可以相对比较。
26:18
有效的来避免你出现低级错误。在工作中,因为我们企业里面服务器特别多,有的是测试环境,有的是生产环境,所以有些工程师在登录的时候很有可能。切来切去的,搞糊涂了。啊,明明现在它是在生产环境里面。这个中午没休息好,头脑不清晰,误认为自己在测试环境,或者在自己的电脑上。所以这时候他把一个重要的非常有用的文件可能就不小心给破坏了啊,他当成了测试环境,实际上这是个生产环境,所以为了区分生产环境,测试环境,一般来讲可以考虑加不同的提示符,这个提示符比方说通过颜色或者它的格式定义加以区分,哎,避免出现这种低级错误。这个格式的定义应该是通过一个具体的叫PSY的变量来实现的,这个PSY的变量呢,就这个叫PSYPS1这个变量的值来定义我们当前提示符的格式,当然这个格式是被我改过的,相信大家前面预习过这儿,这个代表着就是颜色,为什么我的机器的颜色是浅蓝色,就是因为这定义了一分号36,一呢表示高亮,36呢表示。
27:49
浅蓝色明白了吧,哎,当然你看我这边的颜色就不一样,这边绿色绿色的话呢,哎,相信大家有同学可能改过了,我看有些同学的颜色已经调了,知道这个颜色是多少多少吗?绿色对应的数字有没有同学知道的?
28:07
有没有同学能答出来呀?好,我看诶同学们不错啊,同学们不错,我看好多看来42题的同学,咱们前面预习还是挺到位的啊,这个看三十二三十二,那实际上这个颜色呢,是31~37,总共是七种颜色,31~37啊不同的颜色,所以呢,你到时候你可以把这个颜色希望改成什么都可以,你看这个三六呢是黄色啊,黄色呢,你看看它的这个。是吧,33,所以这样的话呢,我们通过这种颜色就可以有效的区分出到底你在哪个主机上,避免出现错误理解了吧?哎,当然我这个加颜色是为了上课方便,你们将来一看黄色就知道我在六上操作,对吧?诶,将来我用什么电脑,你甚至都不用看主机名,是不是就知道我在什么主机上操作了,你像乌邦兔,我故意的调成了紫色。
29:14
是吧,紫色,所以这样的话呢,你们学习起来就不至于造成环境,因为版本和版本之间有些命令还是不太一样的啊,虽然说大体上差不多,但是确实有些命令不太一样,所以我们把颜色加上啊,但是这个格式呢,我们都知道,这个PSY呢,它的这个格式定义这个UHW,这些都是有特殊含义的,在这儿呢,我有说明。你看PSY里面每一项都有详细介绍,尤其有的时候呢,可以考虑把我们操作这个主机的时间。加到提示符里面带来的好处就是将来我一看视频啊,几点几分敲定命令,我就不用拿小本抄了,是吧,我一看那个几点几分我就知道了,那这个东西要定义时间,咱们这有一个T,这是24小时制,还有一个是12小时制,你看把这个提示符呢加上,那你看我这儿就有一个定义的一个小范例。
30:14
这个范例呢,定义的比较花哨啊啊,你像这个呢,是把这个颜色和背景都改了,注意一呢高亮五呢是闪烁,就是它可以一闪一闪啊,一闪一闪亮晶晶是吧?诶这个41呢是背景颜色,背景颜色呢,默认就是咱们背景是黑的嘛,对吧?哎,但是我也可以把它调了这个背景颜色,41是前33是字体颜色啊这个都可以改,这个我就不去。手工敲了啊,手工敲还容易敲错,我就复制粘贴了,咱们可以临时来执行一下,大家看好花哨对吧?背景颜色显示呢,变成红色,而33就是那个黄色的前景颜色五呢是闪烁,所以如果你觉得这个太花哨了,不想闪烁,你把这个五删了就行了,它就不闪了,看到吧,是不是就不闪了哎。
31:07
啊,那么这个呢,表示的是颜色的终止,如果你不加这个颜色的终止,那就意味着你后续敲命令也都变成这个颜色了,听了吧,所以我们只是把这个颜色限定在它的提示符这段后面敲命令你别给我加颜色,所以这个地方有定义颜色的开始,有定义颜色的结束,啊希望明白这个道理,当然我这儿呢,还有一个花哨的例子,这个花哨例子呢,就是把提示符的颜色。并且还添加了一些格式的说明,我们可以看到这里面我还加了一个T啊,这个T呢,我们刚才说了是24小时制,我还可以把这个时间加上,而且呢,我加了多处颜色,你看前面有个颜色,这有一个颜色,这又有个颜色,这又有一个颜色,不同的颜色,不同颜色就是为了把我们提示符中的不同呃内容分成不同颜色来显示,这样的话,你看前面是不是就是时间。
32:03
是吧,中间是用户。啊,接下来这是主机名,这个是表示你所在的目录啊,这样的话这个颜色就显得比较花哨了啊,当然这个工作中的话别搞太花哨啊,不过呢,像这种加时间是比较好的一个,呃效果这个加时间你就知道诶将来我多长什么时间敲的什么命令,这个还是挺有好处,尤其在学习期间是吧?诶这样的话用来查询这个什么时候执行的什么命令应该是比较好的。好了,当然我们刚才做这些事情都是临时生效啊,我们说了这个发生在内存里面,如果我一重启登录,再登录进来,大家看刚才我们改的这些东西是不是又丢了,又回归到了我们旧的这个颜色格式上去了,那么要想持久保存,需要把它还是那句话写到文件中,对不对?诶,那写到哪个文件里呢?比方说我们就存在这个文件里。
33:01
找pro rocp,呃,Pro ro.d放在这个目录下,这个目录下呢有很多SH文件,那这个SH文件呢,随便写一个文件名都行,Profile,第二这个目录大家看这个目录里面有好多SH文件,我原来的这个颜色定义就是放在这个目录下的,我定义到了一个叫env的SH文件里,实际上呢,你不一定叫en nv,你随便写。只要是SH后缀就可以,比方说a.AShb.SH都可以,哎,你放到去,你看我这个技术不就是在这存的,所以放在这就丢不了了,明白了吧,不过呢,需要强调一点,这个操作方法只针对SS啊,乌邦兔呢,你放在这儿是改不了的啊,乌邦兔要改放到别的地方,比方说放到哪呢?放到你自己的。所在登录的这个目录里面有一个点82C,有一个点80C,就是你登录,你登录成功以后,你不是就在这个目录里面,你看我这个乌帮兔,乌帮兔我登录以后是不是就在这个目录里,对不对,这个目录里面它有一个文件,这个文件呢叫点80C,你放在这里。
34:14
你看我就放在这儿看到没有,这样的话可以就是不同的系统呢,它的这个配置文件的路径略微有不同啊,但是功能上都是相似的,好,这就是持久保存,最终就得到了这样一个效果,这个是我是在乌邦兔2004版上加的这样的一个效果,哎,就在这儿,好,这是刚才我们给大家讲的这个提示符颜色啊,这个相信大家前面预习同学应该也看到过,至于这个每一项到底你如果说是想研究,诶,这个到底这是啥呀?这是啥呀,这杠U什么这个东西我觉得呃,没有必要花太大的精力,你知道就行了啊,比方说你看这里面都有嘛,杠优势用户名是吧,杠H是主机名等等等嘛,这都有介绍啊,所以大家有兴趣试一试,没兴趣就算了啊,这个东西我觉得并不是什么一个啊,特别特别必要,必须要背下来东西了解即可,知道就行,那么在我们学习的时候呢,大家在学习还是要把控一个重要性的,就是把有些重要的知。
35:15
这点要重视,要。花精力,花比较多的精力,相对弱的东西了解即可,所以大家学东西也要是知道哪些是相对重要的啊,因为时间精力有限啊,不可能全都投进去啊,好了,那接下来呢,咱们来看一下Linux里面它执行命令,那么这个Linux呢,它为什么能支持我们敲入命令以后就执行它这个是怎么执达到这个效果的,我们上午曾经提到过,在Linux中有一个叫share的程序,这个程序是后台执行啊这个程序。在我们用户登录之后,会自动的在后台运行一个sharell啊,你像乌邦untu也好,渗透S也好,他们背后都有个shell,这个shell呢,我们说过用这个命令是可以看到的,这个就这个share,这个sharell呢,它在你的当前的用户登录终端。
36:14
之后它就会自动开启,不过它是后台执行,后台执行所以你看不到它必须你要执行一些命令才能看到,这个呢就是我们所谓的share,这个share呢,它就是一个命令的啊解释器,之所以我们执行一个命令,它能够帮我们执行它这个背后就是依赖于share的啊,那share呢,它是怎么做到这一点,为什么我敲一个英文单词他就能执行,这背后是有一些逻辑的,下面咱们就来介绍一下Linux它的执行命令的背后原理。首先我们都知道计算机里面的程序最终都体现成什么具体的一个文件,是不是比方说大家在Windows里面,我去玩QQ啊,我会去打游戏,事实上大家去打游戏玩QQ都是怎么做的,是不是就是点击那个小图标对吧?比方说我现在要打开记事本本,我一点这个记事本,是不是就把这个软件就打开了?
37:16
但是呢,你别忘了,你点着一下它背后发生了什么,是不是背后他把这个图标对应的那个文件给找到了,哎,它背后找到了这个图标所在的文件,然后把这个文件加载到内存里面进行执行。啊,当然,那也意味着这个小图标背后它是有一个文件存在的,明白吧?那么同样道理,在Linux里执行命令,每一个命令应该对应的在磁盘上有相应的文件存在,应该有相应的文件存在,它不是说天上掉下来的,都是最终从磁盘上找到那个程序,然后加载到内存里面,进而运行起来的。那当然,那么这个文件到底在哪儿?那我执行命令的时候,他怎么找到这个命令所在的磁盘文件了呢?
38:09
啊,那当然对于Windows来讲很简单,Windows我要去运行一个程序,那无形中比方说你像我要运行这个浏览器,这个浏览器我运行,我双击它,为什么双击它就能运行到呢?就是因为它实际上我们这个图标里面是记录了这个浏览器所在的位置的,大家看它在这儿,我右键单击这个位置是可以看到的,右键单击是不是可以打开此浏览器所在的文件路径是可以找到它的,所以实际上我们所谓的双击浏览器,实际上就相当于点了一下这个EE,明白了吧,这个页页不就是一个程序嘛,大家可以看到它的文件也不小啊,就是呃,1.7兆。1.7兆这样的一个文件,那么在Linux里面同样道理,虽然我们不是点鼠标,我们敲命令也是一样的,我们敲命令也必须要在磁盘上找到这个文件它所在的路径,但是这时候就有点儿奇怪了,我敲这个命令的时候,我根本就没有。
39:11
告诉。Share尔说,诶,这个户这个命令到底在磁盘的哪没说啊,那事实上我们所在的文件夹就在这个文件夹里,这个文件夹里面它有户吗?是不是他也没有啊。没有啊,也就是说这个程序莫名其妙啊,怎么随便写,你比方说我在这儿执行啊,我跑到别处去执行,他都能执行。大家注意到了没有啊,这个CD呢是改变文件夹,就是我换任何一个地方它都能执行啊,这个时候呢,我们是不是就有点儿奇怪了,那这个东西它是怎么找到它对应的磁盘文件才能加到内存里执行呢?对不对?哎,那这中间就涉及到一个命令的类型问题,在Linux中执行的命令呢,有两种类型,一种呢叫内部命令,一种叫外部命令。
40:05
那什么叫内部命令呢?所谓内部命令,就是集成在share中的。是被share内置自己带有的。啊,这个里面就自身带着,就相当于这个share里面自身就携带了一些小命令,这个是share里面自身就有的。不过它并没有对应一个专门的独立文件,因为它是被share所集成的,也就是share里面包含了啊这些所谓的内部命令,当然我们说过share,我们目前用的share是什么?是不是be share,那be share它确实本身它是一个磁盘路径啊,我们看到这是不是就是并下的这样的一个大,这是一个真正的磁盘文件啊,这个我们可以看到,你看它的大小,用这个命令可以看到它的大小,你看这是它的大小,这么大,那也就是这个BA,这个share这个程序,它里面集成了很多很多小命令,这些小命令是集成在BA里的,也就是说BA里面它自身就包含了那些小工具啊,你可以把这个理解成这就是一个工具包,这个BA呢是个工具箱,它里面有好多小工具,好工小工具,每个小工具就是它的内部命令,明白吧?哎,那这个内部命令就是被share所集成的,当然大家可能也聪明的想到了。
41:30
我们系统中是不是有很多种不同的share,那么你想想,Share不同,是不是它内置的这个工具就不一样,换句话说,不同的share,它的内部命令是不一样的。这个能想到吧,在上午我们提到过c share啊,你看在上午我们讲的这个Che Che c share呢,它实际上你看它的文件大小和我们现在用的bash这个文件大小是不是差了很多,那你看c shell TC shell,它用的文件大小才么点,而我们用的shell是这么大。
42:12
所以可见咱们但是大出这么多来,他们内置的功能是不是就不一样。所以内置功能主要差在哪儿?就是内部命令不一样啊,这个内部命令更丰富,这命令部命令就没那么丰富,我不知道大家是否还记得,上午好像就给大家演示了一下,如果我们用这种c share的话,它是有些命令不支持的,你们还记得吗?我上午挑了哪几个命令啊,当时在CSHE里面执行就失败了,但是我们在bus里面它就成成功了,记得不记得?有哪些我敲了几个啊,敲了几个,有没有同学还记得的,诶,Enable对吧,还敲了一个help,诶,我看聪明的同学啊,还印象非常深刻啊,这个你们太聪明了,我上午就随便敲了两下,你们既然都能记住,中午吃了顿饭还没忘了啊,这个真是,哎,很聪明还是很聪明的啊,当然没有记得的同学没关系啊,这个东西我只是问了一下啊,当然这两个命令为什么在CSHE里面就执行失败了,为什么在但是里面执行就成功了?你看我现在就切换成CSHE啊,咱们就换成TCSHE吧,换了以后呢,你看我敲able help是不是就失败了,他说命令没发现是吧?哎,我回来再回到咱们的干事,就1IT就退回来,退回到原来的办事,你看我再敲help,再敲able,是不是就一大堆东西就出来了,为什么?大家应该猜到了这两个。
43:48
这东西是不是就属于内部命令?明白了吗?诶,这两个命令就是典型的内部命令,它是集成在share里的,就这这么大的文件里面包含了这些内部命令啊,这些内部命令是集成在share中的,当然自然它就依赖于share是吧?不同的share内部命令当然就不一样,明白了吗?啊,这就叫内部命令,但是内部命令多不多呀?
44:15
大家觉得内幕命令会很多吗?我们在之前给大家说过,我们大概要学个好几百个,三四百个,300多个命令,就是常用的命令啊,300多个命令啊,你觉得这些内部命令它会成300多个吗?那事实上我们这里面集成的内部命令并没有那么多,不多啊,不多,因为你想要把好几百个命令都集成在这,这个文件肯定小不了是吧?啊,这个命令会小不了,所以呢,呃,而且呢,这个命令它默认。已经加载到内存里了啊,为什么说内部命令它不需要。在磁盘上找,为什么?因为这个share开机用户登录之后,它已经运行在系统中了,大家看在这个里就能看到它已经运行起来了,已经运行起来了,所以我们换句话说,这个BA线已经在内存里了,所以当我们去执行一个所谓的内部命令的时候,自然而然他就从这个BA里面就找到了,这里面的内部命令,当然就能执行了,理解了吗?诶。
45:28
这是它背后的逻辑,哎,当然,那我们说,那到底我系统中有多少个内部命令呢?事实上help这个命令,它的工作就是显示所有的内部命令,看到没有,这就是内部命令。这些都是内部命令啊。这些都是内部命令,那有人说了,哎,这个中号也是内部命令,是他也是命令啊,不要觉得奇怪啊,哎,奇怪的还有呢,点儿点也是内部命令,听懂了吧,虽然长得不像命令,但是不能不说它确实就是命令,点儿就是个命令啊,中国号一对就是个命令啊,不过呢,这个命令长得实在是太奇怪了是不是?当然这些都是命令,这些都是内部命令到没有?实际上大家注意到没有,我刚才敲用的实际上就是内部命令,听到没有?哎,这些实际上都是内部的命令,包括我们刚才敲的一个enable啊,你看看enable是不是在这呢?Enable看到没?是不是内部命令,后面是它的用法啊,就是告诉你怎么用,理解了吧,所以这就是内部命令,命令命令不多啊,就是这么多,就这么多啊,有的我们上课会给大讲啊,比方说什么黑tree之类的,我们都会给他讲啊,啊这个logout logout呢,这个也比较简单,就是退出注销。
46:41
Logout。我现在呢,想退出当前的终端啊,那么我们可以要敲easy,也可以敲logout,你看就退出来了,当然退出来我又重新登了,当然这个重新登并不是说系统就自动重新登啊,是因为我说过设置了,哎,这个我在我的这个登录的这个会话里面,我把这个终端设成了它注销以后自动登录,大家看这有一个看连接异常关闭以后自动重新连接,我点了个这个对勾,点了对勾以后呢,只要我断开它就会自动的连上。
47:15
所以这个做实验比较省事儿,听了吧,这就万一,哎,我这个断了,诶我断了以后它自动就给你连上了,你也不用去手工再连了,这不省事儿吗?所以你们也可以考虑跟我学一学啊,把这个做实验省事,当然工作中的话,这样设也不一定安全,就是说我现在是为了做实验省事,断开它马上就自动连上来了,哎,这个是比较简单的一个设置。好,内部命令,现在大家是不是明白了,内部命令它本身就在啊这个share中啊,本身就在share中啊,这个share是开用户登录以后,它就加载到内存里的,所以呢,它直接从内存中就可以进行执行,所以它的速度应该是非踌快的啊,所以既然都在内存里了,那么所以执行就不需要跑到磁盘上去找它这个磁盘路径,那就快的很多,那么除了内部命令对应的有内部是不是就有外部命令啊。
48:10
是吧,就有外部命令,那外部命令。所谓内部是相对于BA来说的,就是相对于这个被集成在BA中的。这就叫内部命令,那当然大家马上就意识到了,如果是外部命令,意味着什么,意味着是不是就是不是集成在办事里的,那不是集成在办事里,那放哪儿啊,那就放在独立的磁盘文件中。啊,它是专门有磁盘文件的,这就是外部命令,外部命令它是个独立的文件,是看得见摸得着的一个文件,哎,那在哪儿呢?大部分的外部命令都在并类似的这样的目录下,那你看你看是不是这些都算外部命令?这些都算外部命令,看到没有,这些都算外部命令,哎。外部命令,比方说我们上午敲的那个户,这个就是个外部命令,当然有人说那你咋知道它是外部命令啊,对吧,你能不能有一个判断方法,我也记不住啊,诶有一个方法可以帮我们来判断内部还是外部啊,有一个命令叫tap,对tap,那tap呢,这个命令tap本身是一个这个。
49:22
类型的意思对吧?它就是用来判断的啊,那比方说我们敲户,你看它是不是告诉我们了UR并户是不是写了一个磁盘文件呀,那只要是写到磁盘文件,那我们就认为叫外部命令,它不在share中嘛,它没有集成在里,所以它自然就是一个外部命令啊,当然那我们刚才敲过那个enable,那这个是个内部命令对不对?诶你看它是不是写了一个building啊,Building不就是内部命令内置的意思嘛,对不对?哎,内置,所以这就看出来了啊,当然子清,哎又问了,那太命令本身是个啥命令,啥命令啊,那tap自己是个内部命令,外部命令啊,他自己是个内部外部啊。
50:11
对吧,哎,那那那也可以自己判断一下自己嘛,对不对,判断一下自己不就行了吗?太不太度是不是,哎,所以你看你们这个从呃41期这个这个算是二进攻了啊,这个同学学的这这这这个很轻松愉快的事儿了是吧?诶当然你学你熟悉的东西当然很轻松愉快了,等学到难的时候也痛苦,所以大家学习的时候,这个呃,有些同学基础弱啊,基础弱的话你要咬牙坚持啊,咬牙坚持,咬牙坚持啊,咱们班里头有有不少同学是41期的同学啊,听到后面了,还有决定啊跑到郑州跟大家一块儿来学,因为他们觉得面授班学习效果好,因为呃这个41期一直是在线上上课,线上上课的话,效果感觉不像放在面授班,有同学陪着是吧,有老师陪着啊,有督促着,这样效果好,所以他们哎花了大精力啊,有学跑过来跟大家一块。
51:11
来学习,所以你们42级的同学,42级的同学得加把劲了啊,你身边都是已经是这个,呃,这个两朝元老,甚至班里还有三朝元老的啊,就是听了三遍的这样的同学,所以你们呃,可得加把劲儿啊,当然了,这个也别给自己太大压力啊,这个如果不会,你可以问问这些表哥们是吧?啊,表哥们向他们请教请教啊,当然也有表姐啊,有表姐干不过你跟人打架干嘛呀?呃,要干过干嘛呀?嗯。身边全是大佬是吧,是不是这两天有充分的这个意识啊,我赵老啊,对了啊,这个有同学可能是想见我的啊,不过目前暂时啊啊过两天过两天我们会见面的啊,这个过两天我会飞到郑州,飞到郑州跟大家在一起,跟他在一起好了,那这是刚才我们说的。
52:07
这个命令啊,Type啊type啊,当然呢,现在我们明白了一个道理,明白了一个道理,什么道理呢?就是系统中有两个这个两个类型的工具啊,类型的命令,一个是内部的,一个是外部的,哎,那大家想一想,当我们敲一个命令的时候。当我们敲一个命令的时候,这个系统它优先执行谁呀,你觉得同学们哎,我敲一个命令,他判断的时候,他肯定得先判断内部命令外部命令是吧,再执行吗?那那判断的时候,他是先判断他是外部命令就执行呢,还是先判断它是内部命令就执行啊。啊,你们觉得系统会怎么设计呀?要是你的话,你觉得内部命令先优先执行,还是先执行外部命令啊。
53:02
哎。优先执行内部命令,为什么你们觉得要执行内部命令为什么?为什么先执行内部命令,外部命令你为什么歧视人家呀?人家就是一个磁盘上的文件,你就歧视人家吗?啊,外部命令为什么就后,为什么内部命令就先呢?诶,那就是因为外部命令本身它是个磁盘文件,是不是磁盘文件,那就意味着你要执行它是不是得跑到磁盘上转一圈,好不容易才把那磁盘慢速设备读到内存里才能执行,这个效率肯定快不了,而内部命令人家已经在用户登录的时候加载了share,也就是说这个share已经在内存里了,内部命令都在内存里了,当然一执行从内存里啪就执行了,那当然效率快得很,对不对,不是一个级的级别的,所以系统也会聪明的优先执行那外部,呃,内部命令,也就是说他先判断,如果是内部命令,他就直接执行了。
54:00
啊,那也不会再去看什么外部命令了,当然如果不是内部命令,因为内部命令不多嘛,就那几个,然后如果不是内部命令,那他就把它当成外部命令进行执行啊,但是当成内部命令,当成外部命令执行,这时候就又产生了个新问题,内部命令人家在本身在内存里面,这好说,但是外部命令是在磁盘上,大家注意到没有,那它的磁盘上,我们这个磁盘这么大的空间,那么他是怎么找到这些所谓的外部命令所在的文件路径呢?啊,他到底在哪啊,他不是一个目录一个目录的去找吗?对不对,那他怎么找到的呢。诶,他会像我们这个从头到尾的翻一遍,把整个磁盘搜一遍吗?大家想想,如果真的这么干,我的硬盘那么大,数据那么多,真找一遍太慢了吧,事实上它不会那么傻,人家外部命令存放的路径是有规范的,诶,对了,就是放到一个统一的标准路径下,这个路径存放在pass这个变量里,这个pass变量对应的就是一个一个的存放外部命令的路径。
55:13
看到没有,这是一个文件夹,这是一个文件夹,这是一个文件夹。所以当咱们系统判断出它不是内部命令,那么它就会把它当成外部命令,当成外部命令,那怎么找啊,就找这个,按目录搜索找这个,看看有没有,如果没有接着找他,再没有找他,再也没有找他啊找到了就执行对吧?诶如果找不到,那继续找,诶还找不着,找不着,那所有的solo一半天都不知道,都不知道,那就什么报提示命令没发现听懂了吧。啊,如果找不着了,实在找不着了,那就命令发现呗,啊,那就没执行失败了嘛,是吧?哎,找到了他就执行啊,当然这中间也产生了一个问题,就是如果有一个同名命令在这存了一个,又在这儿存了一个,这两个目录都有它,那你想他会优先执行谁呀?
56:07
他会执行这个目录里的这个程序呢,还是执行这个目录里的程序啊。还是都执行啊。哎,当然他不会都执行,都执行那没有意义嘛,啊,所以他会执行最前面这个,为什么?因为我刚才说的这个逻辑了,就是他按照顺序搜索一个目录,一个目录找,找到第一个他就直接执行,他就不会再往下看了,听懂了吗?他不会再往下看了,这样的话提高效率对不对?诶,他不会说找到一个了,再下去再找,那么这种思路呢,我们称为懒惰模式啊,这种叫懒惰模式叫懒惰啊,懒惰模式啥意思啊,有就行了,再也不想看了。哎,这个有口饭吃就行是吧,有些同学要求不高,哎,有挣1万块钱工资就可以了,上了班反正天天混就行了,然后上了班以后有1万钱工资,然后天天上班下班,该混混,该喝喝,该吃吃,该乐乐,结果上了两年班三年班,技术水平提高不了,是不是别人家人家两三年都拿到20K以上的工资了,还有那同学在1万块钱左右晃悠呢,不学习不努力啊,老师那1万块钱工资上不去啊,所以咱们班里面往届同学有的真的是干上一段时间工资涨得特别快啊,你像我给大家这个说过,班里头有最年轻的17岁的同学,17岁的时候他就过来学习,学习的过程中刚刚到18岁,所以他毕业的时候也就18岁。
57:44
啊,我说的毕业就是在马克教育的课程结束的时候啊,他18岁,18岁以后他就上班了啊,找了一个工资肯定也高不了,你想18岁他那刚成年啊,刚成年啊,这个学历也没什么学历,就直就上班了,工资也特别低,估计刚去也就是五六千块钱工资,能找个工作就不错啊,18块,十八十十八岁的年龄,你说他有啥学历哎,但是这个同学特别爱学习,上课期间特别认真,所以他学习学的不错,找工作也比较顺利,工资不高吧,至少不上班了,结果呢,两年以后,我身边呃,就是有一些和他同班的同学就跟他聊起他来了,说他的工资达到多少了,两年以后他大概也就是20岁。
58:27
20岁,哎,你们有没有同学知道,猜猜他工资多少钱了,两年以后。他是在二零。一六年吧,16年二十二二十七的同学啊,也就是2018年左右前后,2018年左右,那时候我跟他的班里同学聊天,聊起他来了,所以说我就想关心一下他状况是什么,哎,工资。啊,那没那么夸张啊,没那么夸张,没那么夸张啊,这个咱们也得实事求是啊,也不能说胡说八道,哎,多少呢。
59:05
十。19K19K。19K工资,同学们,他20岁的时候19K。明白了吧,你想你20岁,咱们班里头有好多20岁的同学吗?你现在多少钱啊,现在还没上班的是吧,没上班呢啊,19K,所以这个东西就是你下工夫啊,这个同学还是挺认真的,所以他肯定是背后付出了很多努力,才慢慢的拿到这这么多工资的啊,所以好多同学说实在的,有时候上大学的同学,我们都知道20岁还在上大学呢是吧,二二十岁还在打游戏呢,是不是在学校里玩游戏呢?是吧,还在这个这个呃,思考思考思考,怎么去这个这个找小姐姐呢,是不是啊,人家已经拿到10K工资20K工资了啊。所以这个都不一样啊,差别太大了,所以还是你等你达到一定的阶段以后,你学习好了,有一定的事业了,那小姐姐不都是那那看中你的嘛,对不对啊,你就这么优秀,人家也喜欢你啊,你说你混了半天,学习不努力,干上几年,水平也上不去,工资你也上不去,人家凭什么看你是吧,看不上你啊,所以这个这个大家还得下工夫啊,啊盈奎啊,盈亏是18岁,哎,对了,咱们报一下你们班里头有有班里头谁年纪是最小的,我想听听。
60:37
啊,你们报一报你们班,咱们班里最小的年龄是谁呀?班里有有最小年龄多大的,22 22不算小二12不算小二12,你看刚才那个银奎银奎王银奎是吧,王云奎18岁,哎,18岁零二三十去,我还看错了,你看你这家零出多少去了,你没看。
61:01
肖豪,你别凑数了啊,肖豪,你这个是郝总啊,你这个郝总,你这个家里都是趁什么这个游泳池的人,就不要给我们凑数了,其他同学呢?其他同学有没有不好意思说是吧?不好意思说就算了啊,不好意思说没关系啊,我这反正有个小本本,我我这有可以查查查,看看班里头谁年纪小啊,当然年纪小是好事儿,但是呃,有些找工作的时候不一定是优势啊,这个越学的越早有好处啊,因为你干上一年两年你就成老司机了,但是年轻又特别小,是吧?刚才说了这个是懒惰模式啊,懒惰模式,懒惰模式就是找到就算,找到一个就算了,哎,当然大家马上就想到了,和它对应的有另一种模式,叫什么模式,那种模式你能猜到吗?和他相反的模式是什么模式?30岁有希望,30岁30岁有希望,30岁不算什么,30岁正当年的啊,诶贪婪模式,对另一种叫贪婪模式,那贪婪模式就是恨不得我全找一圈啊,找到一个还不行,我要再找第二个,找第三个,找第四个,这就是贪婪模式,咱们后面的不同的软件,他们甚至不同的参数,加上以后他们的特性是可以修改的,有的是贪婪模式,有的是。
62:21
这个呃,懒惰模式,所以这个呢,希望大家提前先把这些术语啊,先混个耳熟,等我们讲到具体的,咱们再结合来看明白吧。啊那刚才这个呢,可以说就是一种懒惰模式,找到一个就算了,不会往下找了,哎,这就是他的工作特性,哎好,这是刚才我们给大家讲的,但是虽然即使是懒惰,仍然效率肯定和内部命令相比较是比较慢的,因为内部命令人家本身在内存里面,你贪婪模式,你这个懒惰模式你也要跑到磁盘找啊,磁盘速度慢的很多呀,上次咱们讲计算机基础的时候,大家应该看到过,它那个性性能的比较,那都是差很多很多倍的啊,所以呢,这个硬盘的速度快不起来,所以这就产生了一个问题,如果我下次我刚刚执行过这个命令,我又想执行,我再次想执行,你想我再次执行。
63:21
我还跑到这个呃路径下去搜一点点找起不很慢吗?是不是?那如果说第一次我这么找是因为我不知道他的路径,那第二次再执行是不是我曾经找过他,我已经知道他的路径了,我们是不是就应该为了提高效率,拿个小本把它抄下来,他当初这个命令在什么什么路径下,我给它记下来,记下来以后下次执行直接从这个路径找到这个磁盘文件,不就直接就执行效效率就提升了嘛,对不对?所以这个思想很容易理解,那么系统确实也就是这么设计的,那么当然第一次执行,它就会把这个文件二,这个所谓的外部命令所在的磁盘文件的路径记录下来,我们叫hash啊叫hash hash呢翻译成哈希,也就是把它缓存在了磁盘,呃,缓存在内存中记录下来了,记录下来以后,下次呢,它就可以直接利用缓存里面记录路径去直接找到这个。
64:21
文件,进而执行效率就可以大幅提升。这里面需要强调的就是它缓存的。是这个程序所在的路径,而并不会把这个文件缓存在内存里面,我不知道我说话大家听懂了吗?啊,比方说咱们现在看一下这个啊,这个这个找一个这个user and,随便找一个命令,大家这个命令,这个命令是个磁盘文件对吧?这个磁盘文件如果我第一次执行,我会把它缓存在内存中,缓存的时候我把这个路径把它缓存下来。把这个文件所谓的路径缓存下来,我知道它路径了,但是这个程序文件不会缓存,行了吧,这个程序文件它还在磁盘上,也就是说我下次再执行,我顶多不用去一点一点按这个路径搜了,但是我还是要找到这个磁盘文件,把它加在内存里边,该加载内存从磁盘上加载内存,这个过程并没有减少,还是要把这个文件加载的,它只不过记录的是路径而已。理解了吗?我说的话大家听懂了没有?
65:30
听懂了没有?听明白了吧啊啊,当然你要听不懂也没关系啊,听不懂打个零啊,这样的话我看大家状态怎么样啊,这个听懂听不懂都没关系的啊呃,不要受别人的影响啊,别人写一你别说,哎,我也孙达周写个一吧,那就不对了,咱们学习不怕丢人啊,学习不会是正常,你因为来就是不会嘛,对不对,那学过来学习就是自己不会也没什么丢人的啊,所以咱们上课的时候,大家一定实事求是,会就是会,不会就是不会,不用为了面子啊,你出去找工作那时候才要面子呢,你找不着工作了,那是面子。
66:08
你知道吧,找不着工作了,那时候才是要命的,你现在不会就学嘛,现在不会我给你讲嘛,对不对,我现在就给你讲会了嘛,是吧,所以大家学习的时候不要太好面子啊,不会就问别人,不会你就大胆问,多问别人。当然我建议大家也不是说遇到一点点小问题,一丢丢小问题就问别人,实际上你在自己先琢磨琢磨,因为你花点精力,你在学习琢磨的时候,也是在一种能力的提升啊,别遇到点问题就老问别人,实际上也并不是特别好啊,所以这个要把握一个度的问题啊。好,那刚才我们提到了这个内部命令,外部命令的执行逻辑,现在相信大家听懂了,那既然这样,那比方说我现在增加了一个这样的一个and。好,那么现在我执行一下这条命令,这个命令的功能就是创建账户啊,这个命令就是创建账户,当我执行完毕以后,你再看他这是不是就提示我们hash什么意思?就是当你第一次执行以后,它就会把这个路径给你记录下来,记录下来当你下次再执行的时候,下次再执行的时候,他就不会再跑到磁盘上去啊,按照刚才的路径一点点搜了,直接一步到位就找到了,就执行了啊,当然我怎么知道它被缓存下来了呢?实际上这已经显示出来了,看到没有,那这儿已经显示出来了。除此之外,还有一个专门的命令,它能显示出我们目前已经被记录下来的缓存在了内存中的所有外部命令的信息,大家看这些就是已经被缓存下来的。
67:47
那其中这个一代表着就是我已经。从缓存中用过一次了,那二呢就是两次,比方说你看我在这儿再敲一个命令。
68:01
看这是不是,原来是二,现在你再看一下,它是不是应该变成三,什么意思,就是意味着我们每次执行这个为外部命令,它如果从缓存中找到了这个程序,它就会自动的递增啊,这就hit hit是命中的意思,就是从缓中给找到它了,这叫命中了,那找不到,那就是我把它记录下来呗,对不对?诶找不到我就把它记下来,第一次啊,比方说我现在在执行一个这样的命令,这个命令是删除用户,我把刚才那个哈哈用户给他删了,删了以后呢,这个user戴尔是个外部命令,它也记录下来了,你看它是第一次执行,所以这就记录下来了,看到没有,如果你下次再执行,这就会变二变三变四往上涨,理解了吧,诶,这就是缓存,当然这个缓存呢,有效率上的提升,这是毋庸置疑的,记录下来以后,下次我就不用去草磁盘找了,但是有没有这样的缺陷?缓存有优势,是效率提升,缺陷是什么?同学们能不能想到它的缺陷是什么?
69:04
我看同学们对这个缓存的理念,能不能理解它的背后逻辑。他有没有缺陷吗?有没有缺陷?难道都是好处吗?啊,对了,我看同学们已经提到了占用内存,对,它肯定是要消耗内存的这个点,当然这个东西也谈不上缺陷,为什么?那你占内存,你为了提高效率,你消内,那也是理所当的。啊,有人说了,那有没有不占另存就就能够直接,你觉得天下有那么多便宜事儿吗?是吧,你一点代价都不付出,就想利用人家的优势,这是不现实的,这个代价适当的还是要负的啊,这个你得对人家负责是不是?哎,你这个要想这个得到一些东西,你得做一些付出才行啊,不是白白就来的,那除了这一点还有什么?
70:01
因为放在内存里,对,放在内存里面肯定它是易失性的,也就意味着我下次。登录或者我重新注销,注意我重新注销了啊,重新注销了你看是不是就空了。它是临时性的,哎,放在内存里的东西都是临时性的啊,这是一点,另外一点就是如果,如果比方说我们就以yes为例,这个yes呢,咱们上午敲过,它是个外部命令,看到没有,它是个外部命令,它的路径呢,是在这个USR病里面,哎,那么我现在去执行一下yes他能执行。又卡这儿了,停不住了,太快了。这个yes不能执行,一执行就这机器卡的不行了。停都停不住了。
71:02
这yes是不是就属于非常消耗资源的,车速太快了对吧?哎,车速太快了,搞得我这个机系统都完蛋了,这个。消耗不消耗CPU看看。啊,CPU倒还行,CPU消耗的不是特别大。CPU消耗的不大,但是这个命令我们后面讲啊跟你讲。这个。还是还是机器配置不太高是吧,所以中午的时候马哥提前知道了我这个系统不行,所以已经决定给我买电了,是的。
72:05
知道,哎,我这已经发货了啊,过两天我就用上新电脑了,当然了,这个命令呢,呃,这个太消耗资源了,都不敢用它了,这个这个这个命令太太厉害了,呃,那我们就换一个命令吧,换一个命令啊,换一个命令,换一个这个命令,比方说这个命令吧,拼这个命令相对还好一点,这命令也能看到效果,它也是不断执行的一个效果,这个命令。好,那这个命令它也是一个外部命令,可以看一下啊,你看外部命令啊,那现在下次我再执行的时候,它会自动的利用缓存下来的路径来找,但是呢,由于。看看缓存有没有啊。缓存是空的,来执行一下。
73:00
P1270.0.1看能不能缓存下来。啊,然后看看有没有缓存啊,如果有缓存才能利用啊,有缓存那有缓存,呃,结果呢,有人不小心把这个文件给移到别的目录下了,如果这个目录被我迁到了别的目录下,比方说我这个pass对应的路径呢有很多,如果我把这个P命令给它移到了这个温度下。那这时候大家想,下次我再执行的时候会出现什么问题,能想象到?如果说我把这个P命令给移走了,移到这个目录下去了,他现在不是在USR并下面吗?对吧,我给他移到这里面去了,他就会怎么样,他能不能利用新的路径来执行。还是会找不到命令。An。他就会找不到命令,为什么找不到命令呢?因为缓存里面记录下来路径,它就会按照旧的这个记录下来路径来找啊,结果找不着,他就会报错了,理解了吧,所以这个中间也是有一定的问题的,所以缓存呢,它不能及时的生效。
74:13
缓存有好处就是提高效率,但是呢,它不能真正的及时生效,换句话说,它和你实际情况中间可能有一定的不同步的现象造成,所以缓存记住了,缓存的最大优势就是刚才我们提到的效率提升,但是缺点就是有可能不同步,也就是说你得到的东西有可能是错的,得到的东西是过时的,理解了吗?所以我们后面学习的缓存都有这个问题。所以缓存呢啊,适当的情况下该利用利用,但是也并不是说所有的情况下都适合利用缓存啊,所以提提出这个结论就行了啊,大家知道就行了,好了,那现在呢,我们知道了系统中执行过程,那现在总结一下,执行内部命令,这是第一步,先判断它是否是内部命令。
75:03
好,我们把这个命令的执行逻辑先给大家说一下啊,那这个命令的执行的时候呢,第一步先判断它是否是内部命令。啊,我把这个笔记帮大家来说一下命令的执行过程,第一步先看是不是内部命令。如果是内部命令当然就执行了,第二步不是内部命令,自然就当成内部命令啊,外部命令对吧,当成外部命令,然后查什么,查缓存,看有没有缓存,里面有没有路径,如果有就按照缓存里的路径执行,如果没有缓存,就按照什么我们说的pass变量,Pass变量对应的一个一个的文件夹去搜,找到第一个目录里面有,那就执行,找不到就看第二个目录,一直找,所有的路径全找不到了,那就是最终提示我们命令无发现啊,就这个提示命令没发现。
76:04
明白了吗?这就是目前我们学到的命令的执行逻辑,听懂了吧?当然这个命令呢,我们还没有写全啊,还没有说全,待会儿我们还要说说别的命令啊,所以这个背后Linux里面命令的执行逻辑就这么简单,没什么难的啊,当然这个hassh里面缓存的信息是可以适当的做处理的,刚才我们也提到了这样的一个问题,如果我把这个命令移到,移走了,这个移动呢?我们有一个命令叫MV,刚才我插了一个那个,呃,这个咱三十九七你们表格的那个内容,它里面就用到了MVMV是移动的意思啊,移动的话,你看我现在把这个命令把它移走,你看它是记录的是这个吧,记录这个路径,那我把它移走,移到哪儿去呢?比方说我移到这个目录下。移到路线移走了,移走以后呢,当我再聘的时候。
77:01
发现是不是就出故障了,这就是刚才我跟大家说的,你看他是不是还傻乎乎的去按照旧的路径来找,实际上我都已经移到别的路径下去了,他是不是还不知道,这就是缓存怎么样过时了,缓存,缓存里的信息和实际信息脱节了,不同步是不是啊?当然对于这个现象,那怎么解决呀?同学们啊,要是你的话,你觉得怎么解决?你看这个命令报错呀,他找不着了对吧,他按照旧的路径找谁,我都搬家了,你还怎么老找路径啊,对不对?诶那所以通明的同学意识到了,是不是把缓存清了就行了,对吧?诶缓存那我们查一查缓存has这不就缓存吗?那缓存把这个清了就行了,那怎么清缓存呢?一种方法全清,当然因为你这个聘你把别人清了好像不合适,你可以把自己清了就行,哎,那么清自己这个记录呢,就这样,应该是这样就给你清了,清了以后你看是不是就清了。
78:01
哎,清了,那这样的话呢,它缓存里没有了,它又不是外部命令啊,又不是内部命令,它是不是就只能按照pass变量搜索,而pad变量搜索是不是这是整体找到路径的,所以他就可以执行了,看到没有,然后呢,我们再看一下,这时候他是不是就按照新的路径记录下来了。记录的是不是新路径,诶,这个路径我刚才移到哪去了呀?我刚才移动到了这个目录下。是吧,他这记录的是USR,那这个路径怎么对不上号啊。到底怎么回事啊,我刚才不是移到这里面了吗?他这怎么显示的这个路径啊,那我们看一下,确认一下这里面有没有病。有。有,那那这里面有没有。
79:01
哎,这里面也有,换句话说,实际上它有可能是多个地方都有病,都有P,就是你清了以后呢,他发现在别的地方也有,也就是说我们发现你看这个地方好像都有。去看一下,再找一下刚才的路径。啊,不过呢,它指向了,大家看到没有,它有一个指针,这个指针实际上就是我们后面要讲的快捷方式啊,这个东西实际上它是同一个路径啊,所以这个是个指针指向到它了,理解了吧,实际上它指向它,所以最终我们显示的是这个指向的路径。啊,这是个快捷方式啊,这个倒不是什么问题,哎,他这指向他了。好,这是刚才我们指向的一个路径,当然这个路径呢,我们可以看到它是一个快捷方式,也就是说我们目前来讲,刚才移动的时候,实际上这个并不是它的真正路径,应该说这应该可能就是快捷方式,否则的话呢,不会出现这种现象,它不是一个真正路径,这个快捷方式的问题我们后面再说啊,你像在斯诺七上可以来确认一下啊,刚才这个命令的路径呢,我们确认一下它的路径在哪呢?是在这个us rsb是吧?啊,你看看这个路径在四七上来确认一下,那思路上都没有这个,没有这个文件,那路径它不在这,那我们也可以用type命令判P一下看看。
80:32
它是在这个呃病下面,这个S病里面没有,我在八上呢,这个地方它显示的是S病,也就说它路径它不一样,路径它不一样啊。啊,这个不用管它了啊,知道这个逻辑就行了,重要的就是我们把这个逻辑给他搞清楚,清除该清除缓存进行缓存,我们清了缓存以后呢,至少能够找到就能执行就行了啊,所以出现这种故障的话呢,你想想可能是缓存问题导致的啊,当然缓存呢,我们也可以把它彻底的全清,那这个地方呢,我们可以用个R,它可以全部清理缓存,明白没有全清啊,当然这个文件我们只是举个例子,不要随便移来移去的啊,人家该放哪放哪明白吧,不要去随便移来移去的,这个移来移去呢,容易出问题的啊。
81:18
好,这是刚才我们说的这样的一个内内容路径的执行逻辑,好,那么了解了这些以后呢,我们稍后还可以看一下其他的一些命令,比方说enable之类的able,这个呢,了解一下就行了,Enable呢,它是用来禁用内部命令的,如果说有些内部命令不想用,我可以禁用它啊,我可以用enable来禁用,不过呢,一般来讲,内部命令很少说有人禁用它默认它显示的就是所有内部命令,看到没有,这是可以禁用的,比方说我们想把这个echo命令禁用一下A。Echo呢是一个内部命令,你可以看一下,你看这是个echo echo这个命令,命令呢,它可以把一些字符串进行返回,比方说hello word,你看他可以把你想的东西在屏幕上打一遍啊,这叫回,这叫回啊,这叫。
82:15
重新显示啊,那这个eo呢,是我们将来用它经常做一些显示,尤其在脚本里面会用的,那这是一个内部命令啊,但是这个内部命令我不想要了,我想把它禁用了也行,那就可以用以able这个以内命令呢,可以来禁用这个内部命令,可以用一个杠N的选项,这个可以禁用,不过呢,话说回来,我们很少禁用啊,很少禁用,因为禁用了那内部命令用不了了,哎,那现在我们就禁用了,禁用以后呢,那这个现在还能执行吗?那我们再执行一下,诶怎么还能执行吗?这个东西是不是有点奇怪啊,他怎么还能执行啊,我都禁用它了,为什么还能执行啊?我们用enable命令,这列出的就是目前正在启用的内部命令,大家可以看一下这里面还有没有那个E。
83:07
是不是没有icon了?看到没有,在前面我们看到是有eo的。看到没有有,但是下面这就没了,真的没了,因为它被禁用了,那为什么禁用了,我这还能执行它呀,这有点奇怪呀,那我们tap一下看一看。哦,找到原因了,闹了半天,Echo,它不仅是个内部命令,同时事实上它也存在一个对应的外部命令,明白了吗?所以换句话说,这个命令它既是个内部的,又是外部的,但是由于我们前面讲过优先级的问题,所以系统会优先执行外部内部命令,对吧?如果有内部,他就先执行内部命令,他就不会执行外部命令了。理解了。当然,大家有没有想过?我现在把它再还原啊,这个想恢复被禁用的,那你可以直接写这个命令就可以了,我就把它再恢复,恢复完了以后呢,这个命令就成了,恢复完了它又成了内部命令了,那恢复完了以后呢,我们再看一下,你看它是不是又显示building了,看吧,当然有人说了,那既然你既存在内部命令又是外部命令,我咋知道你tab命令只能判断出它优先是什么,事实上它也是个外部命令,对不对,所以用什么呢?哎,这个宏宇提到的这个杠A选项,杠A选项它是可以把我们。
84:36
如果有外部命令的话,它也会给你显示出来,就是所有命令啊,这个eo如果是内部或者外部都有的话,都给你显示明白吗?诶用这种方式可以显示,当然这中间又产生了一个新的疑问,相信大家可能有这样的疑问,为什么系统提供了内部命令,同时还提供了外部命令?你不觉得有点多此一举吗?因为他俩的功能是相似的,相同的,相同的,你给他搞两遍有意义吗?
85:09
同学们能不能告诉我原因是什么?为什么系统还要提供两个功能一样的呢?啊,当然有人说,那是不是所有的命令都有内部命令外部命令都一样啊,那咱们看看嘛,比方说我们来个屁,你看它就只有什么。外部命令看到没有,哎,比方说yes是不是只有外部命令,它没有内部命令。那那那个这个echo怎么就有点奇怪特殊啊,他怎么又有外部命令,又有内部命令,为什么挑挑唯独他与众不同啊,这个能不能解释一下,有没有人能想到原因啊,所以我们学东西啊,多思考,多思考,你理解理解他背后的工作逻辑,他为什么这样,他为什么这样设计,这个是有原因的啊,这个不是说呃,平白无故,它就是这么这么设计的,有原因,这个大家能想到原因吗?
86:08
啊。诶,我看有同学已经答到点上了,就是什么?就是因为内部命令是依赖于share的。那也就是说我现在用的best she,它里面有eo,但是你换一个share类型是不是就不一定有eo了啊,比方说我换一个CSH,是不是万一没有O呢,对不对?哎,所以他没有这个口内部命令,那是不是就导致我们将来写的程序里面用命令,他就会因为找不到这个程序就会报错。而ECO呢,由于用的非常频繁,是我们非常主流的一个命令,所以这个命令可以说是我们写脚本啊,写工具啊,常用工具,这个东西是不能没有的,但是如果你要把它放到内部命令里,万一内部命令没有,那是不是就完蛋了,所以为了避免这种情况的发生,所以他就留了一个。
87:07
备份相当于留了一个备份,就是内部命令也给他放一个,外部命令也给他放一个,那这样带来的好处就是万一你这个share不支持,没关系,我这儿还有内部命令呢,呃,我还是有外部命令的路径也能用。是不是留了一个后手啊,留了一个备份,大家听懂我说的话了吗?啊,如果有内部命令优先用,没有了,那没关系,我还有外部命令给你做顶着呢,还给你做备份呢,是不是还可以用外部命令理解了吧?哎,这就是他背后的逻辑啊,当然那现在大家已经明白了,为什么这些命令没有外部命令。但是这个没有,内部命令和外部命令都有,就是因为相对来讲这些命令用的不频繁。啊,相对来讲它用的不多,理解了吧,哎,这是它的背后逻辑,好了,这就是我们给大家讲的这个所谓的内置外部密令是吧,两种类型啊,包括它的执行逻辑,好这个了解到这儿够了啊。
88:07
还有一个叫which的命令,Which的命令和where的命令很相似,Which呢?它能显示出我们外部命令的磁盘路径。啊,注意which是显示外部命令的磁盘路径的啊,外部命令的磁盘路径哎,那如果你敲E口,它也会把E口当成外部命令,显示它的外部的内部路径,如果你敲了一个内部命令,那当然内部命令它没有磁盘文件,所以它就找不着了,所以which呢,显示的是外部迷龄的磁盘路径,所以当然它之所以能显示路径来,我想大家应该聪明的意识到,它怎么找到它的路径呢?是不是也是按照pass路径一点一点搜出来的,所以你看他找不到help,所以他怎么找不到的,就是因为他找这个路径一个一个找找不着,而这个路径是不是就是我们前面看到的pass路径啊,所以which能找到就是按照pass路径搜出来的理解了吧,哎,当然了。
89:05
当然了,它默认也是显示第一个路径,显示第一个,那比方说如果我们yes yes是放在USR病里面,那如果我们把它放在别的地方,比方说我们放在哪呢?呃,放在这个us RS病下面吧。哎,这就是相当于两份啊,两个地方都有,也就是说在USR病里面有yes us RS病里面有1YES,就是两个,我这拷贝的意思啊,就是CP是拷贝,诶这个的时候呢,我们显示一下,你看它显示的是第一个,为什么显示的是S病,而并不是原来的病呢?就是因为它按照路径搜,是不是按照路径搜发现这里面有它,它就显示了,哎,他不看后面去了,当然我们应该聪明的同学肯定想到他有没有A选项啊,是不是,如果有A选项是不是,就意思是管你哪个路径呢,只要有的我都给你搜一遍,就是,这就是贪婪模式是不是,那不加A是不是就是那个懒惰模式。
90:05
明白了吗?理解了吧,哎,你看贪婪模式,懒惰模式是不是又遇到了,所以这个模式呢,以后我们会经常看到啊,这种思想实际上有的时候他不说,就有的时候讲这个东西他不说,懒惰模式,他的模式这个概念实际上都有这个理念在里面啊,在这就是可以查的啊,啊那通过这样的例子呢,大家对这个执行命令的逻辑就搞清楚了,还有一个命令用的也非常多,叫where is where is呢,这个也是能够把你的路径,外部命令路径显示出来,除此之外,它还有一个非常好的功能,就是他把这个外部路径都显示出来,还显示了这个命令它相关的文档,比方说帮助的路径。帮助的路径也给你选出来。所以这个也是非常有用的啊,这个尤其我们将来学一些软件,这些软件它相关的一些文件我也想看,你就可以用where is wherere is什么意思,不就是在哪吗?是吧,你在哪啊?诶,你想问问有一个命令相关的一些文件在哪,你就可以用这个理解了吧,很有意义的啊,Where is,希望大家记住了啊,Where is,因为有的时候我们拿到一个新命令,我也不知道它相关的文件在哪,那这时候我们就where is轻松就可以列出来,诶,省得你去东翻西翻了,哎,所以这个是很有意义的啊,Where is。
91:26
好,这是刚才我们给大家介绍的这样的一些命令啊,其他的呢,Has缓存这些用法呢,这个就不用看了啊,我们刚才讲过了RD删是吧,这个了解一下就行了,好,还有一个非常重要的概念叫别名,不过呢,这个内容我觉得很重要,所以我们稍微休息一会儿,待会儿给大家介绍,咱们缓一缓,放个音乐放松一下,待会儿回来,嗯。嗯。你们想听什么音乐呀?舒缓一点呢,还是激烈一点呢?
92:04
Happy的是吧,开心的啊,这个有热歌。这是热歌热门儿。阿迪说的什么?沙卡拉卡,这是什么东西啊,啊,绿旋风。哼。
我来说两句