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


    目录

    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个月对应的日期。

     

     

  • 相关阅读:
    腾讯云4核8G服务器支持多少人在线访问?
    【python】(十九)python常用第三方库——urllib3
    8.城市交通
    双十一最后一天该怎么入手,几款必备的好物分享
    Linux之Shell进阶(变量和条件判定语句)
    lua字符串相关方法,如截取中文字符串
    2022-09-19 C++并发编程(二十三)
    【Linux操作系统教程】用户管理与权限管理你真的懂了吗(三)
    【深度学习】记录为什么没有调用GPU
    DAST 黑盒漏洞扫描器 第五篇:漏洞扫描引擎与服务能力
  • 原文地址:https://blog.csdn.net/qq_66581313/article/details/127089322