当前位置: 首页 > news >正文

Linux指令(2):

我们今天继续学习我们的指令:

1. man指令:

这个man指令在我们的Linux里面是帮助我们查找指令,相当于是充当一个开发手册的功能的。

比如:

当我们的tree指令,我们忘记的话,我们就可以man后面跟上这个指令,他就会给我们展示出来。

当我们查看结束以后,我们可以点击q(quit放弃)就可以退出。

或者说:ls不会用:

我们就可以:

只要我们任何一条命令忘记了,我们就可以man后面跟上我们想知道的命令;

我们继续看:

我们看上面的:

我们说,我们的man指令也可以查找我们的C语言的接口,但是查不了C++的接口,C语言可以。

比如我们就看上面的,我们的man指令后面我们跟上printf。

在Linux里面,我们的C语言的函数就会变成指令;

C语言的库函数一般会放在我们的man 3 对应的手册中。

我们看这个,我们的man printf 表明查看printf指令,man 3 表示的是查看第三类手册。

2. cp指令:

我们现在已经可以新建文件touch了,也可以新建目录mkdir,也可以是删除目录了,rmdir,当然我们一般的删除指令是rm,一般我们也是使用rm-r 来删除目录。(这个后面的r表示递归的删除)

我们现在还缺少一个指令,那就是我们怎样拷贝一个目录,我们就要学习一下cp命令,cp命令的全称就是copy,拷贝的含义。

我们这里补充一个理论,那就是在Linux系统之下,一切东西都是文件。

我们看一个echo指令,这个指令是把数据打印到显示器上。

和printf比较类似,但是printf可以打印%d之类的数据。

然后,我们继续说我们的Linux下一切皆文件的概念:

我们看上面的图片:当我们在echo的后面跟上 > 的时候,他没有在我们的显示器上打印出我们的数据,我们这时候ls-l查看,发现当前目录下有形成一个hello.txt文件,

这时候我们补上一个cat指令来查看我们的文件内容,(查看文件内容,我们可以使用cat指令来进行)。查看的结果就是我们刚才的数据。

那么这个东西是什么呢?

本来我们的echo指令会把我们的数据写入到我们的显示器文件中,但是我们后面加上大于符号的时候,把echo输出的内容写入到了hello.txt文件中。这个行为我们称成为输出重定向。

当我们输出重定向的文件不存在的话,就会新建这个文件

我们看上面的图片:

我们继续重定向,但是重定向的文件是我们已经存在的文件,这时候我们的重定向有一个特点,他会把原始的数据给清空掉然后再写入。

所以这里就有一个题目:

看我们上面的图片:

我们可以直接使用空重定向我们的文件,然后我们cat查看我们的文件内容,是空的。

我们继续往下看:

我们看这个图片:

之前我们的重定向是一个大于符号,现在的话,我们这里两个大于符号,这个表示追加重定向,这个的话,我们就不会把原来的数据删除写入,而是我们会换行来进行写入。

上面的我们讲的都是往文件里面写入数据,下面的话,我们讲一下从键盘文件读取数据。

首先我们讲一下我们的cat命令,我们可以把cat命令理解为scanf+printf命令。

我们依旧看上面的图片:

之前我们说cat指令后面跟上我们的文件表示的是查看文件的内容,当我们的cat后面什么也不跟的时候,我们的cat就像scanf和printf一样,他会等我们输入数据,然后把输入的数据打印到显示器上。

既然这样,我们可以在cat指令的后面跟上一个小于符号,这个时候,我们的cat指令本来获取数据的源是从我们的键盘上scanf获取然后printf,现在的话,他是从我们的hello.txt文件中获取数据然后printf。

这里的这个小于符号,我们称为输入重定向;更改了我们的获取数据的位置,不从键盘上,从文件上。

这里的话就会有一个问题:

我们看,我们的cat后面跟不跟我们的小于符号似乎出来的效果是一样的,但是其实他的底层原理是不一样的,这个我们今天先不做讲解。

好,我们继续来看我们的cp指令:

我们拷贝一份src.txt文件,我们把src.txt文件拷贝成src-backup.txt文件。我们cat查看我们的src-backup.txt文件的时候,他和我们的src.txt文件的内容也是一样的。

我们再继续看,我们也可以拷贝文件到我们的上级目录上去。

我们看上面的图片:我们cp我们的文件到我们的上级目录,但是我们没有指定我们拷贝后的文件名,这时候我们的上级目录就会多一个我们的src.txt文件。

我们再cat指令查看我们的上级目录的src.txt文件。也是和我们的文件的内容是一样的。

