00:01
好,我们来看下一个命令,那下一个命令呢,是一些符号类的命令,那其实在我们之前的课程中呢,其实也有提及,比如说管道之前我们是介绍过的哈,但是没有介绍,刻意介绍这个管道的含义,那在介绍这个管道命令之前呢,我们可以看一下这句话哈,那其实聊到这里呢,我们就聊到了这个Linux的一个设计的哲学,那我们会发现Linux并不是把所有的命令设计的大而全,而是小而精啊,那它这个设计的理念呢,也是非常好的哈,那我们举个例子,比如说LS是否可以满足我们所有的需求呢?那大家都知道L是查看当前目录下的这个文件或者是文件夹,那我当前输入LS以后呢,大家可以看到它的输出内容还是很多的啊,那我是否可以做一个过滤呢?那其实是不行的哈,LS呢,它只能啊显示出当前文件夹下包含哪些文件或者是目录,我们可以加一个管道啊,用过滤的方式,过滤的方式,譬如说我过滤出嗯,中间带a ch的这个文件。
01:14
大家可以看到啊,这就过滤出了这个,嗯,包含A的这个文件的文件名,那它的一个工作原理的话,其实就是LS作为啊,前一个命令作为输出,通过管道呢,传给下一个命令。它这个gra a ch是的LS输出的基础之上的一些内容,所以呢,这里管道就是前一个命令的输出变为第二个命令的输入,那管道是非常常用的一个场景哈,那比如说我们这个讲义中有介绍到,比如cat一下PSSWD,对吧?那我想查看当前这个文件的第一列,并把它写到一个文件中,写到这个log中,那我们看一下,其实就是cat p s s WD,然后加cut命令啊,Cut命令杠D以什么作为分割,以冒号作为分割,显示第几列啊,显示第一列大家可以看到,那这样一来呢,我们在查看这个PSSWD文件的时候呢,我就显示出来了它的第一列,这个第一列呢,是一个不规则的哈,它是存放的用户名,紧接着呢,我可以通过下一个符号把它写入到log中。
02:31
啊,写的写入到log中,那我们cut下log,同样可以看到这个,呃,Group后的一个,呃,Cut后的一个结果文件,那这是管道,同时呢,管道其实还可以连用,那比如说我。Echo一个这个啊hello hello word,那前一个呢是带大写的,后一个啊也是带大写的,那我cut一下杠D。冒号杠F1,然后用TR命令。
03:08
那这句话什么意思呢?这句话的意思也就是把当前的大写替换成小写,那我们可以看到之前这个输出的时候呢,啊,先加第一个管道,我们看它输出的内容是什么啊,我echo了一个这个字符串啊,通过管道传给cut-D啊,然后cut-D呢,以冒号作为分割F1,它就会显示啊这一列的内容,对吧?然后紧接着呢,我们再加一个管道。把其中的大写转换成小写,那TR这个命令呢,就是把前大写替换成小写的意思哈,我们回车大家可以看到刚刚输出的时候呢,首字母还是大写的,现在全替换成小写了,那如果要是把小写替换成大写呢,就是把这个两个符号调换过来,但是这里边的知识点的话,是我们这个管道呢,可以无限的延续下去啊,无限的延续下去来最终实现你的功能,所以我们再回到第一句话的话,就是啊,它的一个设计的理念就是LS,比如说LS这个命令它是不能满足所有的需求,但是呢,它可以通过这个管道的方式啊,加很多的管道的方式来最终满足你的需求,而每个命令呢,它设计的都是非常小而精的完成它自身本身的一个功能,那这也是Linux设计中的一个啊,非常强大的一个地方,也是我们在做软件中的值得去借鉴学习的一个地方。
04:43
嗯。好,那下个命令呢,下个命令是两个按符和这个竖线啊,这是什么意思呢?其实我们在作为Li Linux管理员的时候呢,最主要的是学会偷懒啊,当然这个偷懒呢是打双引号,那我们能一行实现的任务就避免多行写,多行多个命令来实现,所以呢,这两个命令呢,就可以把多行的一些命令呢,转化成一行来写,那用在什么场景下呢?我们来看一下。
05:16
首先LS回到数组数RS。两个安的符的意思呢,是代表啊前一个命令的,如果执行成功了,它就会执行下一个命令啊,执行下一个命令。譬如说我LSB这个文件,大家可以看当前有没有B文件哈,没有B文件对吧,我打出来如果这个B文件存在的情况下呢。我就打印出后边这个text回大家可以看到当前这个B文件呢,没有打印出来,所以它报错了是吧?所以它后边这句话呢,也没有打印出来,那我LA这个文件呢,大家可以看到当前呢,是包含这个当前目录下是包含这个A文件的哈,所以我呃两个and符eo text的话肯定会打印出来,对吧?它会输出啊第一个命令的结果把A显示出来,同时呢,按德符呢,会判断前一个命令输出成功的情况下,它会执行打印text啊,那两个竖线呢,其实刚好跟这个命令相反,也就是说我LSB这个文件的时候,当前是否不存在对吧?如果不存在的话,我就打印一个。
06:43
Not exist啊,Not exist,我们看一下啊。看报了吧,就说LS当前这个B文件的时候呢,它没有存在,那这个符号呢,判断这个前一个命令呢,输出错误了啊错误了它就会执行这句话,那我再执行一下A呢LA呢,那A文件当前是存在的,所以后边这个这一句话呢,肯定不会爆出来哈。
07:10
看,那当前呢,它就只显示了A这个文件,后边这句话呢,是没有执行,所以在Linux下呢,这两个命令是相互反应作用的,同时呢,它可以做一些偷懒的动作,我们可以把实现多行的一些命令呢,啊是以一行来实现。那这是这两个命令的一个应用场景,好,谢谢观看,如果你喜欢这个视频,也欢迎在视频的下方点赞收藏、分享和评论,那你所需要到的课程讲义课程表会在视频的下方,敬请查收。
我来说两句