106期_2022-09-24_linux基本操作

发布于:2022-12-05 ⋅ 阅读:(748) ⋅ 点赞:(0)

目录

mkdir创建目录:

touch创建普通文件

rmdir

rm删除:

 man指令:

cp拷贝:

echo

mv指令:

cat显示文件内容

tac从后往前的显示文件所有内容

more:显示文件的一部分内容,只支持下翻

less查看文件的一部分内容,支持上翻和下翻:

head:从前往后提取文件的前十行

tail:提取尾部元素的前10行:

时间的相关的指令:

date:显示当前的时间:

时间戳:

日历:cal


mkdir创建目录:

 我们的root结构中什么都没有,接下来,我们写几个mkdir创建A B C D四个目录:

 如图所示,我们成功的创建了四个目录。

mkdir -p表示沿着路径创建目录:

例如:

我们现在A目录下再创建一个a目录:

touch创建普通文件

 假设我们要在最外层目录中创建一个普通文件test.c

 注意:我们touch创建的是普通文件,不能当作目录,所以我们无法在test.c对应的路径后再创建文件

接下来,我们介绍删除指令:

rmdir

 我们删除掉B:

所以我们的mkdir是能够删除空目录的 

我们尝试删除普通的文件:

 我们发现,rmdir不能够删除普通文件

rmdir能够删除非空目录吗?

我们进行证明:

 rmdir无法删除非空目录。

总结:rmdir只能删除空目录。

rm删除:

我们要使用删除的话,一个rm就足够了。

rm默认删除普通文件。

我们可以通过rm -r来递归删除一个目录中的所有数据:

例如:

 

 这里会有一些提问,作用是防止我们误删。

我们删除之后的结果为:

 假如我们不需要提问的时候,我们可以这样写:rm -rf +目录表示强制递归删除一个目录中的所有数据。

例如:

我们先创建一个非空目录:

我们使用强制递归删除a目录下的所有数据:

 我们就强制递归的删除了a目录及其以下的所有数据。

注意:能不能这样写:

 答案是可以的,这样表示我们强制删除根目录下的所有内容,但是我们的操作系统一定会崩溃,并且所有的数据库都被删除。

所以注意:千万不要这样写。

假设我们想要在删除文件时,系统给我们提示该怎么做?

答:加上 -i。

例如

 假设我们想要删除test.c,并且想要得到提示:

 这样我们就成功的获取了提示,我们要同意的话,按y即可,不同意的话,按n

 man指令:

man指令就相当于是一个目录:

我们可以通过man指令查看任意的指令,例如,假如我们要查看touch指令:

 按下回车,会弹出这样一个窗口

 这就是关于touch指令的详细介绍。

我们也可以通过touch了解各种指令

 

man就是一个查看命令,系统调用,c接口的一个手册,这个手册是有编号的

 这里的前三个编号分别对应的是:

1:代表可执行程序和系统命令。

2:系统调用

3:库函数调用。

我们也可以这样使用man函数:

man man

 相当于用man手册来看man的定义:

 我们可以发现,man的编号是1.

man的默认查找方式是这样的:

man默认是从1号手册开始查找,找到即停

man可以根据指定手册查找指令

例如:

我们知道printf函数的标号是1,我们可以直接这样写:

 例如,我们的strlen函数是库函数,在编号3中,我们可以直接+编号来提升搜索效率

 

 

cp拷贝:

使用cp指令的结构是这样的:

cp src des

其中,src是来源的意思 des是目的地的意思,我们cp拷贝的作用是把src对应的文件拷贝到des对应的路径处。

 在如图所示的数中,假如我们想要test.txt拷贝到A/a的路径处:

 我们尝试以下是否可以拷贝目录:

我们尝试是否可以把C目录拷贝到B目录下。

 拷贝失败,所以cp拷贝只能够拷贝目录

我们也可以把文件拷贝到上级目录去:

例如,我们可以把路径为A/a下的test.txt文件拷贝到上级目录:

我们可以先进入A/a

 再把对应文件拷贝到上级目录:

 我们成功的把文件test.txt拷贝到了上级目录。

目录不可以直接拷贝,不过我们可以使用-r来拷贝目录:

例如:

 假如我们要把A目录下的内容全部拷贝到D/d路径处:

 -r表示的是递归拷贝。

 我们成功的把A目录下的全部数据拷贝到了路径D/d/处。

