00:00
接下来呢,就是我们整个学习的重头戏了,那就是实操篇,主要呢就是Linux里边常用基本命令的学习。我们也知道在Linux里边啊,并和S病那两个目录下边有海量的命令,非常多的命令,那这个一个一个学起来,其实整体来讲是比较枯燥的,所以我们这一章的学习呢,要还是要做一个分门别类,我们在这里主要分成了第七章,分成了11个小节,我们可以根据不同类型,不同类别来分别介绍常用的基本命令。那其实提到Linux里边的命令呢,啊,我们指指的其实就是都是在shell这一层的。因为我们说shell本身就可以看作是一个命令解释器,而且它为我们提供了一个交互式的文本控制台界面,我们在shell终端输入命令,那么shell就会对它进行解释。最终。
01:01
交给Linux内核进行执行啊,所以这其实就是连接外部应用和内核的Linux内核的一个桥梁,也是我们在Linux系统上执行操作的主要手段啊。那像之前我们在。虚拟机上,诶,直接在这儿去敲一个,比方说敲一个LS这样的一个命令list,列举出当前目录下的所有文件,哎,那当前我们敲一个命令之后,其实我们现在用到的这个终端控制台就是LL的一部分,它负责跟用户之间的交互,那么shell拿到了我们这个命令之后,它就会调用相应的程序进行分析解释,然后交给Linux内核进行执行,啊,那最终我们就看到显示出来当前所有的内容放在这里做一个交互式的展示啊,这就是最简单的命令的调用。整体的过程啊,那这里边我们会看到啊,在这个过程当中,我们说的是shell,那这个shell到底是什么东西呢。
02:04
其实啊,在Linux当中,Shell的具体实现也是可以多种多样的啊,那么一般情况在我们现在的这个发行版本里边,一般会有一个。并下面就会有一个叫做SH这样的一个命令,哎,那所以我们可以认为它就是整个shell命令的一个入口啊,我们整个那个控制台啊,打开的交互式界面,其实执行的就是这个SH命令,那其实最早的版本呢,我们知道Linux它是源于unix的嘛。那么最早的版本在unix里边,它的这个最终解释执行的这个程序啊,是叫做。Born。Shell。这是unix里边的版本,呃,不过呢,它的特点啊,就是可以进行功能非常强大,非常灵活的shell编程,但是呢,它处理起跟用户的交互来就会稍微的差那么一点。
03:05
所以后来呢,呃,Linux它就是在这个Bo shell的基础上,发展出了一个新的shell控制控制终端啊,那这这个呢,就加了一个again,在中间加了一个again。Born again shell啊,所以就相当于它的一个加强版了,最终呢,就截取了它的几个首字母,一个B,一个A,然后一个SH。诶,那所以我们当前一般情况下,这个大多数Linux发行版他用的shell。就叫做bash Sha啊,这就是我们直接使用的这样一个交互式的啊命令解释器程序,呃那呃,当然了,本身bash的功能是很多的啊,而且也整体就显得比较臃肿,比较复杂,所以呢,有一些发行版里边就希望对这个bash做一些简化,做一些其他的改进和优化啊,那比如说像这个的B,大家还记得之前我们讲发行版的时候啊。
04:05
有一个非常有名的系列就是的。然后。另外一个用的非常多的发行版。乌班图。就是基于the wind的,那么这一系呢,他们用的这个bash啊,他们用的这个shell解释器。名字叫做dash。Dash因为是the ban系列的嘛啊,D系列的啊,Dash,所以乌班图也是从他的六点十版本之后啊,他默认的这个晒药工具就是dash啊,那当然了,其实还有其他的一些晒药工具啊,比方说这个CHSH啊,这也是一种这个晒药工具啊,我们这里边呢,当然就不管那么多了,我们就直接使用这个bash就可以了。那我们现在的系统是3TO7啊,那当然系统本身默认的shell就是bash啊bash,那这个其实在虚拟机里边,这个我们也可以看得到啊,比方说我们到这个计算机里边去找一下,因为我们知道所有的命令啊,基本上都在BS病这些目录下边嘛,我们到bin下边去,诶我们可以点一下这个放大镜,或者是直接CTRL加F做一个。
05:20
查询查找,哎,那如果我们直接敲一个SH的话,就会发现确实是有这样的一个命令的啊,这其实就是我们整个这个shell解释器的一个入口,那么这个SH我们发现它有一个小箭头,很明显这是一个链接嘛,我们看一下它的属性。就会发现它其实是链接到了BA啊,所以在3TO7下边默认的当前的这个shell工具其实就是bash啊,那当然了,我们直接找的话,肯定可以找到bash对应的这一个程序啊,当前的这一个命令是存在的,那当然了,我们看这里也有这个CSH,当然了它也是一个,这也是一个链接,它链接的到的是TCSH啊,所以这里边有不同的版本,我们平常用的主要就是BA啊。
06:08
想看这个的话,我们也可以在命令行里边来做一个展示啊,啊,那命令行里边的话,我们当然就是用LS命令啊,去看一看,并目录下边到底有什么样的东西啊,我们把这个目录完整的打出来,前面呢加一个杠L参数,这就是表示把下边所有的项目,所有的内容,要每一个都用一行把它的完整信息列举出来,这样我们能看到更多的东西啊,那后边呢,加一个竖线,我们说这是一个管道输出啊,GRSH就是要筛选出带着SH的所有项信息。哎,那我们敲一下这里我们可以看到啊,我们关心的当然就是本身这个SH了。很显然可以看到它直接链接到的是bash这样一个应用啊,当然我们如果网上去找的话,也可以找到bash也在当前的并目录下边啊。
07:03
所以接下来呢,我们所有的命令其实就都是在大里边去执行,去解释。那前面我们也说了,B和目录下边有大量的命令,非常非常多,这些命令需要我们分门别类的去学习,不过这个命令太多了诶,即使是我们分了很多类去学,也不可能把所有的都记住,就算是都讲到未来,我们也不可能全记住啊,所以其实我们这些内容的学习,学习命令的这个过程应该怎么学呢?重点是要去熟悉。不同的类型,然后通过熟悉命令去掌握Linux系统的基本原理和它的一些基本的操作方法,啊,关键是掌握方法,那具体的那个命令如果要没记熟,诶,或者说甚至遇到了一个命令从来没见过,这个时候怎么办呢?诶,其实我们只要找一个类似于命令大全这样的一个手册,然后去查一查,就像查字典一样去查一下不就完了吗?这就是我们的一本工具书嘛,随时用随时查就可以了,谁都不能保证把所有的命令都记住啊,那所以这个时候呢,像Linux这样一个开源社区,它对于程序员非常友好的一点,就是他提供了非常方便的命令手册,而且我们的调用方式呢,你不用去,诶到网上去再单独下啊,或者去买一本,不需要他直接提供了这样一个命令啊,就是一系列的帮助命令,最主要的呢,就是man man啊这样一个命令,它其实就是我们的一个命令手册,哎,那所谓的这个man,我我们不不要认为这个是这个是男人的意思啊,它其实是又是一个缩写了。
08:48
我们知道ma nual。Menu这个其实就是手册的意思啊,这其实就是Linux系统里边的一个,呃,在线帮助文档啊,它里边的内容其实是非常多,非常丰富,可以说是包含了Linux使用的方方面面的问题。
09:08
它里面其实是分册去管理的啊,里边主要应该是分了九册,包括各种各样的内容,还包括我们常用的这个所有的可执行程序和下命令啊,包括这个所有的系统调用库函数啊,文件格式,还有这个什么像呃内核历程啊等等等等啊,所有东西其实都可以查得到,这就是一个非常全面的技术文档。呃,那它具体的使用呢,也非常简单,我们想要查看哪个命令的时候,就直接使用一个man,然后后边加上那个命令的名称,就可以得到他的帮助信息了。啊,光这么空口说,我们接下来还是这个直接在控制台里边去试一下吧,啊,前面我们最熟悉的就是那个LS嘛,呃,列举当前下边所有的内容啊,我们看一下这个官方手册是怎么说的,直接man,然后LS我们看一眼。
10:01
哎,这样的话就又进入到了这样一个页面里面,我们看到进来之后,这就是一个标准的说明文档了啊,说明的就是LS这个命令啊,那前面有一个内容啊,首先我们说它主要的要做的事就是列出当前目录下的内容,然后有一个提要,提要是什么呢?其实就是当前命令的一个基本使用语法啊,就是首先LS。我们用的时候啊,前面写LS,后面呢可以给出各种各样的选项,这个选项是什么呢?一般就是后面要加一个杠,然后给一个参数啊,其实就是这个作为一个选项放在这后面呢,也是可选的,可以加上这个文件名,这就是LS的一个基本用法,然后一般我们要看这个文档,看什么呢?主要是看下边的这个描述,Description。这一部分这就给我们列出了。所有有具体。参数的含义这部分基本上就包含了这条命令的所有用法了啊,所以我们基本上就看这个可以看得非常清楚啊,而且你像这个文档这已经汉化了啊,就整个这个中文的显示还是比较明确的,那比方说像下面这个有很多一杠,然后加各种参数,那如果说我们想往下看,想看下面的内容怎么办呢?诶,当然了,你可以用下。
11:18
箭头啊,用这个方向键上下,这就可以一行一行的去挪,如果我们嫌这个挪的太慢的话,直接按空格,就是直接翻页,诶直接翻到下一页,当然了,我们直接按这个配置到。也是可以的啊,它如果往上翻页当然就是配up啊,这个都都很简单,跟在V里边的操作也都是一样的啊。或者还有另外的快捷键啊,比方说我们可以按这个F就是朝下翻译啊,那如果按B的话就是朝上翻译啊,这其实就是都是非常简单的一些基本操作,一般我们就直接按这个空格啊,向向下翻页就可以了,我们看到这里边有各种各样的用法,这就有一个杠L参数,前面我们不是用到了吗?杠L是什么意思呢?哎,那我们看它其实就是相当于后面这这其实就是它的这个全称啊,这是一个简写。
12:08
后面这是一个全称,你用哪种方式都可以,它这个全称就是杠杠,Format等于long。也就是用。长的显示格式把它展示出来啊,意思就是说整个一行啊,它要显示什么呢?啊,那就是除每个文件名之外,还要增加显示很多信息,包括文件的类型,权限,应变接数,所有者的名称,组名大小等等等等啊,所以我们看上面就是一个文件,哎,就直接就一整行全是他的信息啊。这就是我们前面用过的那个LS-L的一个解释啊啊,我们想看的话就可以看得很清楚。那如果说我们想要退出这个页面怎么办呢?这其实按的非常的,就提示的也非常的明确了啊,直接按Q就可以,Quit就可以退出,所以这个时候我按一下Q就又退到了我们外边的控制台界面,所以整体来讲还是非常非常简单的,就直接man man,然后加一个命令就可以了。
13:04
啊,那当然了,之前我们还用过一个切换当前目录切换路径的命令,叫做CD change directory啊,那我们也可以man CD,我们可以看一下。诶进来之后大家会发现,诶这个好像不太对啊,这明明这这不是CD啊,这它直接是bash的解释对吧?诶这我们说当前我们这个本身的这个命令行啊,这个shell解释器就用的是bash嘛,它这个根本就不跟我们说CD是什么,它直接解释bash了。啊,这看起来这是一个笼统的统一的解释,没有CD的具体解释,这是怎么回事呢?啊,其实这主要就是因为CAD这个命令跟LS还是有所区别的。啊,就是LS这个是我们普通使用的这些一般的一般化的命令,而CD呢,哎,它是我们当前在shell里边的一个内置命令,它是内嵌在里边的。哎,这就涉及到另外一个概念,这就是所谓的。
14:05
内置命令和外部命令的概念,什么叫做内置命令,什么叫做外部命令呢?呃,简单来说就是有一部分命令它是直接内嵌在shell里面的啊,一般情况这都是一些比较简单的啊,就基础功能的这些系系统命令,比方说我们提到的这个CD。啊,那另外还有我们记得之前我可以直接敲一个exit。直接退出当前的控制台,退出当前的这个晒环境,哎,那这个exit其实也是一个。所谓的内嵌命令,或者叫内置命令,那那这种内置命令它有一个特点,就是它是直接写在BA源码里面的。嵌在里边了,诶,所以它跟bash就融为一体,系统整个启动运行之后啊,Bash加载shell启动了,那么所有的这些命令相当于也就加载了,它就直接常驻在系统内存里面了。
15:01
哎,那所以这一部分命令就被认为被称为是内置命令built in命令command,那相应的呢,其他的命令就需要从外部去做调用了,它就不是拜里边嵌进去的一部分,那另外的这些命令呢,肯定就是啊,功能就会比较多,复杂性也比较高,数量就非常庞大,他们属于是系统里边的使用程序了啊,所以呢,当然启动的时候不会一下子就全加载到内存里面去,就使用的时候再去调用这一部分呢,就叫做外部命令。当然了,外部命令的执行也是由shell控制去解释的,就像我们刚才说的这个LS,这就是一个外部命令啊啊,那所以我们就会发现了这个,当然了,不管是系统命令还是外部命令啊,一般情况就是内嵌命令还是外部命令,一般情况他们都是放在啊,就像这个病目录啊。目录啊,都是放在这些下边啊,当然我们知道这本来也是一个链接嘛,他们其实都是放在user下边的啊,User-B杠,那所以本质上来讲,我们可以认为就是把他们一视同仁,都当做命令去用就可以了。
16:13
那当然,在这里我们就会发现,那怎么判断一个命令到底是系统的内嵌命令还是?当前是一个外部命令呢,哎,这里又有另外一个命令来判断它的类型。叫做type,然后就是可以用type这个命令去判断它到底是什么类型,我们可以看一眼啊,比方说这里直接Type Cd,哎,我们看CD是shell内嵌啊,也就是说它是一个内嵌命令,内置命令,那如果要是type ls的话。诶,这个就没有说他是内嵌,他只说他是什么什么的别名啊啊,那或者我们还可以举另外一个例子,比方说后面我们会讲到啊,做用户管理的时候,我们可以增加一个用户,比方说我们叫user a。这也是一个命令啊,就添加一个用户,我们看他就说user a是哦,是在user s病下边的某一个命令,所以它当然就不是内置了,所以我们只要看到啊一个内置命令,它就会显示C这个某一个命令是是养内嵌,那如果显示别的,那就那就是外部命令了。
17:18
啊,那当然我们也可以看一下这个。Type。刚才说的exit exit,我们看它也是shell内嵌好,另外常用的还有一个。内嵌命令啊,内置命令叫做history。我们可以看到它也是那些名,哎,这个history是干什么的?可以提前说一句,History直接一敲就可以。它是历史的意思吗?一敲我们就会发现,这就是我们之前敲过的所有命令,就会直接列举在这里啊,这就是history的一个一个用法啊,那这个整体来讲还是比较简单的。呃,那当然了,前面我们提到这个man,它本来不是一个大而全的手册吗?那你要这么说的话,如果是前面我们说CDCD是一个内置命令,内置命令难道就看不到了吗?其实也不是啊,只不过内置命令你就不能直接敲CD了,而要在后边加一个杠。
18:16
哎,然后再看CD,我们看一下好,我们看到这里边对CD它有不同的解释。前面我们说过慢这个手册啊,这个用户手册是非常非常庞大的,它是分册来管理的,诶那这里面除了在这个一就表示是第几册啊,除了在第一册里边有一个CD,然后我们看这个CD的解释,它直接就就就去解释这个bash了,对吧?Bash到底是什么东西,它就是什么GU born again shell,我们说这不就是BA吗?那那后面除了这个解释之外,还有什么呢?在第三册里面还有解释,另外在这个1P这一册里边也有解释,这个P是啥意思呢?哎,P就是前面我们看到的有一个叫做。
19:00
Pas。这样一个标准啊,啊,就是这样一个标准,这其实是基于unix下的一个操作系统,可移植性操作系统开发的一个标准协议啊,哎,这是所谓的那个IE。有时候说是I trip对吧,呃,这个电器电子工程师协会啊,为了提高我们这个操作系统下软件开发的可一致性,兼容性,提出来的这样一个开发标准啊,就是在这个标准下。对应的一些一些命令啊,标准化的命令,那所以我们看这其实这就是unix下的标准命令啊,我们看一下在这个EP下边是什么样吧,那如果想看这个EP下的CD解释怎么看呢。Man,那就后面跟一个EP,然后CD。诶,我们看这里就可以看到了,当然这个我们看它就是纯英文了啊啊这个如果看的我们看这就是POS啊下面的一个标准的解释,尽管我们看这个英文可能会稍微痛苦一点,但是一看也知道它不就是change the working directory吧,改变工作路径,改变工作目录嘛,啊其实还是比较简单的,那当然了,我们也可以看上面这个啊啊这个我们不管它是什么,TCL我们知道这是在第三卷,那可以直接慢3CD。
20:16
诶,我们看这个是中文的对吧?啊,这个是改变工作目录啊,我们看这是叫TCL beauty啊,内置的这个命令啊,只要这么就是我们大概的知道这种用法的话,就会发现这个其实查找还是很方便的啊,慢这个命令其实是能把所有的东西都能查得到,当然了,呃,这个多说一句,就是那慢本身。它也是一个命令啊,哎,是不是我们也可以直接这么去查他呢?哎,确实是的啊,我们可以直接man man套娃啊,套娃一下我们看啊,它就解释了,那它是个什么东西呢?哦,它就是个格式化并显示在线帮助手册界面啊,也就是我们所谓的这个在线帮助手册页。
21:00
这就是他的一个含义。所以整体来讲,只要使用这个慢命令,我们可以看到所有的帮助信息。当然了,刚才我们也看到这个慢命令啊,打开的那个页面啊,里面东西太多了,而且那个就看的很复杂,有没有更加简洁高效的版本呢?我就想看他那参数到底怎么用的啊,那也有这个版本,这个版本就是所谓的help命令,我们可以看到就是所谓的help。它的用法也很简单,就是跟man一样,它就是help,后面加上一个命令的名称就可以了,但是要注意呢,这个命令它就是只能去获得shell内置命令的帮助信息。啊,也就是说我们这儿啊,如果去help,我们前面说CD是一个内置命令吧,你help CD这是可以的,我们看直接就拿到当前这个CD的相关信息了,哎,它怎么用,然后它的描述是什么,Changes shell working directory,然后下边,哎,它的这个可选项给什么参数,这就都列在这儿了,啊,当然了,它的缺陷就是纯英文。
22:04
我们如果看的话,可能呃,如果要是英文不够好的话,可能还得这个再再翻译翻译啊,把它这个抄下copy下来,去看一下翻译的内容啊,那呃,另外还有一个很大的缺陷,就是说它只能针对内置命令,那假如说外部命令呢。LS不是一个外部命令吗?哎,那我们看一下,哎,他就说没有与它相匹配的帮助主题,那就没法看了啊,哎,那所以在这种场景下,我们就知道大部分应该都是外部命令啊呃,内置的肯定是少数嘛,那这个就没法用了,那怎么办呢?诶没关系。外部命令一般又给我们提供了另外一种简洁化的帮助信息,诶是什么呢?就是命令后边直接加一个杠杠help参数。哎,这相当于是这个命令,它内部给我们实现了一个参数来显示它的帮助信息,我们这样的话也可以看到,诶你看就是当前这个杠LS到底该该怎么写,但是他这个汉化的不是特别好,有些翻译了,有些没翻译啊,但是比比前面的那个help,直接help可能会稍微的看起来会舒服一点啊,所以我们看到诶这个LS怎么用,下边的这个参数怎么用,这里面其实是说的非常清楚。
23:18
啊,所以一般情况我们使用这个命令的时候,可能就是要不就是直接使用man看这个最全的命令啊,要不就是某一个命令后边跟上一个杠杠help,当然前提是这是一个外部命令,这样的话我们就可以看到它的帮助信息了啊,所以整体来讲其实就是主要就是这些用法。啊,那了解了这些帮助指令之后,那接下来学习的过程当中,我们就不需要把所有的命令都背会了,对吧?这样就轻松多了,你不记得的时候去查一下就完了嘛。啊,当然了,如果大家觉得这个英文实在还是还是不习惯啊,看的比较痛苦的话,那也没关系,我们现在这个网络上什么东西都有,只要一敲Linux什么命令在网上直接一查,所有的资料都可以看得到啊,当然了,最好是还要跟这个就是比较正式官方的文档对比一下,因为网上有些信息可能不太准确啊,这个大家多查多练应该就知道了。
24:16
啊,那这部分最后呢,我们再来说一下一些shell当中常用的快捷键快捷方式啊,其实之前我们也大概用过,就比方说这个CTRL加C,像前面我们那个做PIN的时候啊,呃,跟另外一个主机做这个PIN连接操作的时候,我们在虚拟机这边ping主机的时候,诶,发现它的那个连接的信息是不停的在跳,不停的在跳啊,不停的获取到这个数据包,那那怎么样停下来呢?那就直接CTRL加C把当前进程就停掉了啊,这个就是一旦发现你想直接把它停掉的时候,直接按这个就可以。那另外还有一个常用的快捷键叫CTRL加L啊,就是清屏,直接把我们当前的屏幕给清掉啊,因为我们经常就是看着这个,呃,现在是还在文档里面啊,我们按Q先退出,我们看现在这个信息太多了,太乱了,看着不舒服,想清掉怎么办呢?诶那一种方式就是直接按CTRL加。
25:12
L啊,那当然了,这种方式其实本质上并不是清清屏啊,它只是把我们这个显示的界面往上推了一下而已啊,那或者也可以用另外一种方式,就是可以用clear啊,这个本质上都是一样的,另外还有一个就是说我们可以整个把当前的工作区域全部彻底的清空,这个命令叫做reset。啊,这个reset其实本质上是把当前的bash,当前的shell环境全部重新启动了,重新初始化了,这个时候你要再往上翻,哎,就没有了,这就看不到。所以这些都是比较常用的一些方便的快捷操作,另外还有一个就是要善于使用table键,那一般情况他就可以提示接下来我们可以补全哪些信息啊,而且就是说我们打的时候,有时候你你敲这个一个一个字母有可能敲错嘛,让它自动补全,这个更加方便一点,就假如说有多个。
26:08
就像我们这个LS的时候,哎,比方说LS下边啊,有很多这个内容啊,如果说我们现在想为什么一个引你手的话,诶,你看我直接敲一个I,后面就自动补全了,如果它有相同内容的话,它也会全列在下面,让我们去做选择,所以这个还是非常方便的。那另外还有一个就是上下键啊,就是我们看在这里直接按一个上键,诶,这就是刚才我们已经说过的命令,再按,就是之前又说过的命令,不停的按上,可以回溯之前输过的命令,快速重新输一遍,当然也可以按下键啊,往下走,这这就是非常常用的一些快捷操作,也是我们后续学习命令的一个基础。
我来说两句