• 【Linux学习笔记】基础命令2


    1. rmdir指令 && rm指令

    1.1. 基础概念

    在Linux系统中,rmdir和rm命令用于删除目录和文件。这两个命令对于初学者来说非常重要,因为它们涉及到文件和目录的操作和管理。

    下面是一些关于rmdir和rm命令的基本知识:

    1. rmdir命令:
      • rmdir命令用于删除空的目录。
      • 语法:rmdir [选项] <目录名>
      • 常用选项:
        • -p:递归删除目录及其父目录。当指定的目录为空时,其父目录也会被删除,直到顶级目录或非空目录为止。
        • -f:强制删除目录,无需确认提示。
      • 注意事项:
        • 只能删除空的目录。如果目录中有文件或其他目录,需要先进行相应的操作。
        • 删除操作不可撤销,请谨慎使用。
    1. rm命令:
      • rm命令用于删除文件或目录。
      • 语法:rm [选项] <文件或目录名>
      • 常用选项:
        • -i:交互式删除,每次删除操作都会提示确认。
        • -r:递归删除目录及其内容。
        • -f:强制删除,无需确认提示。
      • 注意事项:
        • 可以删除文件和目录,但需要谨慎使用。在删除操作前最好先确认目标文件或目录。
        • 对于删除目录,需要确保目录为空或使用递归选项-r或-p来删除非空目录及其内容。

    1.2. 命令用法

    1.2.1. rmdir命令

    下面展示一下指令的使用:

    假设我现在创建了几个目录,而我想删除,怎么操作呢? 可以使用rmdir命令(rm 你可以记作remove的意思)

    img

    1. 删除普通文件

    img

    1. 删除带有目录的目录

    img

    1. 删除带有普通文件的目录

    img

    1. 删除空目录

    img

    注意的是rmdir命令删除的是空目录

    两点要求:

    1. 空的
    2. 是目录

    1.2.2. rm命令

    对于rmdir命令,我个人比较推荐rm命令。下面来讲rm的各种指令。

    有这样的一个场景:

    img

    1. 删除普通文件

    img

    rm指令默认删除的是普通文件

    1. 删除空目录

    img

    但rm命令也是可以删除目录的,用rm + -r命令即可

    img

    1. 删除带目录的目录

    同第2点一样的道理

    1. 删除带普通文件的目录

    同上!

    这里的rm -r的意思就是递归删除目录及其目录里面的文件

    再来看这样的一些场景:

    1. 假如我的普通文件很多,我想删除

    img

    回看上面的rm指令,默认是删除普通文件的,但是系统是要询问你的。

    img

    面对这样的情况,可以输入rm -f + 文件名的命令来进行强制删除,这样系统就不会询问你。

    img

    1. 删除很多的目录

    同样的,我也是不想系统每次删除都要我去输入yes,所以直接选择使用 -f强制命令,但是注意文件的删除要 + -r 进行递归删除。

    img

    1.2.3. rm命令的注意事项

    在Linux中, “/”这样的一个符号代表的是根目录,学了上面种种的rm命令,是否也能对根目录进行删除呢?

    答案是可以的,但是是强烈不建议做的,因为这等同于删库跑路,很可刑!

    2. man命令

    **Linux中的man命令是一个非常有用的工具,用于查看命令、函数和文件的帮助文档。**对于初学者来说,掌握man命令可以帮助了解Linux系统的基本工具和命令。

    在Linux系统中,几乎所有的命令和函数都带有帮助文档,这些文档可以通过man命令来查看。要查看某个命令的帮助文档,只需要在终端中输入“man 命令名”即可。

    man命令的输出分为多个部分,包括命令的名称、格式、描述、参数说明、选项解释、示例和使用案例等。这些信息可以帮助初学者了解命令的作用、用法和参数含义,从而更好地使用Linux系统。

    除了查看命令的帮助文档,man命令还可以查看其他类型的帮助文档,如函数文档、文件格式等。例如,输入“man 2 intro”可以查看关于Linux系统调用的一篇入门文章。

    总之,man命令是Linux系统中非常有用的工具,对于初学者来说,掌握它可以更好地了解Linux系统的基本工具和命令。

    只要记住man命令就是一个在线手册即可,不懂就去查。

    例如我想查C语言库中的printf函数:

    img

    其中左上角的数字代表的该命令在第几号手册。

    man手册有9个手册,每个手册都有不同的 查询内容

    img

    3. cp指令

    3.1. cp指令基础概念

    在Linux中,cp命令是用于复制文件和目录的基本命令。它允许您将一个文件或目录从一个位置复制到另一个位置。

    基本语法如下:

    cp [options] source destination
    
    • 1

    这里的source是原始文件或目录的路径,destination是目标文件或目录的路径。

    以下是一些cp命令的常见选项:

    1. -r 或 --recursive:递归复制目录及其内容。这个选项允许您将一个目录及其下的所有文件和子目录复制到目标位置。
    2. -f 或 --force:强制复制,如果目标文件已存在,不会询问用户是否覆盖。使用这个选项,将会直接覆盖目标文件,而不会询问您是否确定覆盖。
    3. -i 或 --interactive:在覆盖目标文件前询问用户是否确定。如果您不太确定是否要覆盖目标文件,使用这个选项将允许您在覆盖之前确认您的操作。
    4. -p 或 --preserve=timestamps:保留原始文件的访问时间、修改时间和状态信息。这个选项可以保持复制后的文件与原始文件在时间戳和其他属性上的一致性。
    5. -u 或 --update:只复制比目标文件更新的文件。如果目标文件比源文件更新,这个选项将不会执行复制操作。
    6. -v 或 --verbose:显示详细的输出,展示复制过程。使用这个选项,将在控制台上显示复制过程中的详细信息,便于了解复制的进度和结果。

    这些选项可以根据您的需求进行组合使用。

    3.2. cp命令的用法

    默认场景如下:

    img

    1. 直接复制普通文件

    cp1.txt 直接复制到 cp3目录下

    img

    那么现在的cp3目录就有了普通文件cp1.txt,然后我再次复制会如何?

    img

    输入y代表yes,会直接覆盖原来的cp1.txt普通文件。

    1. 复制空目录

    img

    剩余两种情况就同rm指令一样的,无需多言!

    4. mv命令

    1. 类似windows系统下的crtl + x ,剪切功能

    img

    img

    剪切目录示范:

    img

    这里的剪切无需像rm命令和cp命令那样 + -r递归删除

    1. 重命名功能

    img

    普通文件重命名示范:

    img

    5. cat命令

    语法:cat [选项][文件]

    功能:查看目标文件的内容常用选项:

    1. -b对非空输出行编号
    2. -n对输出的所有行编号
    3. -s不输出多行空行

    cat命令示范:

    • cat [文件名]

    输入这样的一串命令cnt=0; while [ c n t − l e 100 ] ; d o e c h o " h e l l o w o r l d [ cnt -le 100 ] ; do echo "hello world [ cntle100];doecho"helloworld[cnt]"; let cnt++; done > test.txt

    生成1到100放到test.txt中,用cat打印相对应的信息

    img

    • cat -n [文件名]

    加上 -n 显示行数

    img

    cat命令并不适合查看大文本,适合看小文本或者代码片段!!!

    如果想反向显示文件内容,可以输入 tac + 文件名进行操作,下面是示范:

    img

    6. more命令 && less命令

    上面的cat命令不适合查看大文本,如果要查看大文本推荐使用more命令或者less命令

    6.1. more命令

    • more + 文件名

    批量显示文件内容,下面是示范内容:

    img

    其中按 Enter 键 会往下翻动,但是按方向键 上 和 下 是无法往上往下反动的。

    • / + 搜索内容

    **当输入 more 命令,在显示的内容中 输入 / + 文件内容,可以快速定位到想要搜索的位置,**下面是示范:

    img

    more + -数字 指定显示的百分比,示例:

    img

    6.2. less命令

    less命令和more命令都是用查看大文本的,功能几乎一致。

    1. less命令可以上下翻,more命令不可以
    2. less也可以指定搜索内容
    3. less也可以指定文件内容显示的百分比

    7. head命令和tail命令

    7.1. head命令

    • head命令是正向显示文件内容的前10行,下面来看示范:

    img

    • head -n 正向显示文件内容前n行

    img

    7.2. tail命令

    • tail命令同head命令差不多,tail主要的操作是反向显示文件内容前10行或者前n行

    img

    • tail -n 反向显示文件内容前n行

    img

    7.3. 利用head 和 tail 显示中间的文件内容

    head可以正向显示文件内容,tail可以反向显示文件内容,借助一个文件我们可以做到显示中间的文件内容

    例如:我想要显示文件的 25 - 29行

    img

    上面显示中间内容是要借助临时文件的,那有上面办法不借助临时文件呢?

    答案是借助管道!下面是使用示范:

    img

    你还可以根据你自己的需要,通过管道层层加码。

    img

    8. date命令

    date 命令是一个打印时间的命令,示范如下:

    • 直接输入date

    img

    • 格式化输出时间

    img

    date + % + 字母,其中时分秒为首字母大写,年是首字母大写,月和日是小写,如上所示。

    • 时间戳

    通过date + %s,可以打印出时间戳

    img

    这个数字代表的意思是从1970年1月1日 00:00开始累计的秒数,读者可以自行多输入几次,会发现时间戳有所不同。

    • 格式化输出时间 + 时间戳用法

    img

    -d + @ + 时间戳,可以打印精准到秒的时间。

  • 相关阅读:
    SpringMVC之CRUD(直接让你迅速完成部署)
    思维导图软件测评Draw、Gitmind、Xmind、Effie、Miro、Excalidraw
    无需公网IP、简单3步,直连远程NAS实现高速访问
    漏洞修复---SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】
    插入排序算法
    HarmonyOS应用开发JSAPI-js拨打电话call
    TiKV+SPDK,探索存储的性能极限
    android实时投屏软件QtScrcpy
    神经辐射场(Neural Radiance Field,NeRF)的简单介绍
    贝塞尔曲线的一些资料收集
  • 原文地址:https://blog.csdn.net/m0_71259890/article/details/132841051