我们继续往下看:

我们看这个,我们之前拷贝的都是我们的普通的文件,那么我们能不能拷贝目录呢?

我们尝试拷贝lesson4目录,然后他就会告诉你,拷贝失败了,不能这样拷贝;

为什么呢?因为我们的Linux中,我们的目录都是树状的结构,我们要拷贝一个目录,一定要是递归的方式进行拷贝的,并且里面可能有部分需要涉及到权限问题,所以

我们看上面的图片:

我们拷贝一个目录,cp -rf,跟我们之前学习的删除指令一样,我们要求他递归拷贝不询问。

然后我们就拷贝出了一个新的目录,我们把他们两个都tree成树状结构,结果是一样的。

我们来看:

我们看我们的cp指令,这个指令的话,我们拷贝普通的文件的时候,我们直接cp就可以,但是我们要拷贝目录的时候,这时候我们就要cp -rf,强制的递归拷贝不询问。

当然:

我们也可以把我们的目录拷贝到指令的目录之下,当然是可以的。

我们看这个上面的图片:我们把lesson4目录拷贝到我们的dira目录之下。

3. mv指令:

我们接下来看mv指令,这个指令的全称是move指令。就是我们的移动的意思;

看上面的图片,我们先查看一下上级的目录,(要注意我们现在是在我们的下面的lesson4里面,我们 . . 进入到的上级目录才是这个)然后,我们接着move我们的src.txt文件到我们的上级目录下。

我们move完后,我们ll查看当前目录下的文件,我们发现我们的src.txt文件没有了,然后我们tree上级目录,我们就会发现src.txt被移动到上级目录了。

然后我们再cat查看一下上级目录的这个文件,发现里面的内容就是我们写的。

然后我们现在的当前的目录在lesson4里面,就没有我们的src.txt文件,那我们能不能把这个文件从上级目录上移动到当前目录呢?当然可以。

我们说过,上级目录是 . . 当前目录是 . ,我们看上面的图片,我们移动完后,ls查看上级目录下是否有这个文件,结果发现没有,这时候我们再ls查看当前目录下的文件,我们发现了src.txt文件。

刚才我们剪切的都是普通的文件,那我们能不能把目录剪出去呢?

我们看下面的图片:

我们看,我们先创建一个test文件,然后我们把这个dira目录move到我们的tset目录里面,

接着我们的dira整体就被放到我们的test里面了。

这里的move移动我们的目录的时候,我们没有-rf,不需要。

这里的话,假如我们要修改某一个文件的名字,我们觉得这个文件的名字不行,比如我们上面的src.txt文件,我们觉得这个文件名字不行,我们现在想要修改这个文件的名字,通过我们现在所学习的指令,我们能做的可能就是把这个文件删除掉,然后新建一个文件,但是这样的话比较的麻烦,并且我们原来的文件里面已经有我们之前的数据了。

这时候我们就可以使用move指令,

我们看上面的图片:

我们先ll查看当前目录下的文件,我们现在想要修改我们的src.txt文件的名字,这时候我们就可以move我们的这个文件,然后后面跟上我们想要的文件的名字。这就可以修改我们的文件的名字。

修改完后,我们ls查看当前目录下的文件,我们发现我们的src.txt文件的名字变成了我们要的。

修改完后我们查看我们的文件的内容,和我们之前的一样,只是名字不一样了。

我们继续来看:我们又把刚才的whb.txt文件修改为helle.txt文件名,然后再ls查看当前目录下的文件,也是没有什么问题的。

那我们可以修改我们的文件的名字,我们当然也可以修改我们的目录的名字了。

我们先cd . . 回退到上级路径下,然后ll查看当前目录下的文件,我们现在想要修改我们的目录名,也是可以的,具体操作可以看下面的图片:

我们接着来讲下一个命令

4. cat命令:

cat命令之前我们已经讲过了,就是打印普通文件的内容;

我们要讲的一个东西就是,我们的cat后面跟 -n是会给我们的文件的内容显示对应的行号。

再讲一个就是tac,我们看cat是给我们的文件的内容打印出来,二我们的二tac是把我们的文件的内容倒着打印出来。

我们说cat指令的话,他是只能查看大文件的,对于小文件的话,他就查看不了了,内容过大的话,就会导致刷屏。

这时候我们就需要新的工具来查看大的文件了,

more和less指令,这两个指令,我们推荐,尤其是less指令,more指令的话,我们了解,less主推。

这里我们简单的记住cat用来查小文件,less和more用来查大文件就行了。