注意:拷贝的本质是覆盖:

例如:

 这是我们原来的文件排布:

假如我要把A文件中的test.txt拷贝到D/d/位置处,这时候就发生了替换:

总结:cp +src +dest表示拷贝文件。

cp拷贝默认的是拷贝文件,cp默认不能拷贝目录

cp -r +目录名可以拷贝目录

cp的可以替换同名文件

echo

echo可以把数据显示到计算机屏幕上,和printf非常相似,不过不能够格式化输入。

例如:

 echo指令并不会识别%,并不会格式化输入,我们输入的字符串是什么,显示到计算机屏幕上的就是什么。

mv指令:

mv指令的结构是 mv src dest

1:类似于剪切功能,move,移动文件或者是目录。

2:对文件或者目录进行重命名

例如:

 这是我们的文件图像,假如我们要把c文件移到B/位置处:

 移动后对应的图像:

2:如何进行重命名操作呢?

 

 我们可以直接把A目录移动到根目录的test106处

 但是我们并没有test106

所以这里的意思就相当于把A重命名为test106.

 

常用的两个选项:

 

 

cat显示文件内容

 我们把test.txt文件中输入10000个hello 106.

我们使用cat显示文件内容:

 显示的内容:

 我们也可以显示行号的查看:cat -n +文件名

 

 我们发现cat是从前往后进行显示的,接下来,我们引入tac

tac从后往前的显示文件所有内容

 显示的结果是:

 cat vs tac :命令反过来了,内容也反过来了。

我们发现无论是cat还是tac都不方便看大文件,我们引入几个其他的指令:

more:显示文件的一部分内容,只支持下翻

例如:

 more默认显得是文件的前25项内容:

 但是我们按回车是可以继续看后续的数据的:

more也可以显示选行:

 表示的是显示到前500行:

 

less查看文件的一部分内容,支持上翻和下翻:

 默认显示的前25行

不过我们既可以上翻,也可以下翻:

 

 

 不过less并不能指定行数的访问:

 

我们显示的内容依旧是前25行。

 

head:从前往后提取文件的前十行

 

 我们也可以指定行数:

 

tail:提取尾部元素的前10行:

 我们也可以指定行数:

不过我们这里执行的是倒数第n行。

 

那么,假如我们要访问中间的十行呢?[1000,1010]?

我们可以采取创建临时变量的方法:

 这里的意思是从test.txt提取到前1010个文件,然后把这1010个文件输出到tmp.txt中,所以现在tmp.txt文件中有1010个文件。

我们只需用tail提取到tmp.txt的最后十个文件就可以了。

 取出的就是区间为[1000,1010]之间的元素。

 

 这种方法还需要创建临时变量

我们可以写一个一步到位的代码:

 这个符号|是管道的意思:这串代码表示的意思是从文件test.txt提取出前1010个文件,然后把这1010个文件通过管道传给另一端,然后我们从另一端接收到这1010个文件,然后从这些文件中提取出后10个文件

 假如我们再提出一个要求,把这十个文件进行逆置呢?

答:我们还可以利用管道的思想:

 管道的思想:先从文件test.txt中提取前1000个文件,把这写文件放入管道中,另一端的管道接收文件,然后提取出这些文件的后10位,然后把这些文件的后10位再传到管道中,另一端接收这些文件,把这些文件逆置的读取出来。

我们可以再提出一个要求,求出这些逆置的文件的前3位?

答:依旧使用管道:

 我们把逆置过来的文件放到管道中,另一端管道接收文件,取出文件的前3个并显示。

 管道可以组合各种各样的命令。

 

时间的相关的指令:

date:显示当前的时间:

例如:

 假如我们想要显示具体的年月日时分秒该如何写呢?

 其中,%Y %m %d %H %M %S分别对应格式化输入年月日时分秒。

时间戳:

 这里的%s所对应的是格式化输入中时间戳对应的秒:

 输出的结果是这样:

这串数字所对应的时间是从1970 年1月1日至今所过去的秒钟:

 

 我们每次对应的时间戳都不同。

如图所示:

在我们所对应的地区,时间戳的初始值对应的时间就是这个。

 

日历:cal

 默认输入cal,输出的本月的日历。

我们可以在cal后输入具体的年份:

 能够输出对应年份的日历。

cal -3

能够输出最近3个月对应的日期。

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到