1. cal指令:
我们的cal指令有日历的意思
看上面,我们输入一个cal指令,可以查看当前月的日历,
我们给cal指令后面加上 - 3,他就会显示这个月为中间的三个月的日历,但是-4 不行,-5 也不行。只能 - 3。
我们也可以是给他后面加上2025,他会显示出整年的日历,
当然其他的年份也是可以看到的:
2. find指令:
find指令是我们用来在我们的树状结构中查找文件用的。
比如看上面,我们想在家目录里面查找名为test.c的文件,他就会给我们所有路径下有test.c的文件。
我们看这个,这个*表示的是通配符,表示可以是任意的内容,但是后面的结尾必须是.c结尾
所以我们就会看到所有.c结尾的文件。
查找的方式我们就是
find 后面跟上路径,然后再跟上 -name 再跟上我们要查的文件就可以了。
我们说,Linux下一切皆是文件,所以我们敲出的指令也是文件。
看我们上面的图片:我们的指令的本质:是Linux系统下固定目录下的可执行文件。(这个固定目录是usr/bin)。
所以我们不用怕这个指令,它本质上就是在我们的usr/bin/目录下存在的二进制文件罢了。(这个二进制文件和我们自己编写的C语言代码没有什么区别)。
所以我们上面学习的指令的目录都是我们的usr/bin/,
3. which指令:
Linux除了给了我们可以用来查找文件的指令find,也提供给了我们一个专门用来搜指令的指令which指令,
which这个指令会给我们显示我们要查的这个指令他的全路径,
我们看上面的图片:我们使用which指令,查看我们之前学习过的指令,我们得到结果,都是再usr/bin/路径下的文件。
所以:
我们说我们的which是专门用来搜索我们的指定的命令的,你使用find也可以搜索,我们说find可以搜文件,我们的指令就是文件。
4. file指令:
file命令是用来查看一个文件详细类型的,
我们看上面的图片:我们查看各种文件,我们用红笔圈出来的executable表示这个文件是一个二进制可执行文件,
5. alisa指令:
alisa指令可以给我们的指令取别名:
我们来看上面的图片:我们给我们的ls -a -l指令取一个新的名字zhangsan,,然后后面我们想要使用ls -a -l指令的时候,我们就可以直接使用zhangsan就可以。
当我们不想要zhangsan这个别名的时候:
我们直接把空赋给zhangsan,这时候zhangsan这个别名就指代不了我们的指令了。
注意:
在我们的Linux下,我们执行指令会优先执行我们的别名:
我们再看上面的图片:
我们给我们的指令取上别名,我们刚才说我们的指令是我们的Linux目录下的可执行文件。存在于磁盘上的。
那我们的别名是不是呢?我们ls 后面跟上固定目录试一下,不行,
别名我们现在不推荐使用,当我们对Linux比较熟了,这时候我们可以使用别名,
6. grep指令:
grep指令是用来进行一个文本处理的命令;这是一个行文本过滤工具;
它可以根据一个关键词,把一个大文本当中包含该关键词的行,以行为单位,把行过滤出来。
我们看下面的图片:
看上面,我们之前学习了管道,最开始是cat后面跟上管道,表示我们要cat查看文件内容,我们就可以把hello.txt文件里面的前2100行的后100行提取出来,然后我们现在学习了grep,我们就可以再加上一个管道,提取这些数据的包含有‘8’的行。
我们看上面的图片,上面我们已经知道了,现在我们假如有了新的需求,我们现在的要求是把含有关键字’8‘的行不显示出来,其他不含有关键字’8‘的行显示出来。
看我们上面的图片,我们使用一个 -v就可以解决,这个v的意思就是reverse,表示逆转。
我们继续看:看上面的图片,我们后面改成 -n的话,我们的结果就会加上一个行号,表示他是第几行的,(要注意,这里grep给你的行编号,他是在grep的视角上看他收到了多少内容,我们的前面的管道并起来给到我们的grep的时候就是十行数据,所以)。
然后我们改成 -nv的时候,这时候就是没有含有关键字’8‘的行都被成列出来
还有就是:我们的grep对我们的这个大小写是比较敏感的。
但是如果我们不想要让他对大小写敏感的话,我们可以加上 -ni,这时候我们看上面的图片:原本我们过滤Hello的时候,我们就只能找到Hello,大小写区分开,然后我们加上 -ni的时候,这时候我们打上Hello,这时候所有hello不论大小写这时候就都出来了。
我们上面的是加了 -n的,其实不一定非要加上 -n,-i 就可以表示你要忽略大小写。
这三个东西怎么交叉都可以:
我们看这个,三个一起拼凑到一起,表示我们带上行号并且忽略大小写,并且有关键字的行我们都不要。(顺序不要紧,可以自由的匹配)
那么什么是我们的grep的主要用途呢?
比如当我们查看日志的时候,日志的话内容很多,有时候我们已经知道我们要查询的文件的文件名了,这时候我们就可以直接使用管道加上grep ’关键字‘ ,这时候我们就可以直接过滤出我们的文件。
7. top指令:
我们的window环境下,我们的电脑里,我们都有一个任务管理器,我们可以通过任务管理器发现那些进程,什么东西正在运行,,
在我们的Linux环境下,top指令就扮演了任务管理器的角色。
比如我们看这个,这个指令就表示把我们的任务管理器打开并且每隔一秒刷新一次,然后刷新5次后结束。
然后这个指令就表示我们的任务管理器每隔5秒就刷新一次,总共刷新5次。
下面我们来讲最后一批命令,打包压缩命令:
8. zip指令和unzip指令:
我们看上面的图片:
我们现在想要打包lesson5,我们准备把整个目录进行打包。
我们来看上面的图片:我们打包我们的lesson5成为lesson5.zip文件,打包的话不影响我们的原文件,这时候我们ll查看当前目录下的文件,发现了我们的lesson5.zip文件。
然后我们刚才新建了一个目录test,现在我们把我们打包的文件放到test里面,这时候再cd进入到test里面,然后ll查看,我们就发现了我们刚才打包压缩的压缩包lesson5.zip文件,
然后我们现在看,这时候我们就要对我们的压缩包进行解压才能得到我们要的文件。
我们就unzip指令后面跟上我们的压缩包,然后ll查看当前目录下的文件,这时候我们就发现了解压出了我们的文件lesson5。
但是我们tree一下当前目录(. 表示当前目录),然后我们发现我们解压的lesson5里面什么都没有
那这是为什么呢?我们只把目录打包了,里面的文件都没有打包。
因为我们的目录是树状的,如果我们想要把整个目录打包的话,我们就要递归的进行打包压缩。
上面的打包方式是我们打包压缩单个文件的时候使用的方式。
我们看这个上面的,当我们递归式的进行打包压缩的时候,这时候就可以了。
然后我们继续往下看:
注意:我们刚才已经删除了test文件的内容,这时候我们再把压缩包移动到test文件里面然后进入到test文件内部。
然后这时候我们再对我们的压缩包进行解压,unzip指令后面跟上压缩包就行,就会得到我们的lesson5。
这时候的这个lesson5就是我们的lesson5了。
看上面是我们的两个指令,我们的zip是把后者压缩成前者。普通文件直接打包压缩,目录的话要加上 -r,递归式的打包压缩。
rm * -rf指令的话,含义是把当前目录下的所有的文件删除掉。
我们刚才解压我们的压缩包的时候,默认的都是解压到我们的当前目录下,但是我们也可以解压到其他的目录上,
我们看这个:
看上面的图片,我们还是先把lesson5进行打包压缩,然后
我们插叙一个东西:
我们的windows和Linux是可以互传东西的,我们需要先在Linux中安装上我们的工具就可以,
具体的场景就是:我们可以在我们的Linux环境下打包压缩我们的文件,然后把压缩包传到我们的windows环境下进行解压得到我们的文件。
从我们的Linux环境下传文件到我们的windows环境下使用指令sz + 文件/压缩包就可以。
然后如果你想把你本地的文件上传到Linux环境下的时候,直接拖拽到Linux环境的面板就可以了
9. tar指令:
我们的zip结尾的打包压缩的文件在Linux环境中会使用,但是不是最主流的,我们的Linux环境下最主流的打包压缩我们可以学习下tar指令;
我们看上面的图片:我们tar指令建立压缩包,czf,c表示创造文件,z表示具有压缩属性,f表示指明对应文件。
然后我们来看解压:
我们的解压的指令,我们把c变成x就好了,x是解开指令
我们记住这两个就行了,上面是压缩文件,下面是解压文件。
我们继续说:
我们说我们解压压缩包默认的是会解压到当前目录下的,那我们能不能解压到其他的目录下呢?
我们先rm * -rf 清空我们的test目录,然后执行我们的指令:
看我们上面的图片:我们解压指令的后面我们跟上一个 -C,然后后面跟上指定的目录。
我们就解压到指定的目录了。