全文概述:引入“ > ” “ | ”等新的符号在命令行的作用与应用,同时学习了sort、find、grep、tee等指令,同时引入Pipe(通道)的概念。熟悉文件的操作与框架。至于此关于Linux指令的学习已经基本告一段落。
本节是一个承接上一节笔记的一章,如果没有看过(课程2)的可以看完再来,本章的许多内容都是基于前面的,之前谈及过的将不再重复介绍。
1.回顾上一节课的内容与拓展
ls:(上一节课只是使用这个作为一个简单的查询,并将其输出可视化。)
而这一节课便是将其输出的内容保存至文件里。
格式:ls >存储路径/文件名(个人在使用的过程中如果遇见路径中没有对应存储的文件的时候,会自己生成文件(而你所指向的文件名将会作为你的新建文件的名称而存在))
参考运行的结果(整体思路:【1】创建目录myTxt【2】查看主目录【3】查创建的目录是否可以进入【4】将在主目录ls的结果输出并且保存至于myTxt中的【5】进入myTxt目录中并且查看目录中所存在的文件(是否有我的xuyun.txt文件))
注:整体思路与视频内容差不多一致但是命名效果有所不同。
(接下来的其实都是在温习操作)
使用小技巧:当在终端使用的Linux指令时,如果本次需要输入的指令与之前的很像,可以利用键盘上 ↑ 和 ↓ 两个方向键来寻索历史指令。
当我利用ls针对不同的进行操作的时候,我们要考虑在存储的过程中追加、覆盖等操作的时候,我们需要处理的
追加:(将得到的输出内容叠加到刚开始输出得到的文件中)
ls Desktop>>scratch/myDir.txt
(分析:ls Desktop的结果追加存储至myDir.txt中)
ls Desktop>scratch/myDir.txt
(分析:ls Desktop的结果覆盖并且存储至myDir.txt中)
(注:由于整体使用的文件与路径有所区别。所以等一下的图片会存在有所差异)
我在自己复现的时候的差别:
覆盖:
追加:
整体的情况是表现在如上,本人也其实在这里结合了之前课程的一个注意控制思路优化与结合,与之余控制方法略微不一致。但是基本知识还是一致的(上面也犯了一些小小的错误,各位大佬应该可以一眼就看出来了的【!花花 !】)
12:41,开始讲关于nano内部编译器的用法
先按照步骤创建好以下的文件。(由于后续需要在txt文件来体现Nano的外部操作,所以我推荐可以独立创建一个文件夹来丢这些东西)
nano months.txt
months.txt内容:
December
January
November
February
October
March
September
April
August
May
July
June
nano myCar.txt
myCar.txt内容
honda civic
Nissan Pickup
Audi 5000s
Mercedes 450 SL Convertible
Mercedes 500 SL Convertible
Jaguer
Humvee
Toyota Tacoma
Toyota Tacoma
Toyota Camry
nano fever.txt
fever.txt
97
98
99
100
96
101
95
105
当你按照我的做法把东西弄出来了后可以尝试使用 cat 将其打印层出来看看内容是否正确(可以不做)
接下来我们将了解一些对于文件的操作指令
sort:(对指定的文件进行排序)
格式:sort [ options ] [ files ] (在options为空白的时候默认为按照字母正序排列)
对指定的files的行进行排序。对每两行中指定的 字段进行比较,或者如果没有指定字段,就以机器比较序列按字节进行比较。详见如下:
采用sort [ files ]后flies本身并不会发送变化,在利用cat查看后依旧是刚开始的文件格式。(通常采用到上面的【>】与【>>】进行输出信息的另外存储处理,整体处理情况与之相似,知识点整体还是相通的)
注:到29:00左右整体都是在讲关于sort的使用与复合使用。
(如果没有保存与执行视频中的相关指令,在运行下列代码的过程中可能存在出现的结果缺失或者输出过程中存在错误)
整体的代码如下:
接下来使用的是
find:(用于查找特定的文件集合)【非常有用的一个指令,由于功能的强大所以其出现的功能多,占了书籍中的6面之多,所以我只会在末尾提及全部,在此处我只有解析出现的指令并且输出】
find ~ "fever"
find ~name "fever.txt"
find ~name "fever.*"
find ~name "*.txt"
find ~name "*.txt">myTextFiles.txt
##(将find所有的txt文件输出的至myTextFiles.txt中,可以在myTextFiles.txt前面添加路径,不添加路劲的情况下会保存至于当前的文件夹中)
在这里添加一个新的概念,如果要将文件A的内容输入于至于文件B中并且要其输出作为函数的调用信息,这个时候需要用到通道的概念。
这个时候借助一下AI来简单的了解以下
然而课程在这里本身主要在讲的是Pipe
其实我本身对于Pipe也不是太了解,对于老外(视频中的big佬而言)Pipe就是 “ | ” ( 管道符)。
ls |sort -r
ls |sort -r>sortedDir.txt
(分开使用)
cat sortedDir.txt
ls |tee sort >sortedDir.txt
(分开使用)
ls |tee sort >sortedDir.txt
(分开使用)
cat scartch/myDir.txt
cat scartch/myDir.txt |tee scratch/myDir2.txt scratch/myDir3.txt
这里针对文件的操作比较多容易混乱,但是可以使用资源管理器那里进行可视化处理,其实东西都在文件夹里面,熟悉命令行操作是必要的一个技能(如果对于Linux整体感兴趣,为了节约资源的情况下,肯定是最终要使用到无头模式)
grep:
(grep会查看一些关于隐藏文件的)
在~/scratch 目录下(由于我的整体不是一模一样视频的情况的,所以只能当教材的一个笔记参考,可以按视频操作来进行)
grep Audi myCars.txt
grep audi myCars.txt
grep -i audi myCars.txt
到主目录下
cd ..
开始grep
grep -r honda ~
(再次认识一下关于ls的用法)
ls -a
ls -s
往后接下来的几个课程将是简单的Python的基本信息的认识(如果有一定的Python编程基础可以适当的快速的过一下,不过整体是转化到了关于在命令行中编写并执行代码)(算是下期预告)
find:
grep:
tee:
注:在这个课程之后,我会尽可能讲课程中的命令行指令存储在代码至中,方便大家直接拷贝使用(太过于短的我将不会列出来),而且针对文件的内部我也会同样进行相关的操作,但是也希望大家在合理的范围内,针对已经学过的指令去大胆的尝试(不过不要乱做死,做死之前先备份镜像 !!! )