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

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

【Linux】从零开始学习Linux基本指令(二)_第1张图片

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

目录:

  • ⌛️ 一些常见指令
    • ✉️ man指令
    • ✉️ cp指令
    • ✉️ mv指令
    • ✉️ which指令
    • ✉️ 文件查看
  • ❤️ 结语

⌛️ 一些常见指令

✉️ man指令

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

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

【Linux】从零开始学习Linux基本指令(二)_第2张图片输入q就可以退出该界面。

注意:输入man man 就可以向在线手册查询man指令。
【Linux】从零开始学习Linux基本指令(二)_第3张图片
 可以发现在手册页中有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 [选项] 源文件或目录 目标文件或目录
    功能:将一个或多个源文件或目录复制到指定的目标文件或目录。

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

【Linux】从零开始学习Linux基本指令(二)_第4张图片

拷贝一个文件

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

【Linux】从零开始学习Linux基本指令(二)_第5张图片

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

【Linux】从零开始学习Linux基本指令(二)_第6张图片

拷贝一个目录

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

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

【Linux】从零开始学习Linux基本指令(二)_第7张图片
 如果拷贝目录到同级目录下,需要改名,例如: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命令相似,如果目标目录存在,就是将源目录整体剪切到目标目录里,如果目标目录不存在,那么就会在剪切目录的同时修改目录名。按照这个规则,同时就可以实现重命名。

【Linux】从零开始学习Linux基本指令(二)_第8张图片
一些常用的选项:

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

✉️ which指令

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

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

【Linux】从零开始学习Linux基本指令(二)_第9张图片

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

【Linux】从零开始学习Linux基本指令(二)_第10张图片

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


✉️ 文件查看

cat 指令

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

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

【Linux】从零开始学习Linux基本指令(二)_第11张图片

一些常用的选项:

  • -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行的内容:

【Linux】从零开始学习Linux基本指令(二)_第12张图片


❤️ 结语

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

你可能感兴趣的:(Linux入门,linux,运维,指令)