5. more命令:

我们看上面,我们的more后面跟上我们要查的文件。

他就会把整个屏幕打满停下来,然后回车就会自动的向下翻动。

但是我们的more命令,只能按回车进行下翻,其他的都不行。

所以这个指令我们就不是很推荐,按q的话可以退出,quit。

6. less命令:

现在比如说我们要查看hello.txt文件,

然后他也是先给我们把一屏写满然后停下,然后这时候我们可以上也可以下,支持上下翻,也可以搜索哪一行。还是q(quit)退出。

7. head指令:

我们在查一个文件的时候,我们通常会查文件的头和文件的尾,我们的head指令就是查文件的头用的。

比如:我们看下面的:

假如我现在要查这个文件的头,head后面跟上我们的文件,他就会显示出这个文件的前十行。

也可以让他显示出前三行,中间可以 -n ,n是几,我们就让他显示前几行。

8. tail指令:

既然我们可以查看文件的头,也就可以查看文件的尾。

我们看这个图片:

他就会把我们的文件的后若干行拿出来,当然也可以,在中间加上 -n,表示要求后n行。

我们接着往下看:

我们现在有了head,可以看文件的头部,也有了tail,可以看文件的尾部,但是有没有什么办法可以看到文件的中间呢?有

我们看上面的图片:我们先head取出文件的前5011的数据,重定向进入到temp.txt文件中,然后取出这个temp.txt文件的后面11行,,,这个就是我们原本的大文件的中间部分的数据。

但是,,这样写是不好的,我们把文件一半的数据都进行拷贝来重定向到临时文件了,效率很低,这就不太好了,假如我们这时候的文件是更多的行怎么办呢?

我们继续看:

在我们的Linux中,有一个连接多条指令的执行结果的一个语法特征---管道;

比如就看这个,我们head把前5011行的数据拿出来,但是我们不重定向,我们继续连接到下一条命令,tail指令,取出后面的10行。。(这里tail指令提取的后十行的命令,这条命令的接收不是从文件里面接收的,而是上一条命令的执行结果经过管道交给下一个命令)

我们看这个,我们的管道就是把前一个指令的结果作为下一个指令的输入。

我们接着看:

我们现在知道了管道,我们可以把一个大文件的中间的我们想要的某一部分的数据提取出来,

我们看这个,我们不但可以把他提取出来,我们还要把提取出来的数据使用less指令查看。

我们也可以这样:

我们把我们提取出来的内容倒序的进行打印。

我们可以无限的套管道。

所以说,我们的管道可以把我们不同的命令组合到一起,进而达到我们的目的。

http://www.dtcms.com/a/301824.html

相关文章:

  • 《频率之光》
  • 【测试报告】​​云枢馈赠系统(Java+Selenium+Jmeter自动化测试)
  • WebStack-Hugo | 一个静态响应式导航主题
  • 回归预测 | MATLAB实现BiTCN双向时间卷积神经网络多输入单输出回归预测
  • 船舶模型预测控制路径跟踪仿真研究
  • JAVA进阶--MySQL
  • 学习游戏制作记录(改进投掷剑的行为)7.27
  • 分类预测 | MATLAB基于四种先进的优化策略改进蜣螂优化算法(IDBO)的SVM多分类预测
  • 内网后渗透攻击过程(实验环境)--4、权限维持(3)
  • 下载 | Win11 官方精简版,系统占用空间极少!(7月更新、Win 11 IoT物联网 LTSC版、适合老电脑安装使用)
  • 墨者:SQL手工注入漏洞测试(MySQL数据库)
  • 罗盘数据门户:挖掘数据价值,让数据助力更多可能
  • 洛谷 P10446 64位整数乘法-普及-
  • RTOS 基础知识
  • 打开postman后一直空白
  • mcu hardfault
  • Process Monitor学习
  • keil debug失败问题
  • 【二分查找 树状树状】P9588 「MXOI Round 2」队列|普及+
  • 7月27日打卡
  • 【0基础PS】PS工具详解--选择工具--快速选择工具
  • web刷题
  • 卸载某个软件的方法
  • ABB机器人多任务详解
  • J2EE模式---服务层模式
  • Min-Max标准化​ 和 ​Z-score标准化
  • MySQL - 索引(B+树)
  • IDEA安装Key Promoter X插件记录快捷键使用频率提高生产率
  • JavaWeb学习打卡17(监听器使用、Filter过滤器实现权限拦截案例)
  • 网络虚拟化:veth,bridge,network namespace与docker网络