• 【Linux】从零开始学习Linux基本指令(二)


    🚩纸上得来终觉浅, 绝知此事要躬行。
    🌟主页:June-Frost
    🚀专栏:Linux入门

    🔥该文章主要了解Linux操作系统下的基本指令。
    ⚡️上一篇可以看这里 👉【Linux】从零开始学习Linux基本指令(一) 了解更多。

    ⌛️ 一些常见指令

    ✉️ man指令

    • 语法:man [选项] [命令]
      功能:可以访问Linux手册页,查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

     通过man指令,可以查看特定命令、函数、设备文件等的详细说明和用法,例如:查找ls指令,输入man ls 后,会出现下面的界面,这个界面介绍了ls的功能,选项等一系列信息。

    输入q就可以退出该界面。

    📘 注意:输入man man 就可以向在线手册查询man指令。

     可以发现在手册页中有9种手册,简单了解一下:

    • 可执行程序或shell命令(Executable programs or shell commands) :提供了关于Linux系统中可执行程序和shell命令的说明和用法,包括它们的名称、功能、参数、选项、示例等。这些手册页通常包括标准命令、shell内置命令、shell特殊字符、shell选项等。
    • 系统调用(System Calls) : 列出了Linux系统提供的系统调用,以及它们的函数原型、参数、返回值和功能描述。
    • 库调用(Library Call) :提供了C语言标准库中各种函数的详细说明和用法。
    • 设备文件(Special Files) :列出了Linux系统中的特殊文件,包括设备文件、管道文件、套接字文件等,以及它们的使用方式和命令。
    • 文件格式(File Formats) : 提供了关于Linux系统中常见文件格式的说明和解释,例如配置文件、日志文件、备份文件等。
    • 游戏(Games):提供了Linux系统中的各种游戏和娱乐软件的使用说明和指南。
    • 杂项(Miscellaneous) :提供了Linux系统中一些其他工具和功能的说明和用法,例如文本编辑器、网络工具、备份工具等。
    • 管理员命令(System Administrative Commands) : 提供了Linux系统中管理员需要使用的命令的说明和用法,包括系统管理命令、用户管理命令等。
    • 内核例程(Kernel routines) : 提供了关于Linux内核内部结构和机制的说明和解释,包括进程管理、内存管理、文件系统等。

     在Linux系统中,man命令默认使用的手册是第1号手册,如果用户输入的命令在1号手册中找不到,man命令会自动查找其他手册页,直到找到相关手册或显示“未找到任何相关页面”的错误信息。
     所以,我们无需指定使用哪个手册页,除非要查看特定手册页。例如要查找printfprintf在Linxu中也是一个指令,如果我们以man printf 查找,就会展示一号手册的内容,如果我们想查找C语言的printf函数,就得按照 man 手册编号 查找的内容 的形式,输入man 3 printf
    📗一些常用的选项:

    • num 指定手册查找。
    • -k 根据关键字搜索联机帮助。
    • -a 将所有章节的都显示出来,比如上面提到的printf,如果不用man 3 printf ,也可以使用man -a printf,因为当按下q退出后,会继续往后面搜索,直到所有章节都搜索完毕。

    ✉️ cp指令

    • 语法: cp [选项] 源文件或目录 目标文件或目录
      功能:将一个或多个源文件或目录复制到指定的目标文件或目录。

    在同级目录下,不允许存在同名文件或同名目录。

    📗拷贝一个文件

     为了证明文件是通过拷贝到达的目标地,对一个文件进行一个文本编辑(nano),这里对node里的test.txt文件编辑了一个心想事成。将该文件拷贝到上级目录:cp test.txt ..

     如果在同级目录下拷贝文件需要改名字

    📙拷贝一个目录

    • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在。
    • -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。

     通过这两个选项,就可以拷贝目录,和拷贝文件处理方式一样,只需要加上 -rf


     如果拷贝目录到同级目录下,需要改名,例如:cp -rf node1 node1.bak

    💡说明:

    1.  对于一个目录或文件,在拷贝时可以保证文件名拷贝到新的路径之后保持不变,也可以指定文件名,将内容拷贝过去,文件名也发生修改。例如:cp -rf dir ../node2 ,假如上级目录没有node2,这个命令可以在上级目录创建一个node2目录,再将dir的内容跟拷贝过去。
    2.  cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
    3. cp -rf /root/node /root/dircp -rf /root/node/* /root/dir 是不一样的,第一个指令是将node的内容包括目录本身都拷贝到dir里,第二个不包括目录本身,只拷贝目录的内容。并且这两种方式都不会拷贝隐藏文件

    📗另外一些常用的选项:

    • -i 或 --interactive 覆盖文件之前先询问用户。
    • -R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理。

    ✉️ mv指令

    语法:[选项] <源文件或目录> <目标文件或目录>
    功能:将文件或目录从一个位置移动到另一个位置,或者将文件或目录重命名,经常用来备份文件或目录。

     与cp命令相似,如果目标目录存在,就是将源目录整体剪切到目标目录里,如果目标目录不存在,那么就会在剪切目录的同时修改目录名。按照这个规则,同时就可以实现重命名。


    📗一些常用的选项:

    • -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

    ✉️ which指令

    • 语法:which [选项] 命令名
      功能:帮助用户快速定位特定命令或程序的执行路径。
      说明:命令名是要查找的可执行程序的名称。可以是一个单独的命令名,也可以是多个命令名用空格分隔。

    指令的本质是可执行文件,可以通过which看到所处的路径。例如 which ls

     这里还出现了另一个命令alias ,这个命令可以设置指令的别名,使用alias时,必须使用单引号将原来的命令引起来,防止特殊字符导致错误。

     注意:alias命令的作用只局限于该次登入的操作,相当于临时变量。若要每次登入都能够使用这些命令别名,就需要改变配置文件。


    ✉️ 文件查看

    cat 指令

    语法:cat [选项][文件]
    功能:查看目标文件的内容。

    cat 适合查看小文件的内容,查看大文件会直接刷屏。

    📗一些常用的选项:

    • -b 对非空输出行编号。
    • -n 对输出的所有行编号。
    • -s 不输出多行空行。

    more 指令

    • 语法:more [选项][文件]
      功能:查看目标文件的内容。

    more 指令可以查看大文件,但是只能向后翻页不太推荐,更推荐less 。

    📗一些常用的选项:

    • -n 对输出的所有行编号。
    • -q 退出more。

    less 指令

    • 语法:less [选项] [文件]
      功能:用于查看(但不完全加载)文本文件,特别是那些比普通文本文件更大的文件,例如二进制文件。

      less的功能比more更强大,除了可以向前翻页,还可以向后翻页,甚至可以通过搜索关键词定位到文件中的特定位置

    📗一些常用的选项:

    • -i 忽略搜索时的大小写
    • -N 显示每行的行号
    • /字符串 :向下搜索“字符串”的功能
    • ?字符串: 向上搜索“字符串”的功能
    • n :重复前一个搜索(与 / 或 ? 有关)
    • N :反向重复前一个搜索(与 / 或 ? 有关)
    • q :quit

    head 指令

    • 语法:head [选项] [文件]
      功能:显示文件的前几行,默认显示前10行,也可以根据需求指定显示的行数。

    head -100 file.txt 就是查看file.txt文件的前100行。

    📗一些常用的选项:

    • -n 指定要显示的行数。
    • -q或--quiet或--silent:不显示包含给定文件名的文件头即隐藏文件名。
    • -v或--verbose:总是显示包含给定文件名的文件头即显示文件名。

    tail 指令

    语法:tail [选项] [文件]
    功能:将指定文件的最后几行显示在终端上,默认情况下显示最后10行,也可以根据需求指定显示的行数。不指定文件时,作为输入信息进行处理。常用查看日志文件。

    📗一些常用的选项:

    • -f 循环读取。
    • -n 指定要显示的行数。

    💫重点来了:

    管道

      在Linux中,管道是一种进程间通信的方式,它可以将一个进程的输出直接连接到另一个进程的输入,从而实现数据交互。
    对于管道的使用,主要有以下两种情况:

    • 匿名管道:也称为无名管道或临时文件,是两个进程间直接进行通信的一种方式。这种管道没有名字,仅在创建它的进程和它的子进程之间通信。匿名管道的创建通常是通过系统调用pipe()来实现,它会返回两个文件描述符,分别表示管道的读端和写端。
    • 系统调用管道:通过使用系统调用pipe()创建,可以实现将一个进程的输出重定向到另一个文件或进程。例如,当我们在shell中使用“|”操作符时,就是创建了一个系统调用管道。

     无论是哪种类型的管道,都是通过在内核级别进行操作实现的。从内核角度来看,管道就像是一个文件,我们可以像操作文件一样对其进行读写操作。但是,与普通文件不同的是,管道的两端可以同时进行读写操作。

      上面我们了解到了如何查看文件,现在可以运用系统调用管道查看5000–5020行的内容:


    ❤️ 结语

     文章到这里就结束了,如果对你有帮助,你的点赞将会是我的最大动力,如果大家有什么问题或者不同的见解,欢迎大家的留言~

  • 相关阅读:
    聚苯乙烯-SiO2/NiFe2O4磁性微球/中空介孔载银二氧化硅聚苯乙烯微球制备过程
    基于SpringBoot+Vue的服装销售系统
    Dev-C++ 软件安装教程
    附加进程 到远程服务器中Docker容器内 调试
    深度学习概念——端对端
    阿里云服务器上安装rabbitmq流程
    AI绘画-Stable Diffusion三次元人物模型训练(炼丹)教程,你也可以定制你的三上youya老师!
    Excel 导入实例
    网络初识
    心理咨询预约微信小程序开发制作步骤
  • 原文地址:https://blog.csdn.net/m0_75219751/article/details/133827744