Linux基本指令总结(二)

1.man指令(重要

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: man [选项] 命令

man指令就相当于一个精通linux的专家,你要查询的指令或者函数,他基本都直知道 

常用选项:

 -k 根据关键字搜索联机帮助

num 只在第num章节找

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

示例:

查询rm命令:

 根据NAME解释,可以知道rm指令是用来删除一个文件或者一个目录的,格式是rm+选项+文件,然后再选项介绍那一栏我又知道了各种选项的作用。这样,我就能快速的了解rm这个指令的用法

安装man手册

如果你发现想要查找的内容没有找到,大概率是没有安装全man手册

安装指令

yum -y intall man-pages

 有的朋友可能会问,为什么全是英文呢?

没办法,这是外国人弄出来的玩意,为了保持原汁原味,我们在前期的学习中还是应该保持读英文的一个习惯。如果实在要用中文,可以去安装汉化包。

既然man也是个指令,那可以用man查询man指令吗?

答案是可以的。

man包含手册

通过描述我们知道,man包含了九个手册(section)

1 是普通的命令,如rm、ls、cd等(常用)

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)(常用)

3 是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

9 Kernel routines(非标准)。

使用手册的时候正确格式:man+对应手册编号+“查询内容”

注意 

 如果我们没有指定手册编号的话,man会在手册当中依次按顺序查找,找到了就会马上停下来。这也是为什么我们用man rm 和man 1 rm的效果一样的。

而我们用man查询printf库函数时,如果没有标明哪个手册,man指令会从1号手册开始查找,发现linux有一个printf指令,于是就马上停下来了

而当我们标明要在库函数手册里面查找printf时

所以,要想正确的找到自己想要的内容,应该要标明对应的手册编号(章节) 

2.结束异常指令 ctrl+c

如果我们使用某个命令出现异常,或者是想要退出正在进行的指令的时候,就可以使用ctrl+c退出

3.echo指令

在Linux中,echo是一个用于显示文本或字符串的命令。它通常用于在终端或脚本中输出信息。

基本语法

echo [字符串]

 例如,我可以用echo输出一个字符串,并在终端显示:

 echo命令还可以与其他命令和操作符一起使用,例如将文本重定向到文件:

 

4. 重定向操作符

4.1.输出重定向 

>

在Linux中,> 是重定向操作符,用于将命令的输出重定向到文件。具体来说,> 会创建或覆盖指定的文件,并将命令的标准输出写入该文件

这也是为什么会创建一个output.txt文件,而且,如果已经存在output.txt文件且里面有内容的话,那里面的内容就会被清除相当于c语言文件操作中的“w”操作。 

使用 > +文件名 创建一个文件(该文件本来不存在)

使用 > +已有文件名 清空文件内容

4.2 追加输出重定向

>>

>>是追加重定向操作符,用法跟 > 相同,只不过在打开已有文件后不会清除原来文件内容,而是在文件尾部继续输入内容。

>>文件名 相当于c语言文件操作中的“a”(追加)操作

 4.33.输入重定向

<

在Linux中,< 是另一种重定向操作符,它用于将文件的内容作为输入提供给命令。具体来说,< 将文件的内容重定向到命令的标准输入。

 例如,考虑以下命令:

 上述命令使用 cat 命令,它通常用于显示文件的内容。然而,通过使用 < 操作符,它将文件 output.txt 的内容作为输入提供给 cat 命令,而不是直接在命令行中指定文件名。这样可以将文件的内容传递给命令,而不是手动键入。

简单来说,在linux系统中,我们的键盘,显示屏其实都是“文件”。我们用cat+字符串,将字符串从键盘文件输入到显示屏文件,此时的文本输入源是键盘文件,而当我们使用cat  <  某个文件,此时也会将信息输入到显示屏中,但是输入源却变成了“某个文件”。这就是输入重定向。

如果输入重定向的文件不存在的话,会报错,相当于c语言文件操作中的"r“操作

cat < output.txt 和cat output.txt有什么区别?

 在大多数情况下,这两个命令会产生相同的结果,即显示 output.txt 文件的内容。然而,存在一些微妙的区别:

  • 如果你正在编写一个脚本或命令行,使用输入重定向 < 可能更具可读性,因为它明确地指定了输入来源

  • 如果你只是想在终端上查看文件的内容,并不打算将其输入到其他命令中,那么直接使用文件名作为参数可能更简洁

 大概意思就是--效果差不多,意义不一样

5 more指令

more 是一个用于查看文本文件内容的命令。它允许用户逐页浏览文件,使得在显示大型文本文件时更加方便。相比于 cat 命令,more 提供了分页显示的功能。

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

常用选项:

-n 对输出的所有行编号

q 退出more 

注意:

more只能向后翻看信息,并不能前后随意翻找信息

建一个大一点的文件big.txt,输入脚本

 i=1; while [ $i -le 10000 ]; do echo "hello linux $i"; let i++; done > big.txt

这个脚本可以输入一万行"hello linux i" (其中i从1-10000)到文件big.txt中

如果使用cat来查看这种内容比较多的文件,就会一直刷屏,很难翻找信息

使用more,打满一屏幕的输出就停下来了

此时输入 / 关键字 可以迅速向下找到带有关键字的信息的位置

按q退出

 6.less指令(重要+常用)

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极 其强大。 less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

 同样也是用 /+关键字 搜索,按q退出

 7.head指令

head用来显示开头某个数量的文字区块,head 用来显示档案的 开头至标准输出中,通常用于监视日志文件或实时查看文件的变化

head  文件名默认查看前十行信息

 head -n 文件名 查看前n行信息        

8. tail指令

跟head指令相反,用于显示文件的末尾内容。通常用于监视日志文件或实时查看文件的变化。 

tail  文件名默认查看后十行信息

 tail -n 文件名显示后n行信息 

9. 思考:

如何输出中间的内容?

假设我们现在要获取big.txt文件中的第8000-8010行的内容。

方法1:

步骤一:用head获取big.txt前8010行的内容

步骤二:用>将head获取的内容输出重定向到一个临时文件temp.txt中

步骤三:用tail获取temp.txt文件中的后11行内容

 方法二:

使用 | (管道)

head -8010 big.txt | tail -11

 10. | (管道)

在Unix和类Unix系统中,管道(pipeline)是一种强大的机制,它允许将一个命令的输出直接作为另一个命令的输入。通过管道,可以将多个命令串联起来,形成一个数据处理流水线。

command1 | command2

这个命令的意思是,command1 的输出将成为 command2 的输入。这种机制使得可以通过连接简单的命令来完成复杂的数据处理任务,提高了系统的灵活性和可组合性。

 多级管道

多级管道是指将多个命令通过管道连接起来,形成一个多层次的数据处理流水线。这样可以在一条命令中实现更复杂的数据处理任务。理解多级管道时,可以将其看作是一系列数据处理步骤的组合,其中每个步骤都是一个独立的命令

解读上面指令:先是在big.txt文件中获取前8080行的内容,并将这些内容作为tail的输入数据,再在这些数据中获取后11行的内容,最后将这11行的内容再次作为指令wc的输入数据--计算行数,得到11.

14.时间相关的指令

14.1date显示

date 指定格式显示时间: date +%Y:%m:%d

date 用法:date [OPTION]... [+FORMAT]

在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

%H小时
%M分钟
%S
%X相当于 %H:%M:%S
%d日 
%m月份 
%Y完整年份 (0000..9999)
%F相当于 %Y-%m-%d

 

14.2 date +%s(小写s)

当前时间转换为时间戳

时间戳概念

在Unix和类Unix系统中,时间戳通常是指自1970年1月1日UTC午夜(称为“Epoch”)以来经过的秒数,这被称为Unix时间戳或Epoch时间。Unix时间戳是一种广泛使用的时间表示方式,它可以被存储为整数,方便在计算机系统中进行处理。

14.3 date -d@时间戳

将时间戳转换为时间

考虑以下指令:

date +%Y-%m-%d -d @0

这条指令的意思是 将0这个时间时间戳转换为 “%Y-%m-%d”的格式

另外要注意的是,由于国内服务器会自动将时间转换为北京时间,所以0时间戳对应的时分秒应该是8:00:00

15.cal指令

cal 是一个用于显示日历的命令。在许多Unix和类Unix系统上,cal 命令用于显示当前月份的日历,或者指定月份和年份的日历。

命令格式: cal [参数][月份][年份] 

用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份 

常用选项:

-3 显示系统前一个月,当前月,下一个月的月历

-j  显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

-y  显示当前年份的日历 

15.1 cal

直接输出今天的日历

15.2 cal 参数

输出这个参数代表的年份的日历(1-9999)

15.3 cal -3

显示前一个月、当月、下一个月的日历

15.4 cal -y

当前年份的日历

15.5 cal -j 

输出今天是2023年的第几天(11月29日)

 16.find指令:(重要) -name

Linux下find命令在目录结构中搜索文件,并执行指定的操作

查找某个路径下的文件

 find pathname -name filename

其中pathname是路径,表示的是你要在哪个路径下面去查找,-name选项表示的是查找方式是按文件名查找, filename是要查找的文件名。输出绝对路径。

 17 grep指令

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

语法: grep [选项] 搜寻字符串 文件 

功能: 在文件中搜索字符串,将找到的行打印出来 

 常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

 grep命令又叫行文本过滤工具,可以将所有具有关键字的行打印出来

考虑以下命令

grep "999" big.txt

 这条命令的意思是,从big.txt文件中搜索所有具有关键字999的行,并将其打印。

17.1 grep -n

输出带行号 ,这里的行号是指在原本文件中的行号

17.2 grep -v

显示出没有 '关键字' 内容的那一行

17.3 grep -i

忽略匹配信息的大小写 

17.4 思考

如何在temp.txt中搜索 不包含“Bit”关键字的行,并且不考虑“Bit”的大小写结果带行号

18. zip/unzip 指令

zip打包压缩,unzip解压解包

语法: zip 压缩文件.zip 目录或文件

常用选项:

-r 递 归处理,将指定目录下的所有文件和子目录一并处理 

18.1考虑以下打包压缩命令

zip -r test11.zip 11 

 test11.zip表示新的文件名,11表示需要打包的文件名

18.2考虑以下解包命令

unzip test11.zip -d ./22

其中呢,-d选项表示将解压的目录提取到某个目录下。如果不写-d,那么就会默认解压在当前路径的目录下

18.3安装zip/unzip指令

yum install -y unzip zip

18.4什么是打包压缩?

打包就是将一大堆文件或者目录变成一个总的文件,而压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

18.5 为什么要打包压缩?

1.缩小体积,占据磁盘空间比较小,下载快

2.不会轻易丢失文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/205420.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux的netstat命令和ss命令

1. 网络状态 State状态LISTENING监听中&#xff0c;服务端需要打开一个socket进行监听&#xff0c;侦听来自远方TCP端口的连接请求ESTABLISHED已连接&#xff0c;代表一个打开的连接&#xff0c;双方可以进行或已经在数据交互了SYN_SENT客户端通过应用程序调用connect发送一个…

【开源】基于Vue和SpringBoot的企业项目合同信息系统

项目编号&#xff1a; S 046 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S046&#xff0c;文末获取源码。} 项目编号&#xff1a;S046&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合…

运维 | 四层和七层负载均衡介绍

关注: CodingTechWork 负载均衡 负载均衡介绍 概念 负载均衡是建立在现有的网络结构之上&#xff0c;提供一种廉价且透明的方式进行网络设备和服务器带宽的扩展&#xff0c;从而增加吞吐量&#xff0c;加强应用服务的数据处理能力&#xff0c;有效提高网络的灵活性和可用性。…

找不到 sun.misc.BASE64Decoder ,sun.misc.BASE64Encoder 类

找不到 sun.misc.BASE64Decoder &#xff0c;sun.misc.BASE64Encoder 类 1. 现象 idea 引用报错 找不到对应的包 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;2. 原因 因为sun.misc.BASE64Decoder和sun.misc.BASE64Encoder是Java的内部API&#xff0c;通…

矩阵快速幂及应用实战[C/C++]

矩阵快速幂 矩阵快速幂可以用来优化递推问题&#xff0c;如状态机DP&#xff0c;需要一丢丢线性代数里面矩阵的概念&#xff0c;只需要知道简单的矩阵乘法&#xff0c;结合我们普通的二分快速幂就能很快的掌握矩阵快速幂。 问题引入 三步问题。有个小孩正在上楼梯&#xff0c;楼…

【海思SS528 | VDEC】MPP媒体处理软件V5.0 | VDEC的使用总结

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

Python语言学习笔记之五(Python代码注解)

本课程对于有其它语言基础的开发人员可以参考和学习&#xff0c;同时也是记录下来&#xff0c;为个人学习使用&#xff0c;文档中有此不当之处&#xff0c;请谅解。 注解与注释是不一样的&#xff0c;注解有更广泛的应用&#xff1b; 通过注解与注释都能提高代码的可读性和规…

RabbitMQ消息模型之Work Queues

Work Queues Work Queues&#xff0c;也被称为&#xff08;Task Queues&#xff09;&#xff0c;任务模型&#xff0c;也是官网给出的第二个模型&#xff0c;使用的交换机类型是直连direct&#xff0c;也是默认的交换机类型。当消息处理比较耗时的时候&#xff0c;可能生产消息…

Altium Designer学习笔记8

创建原理图元件&#xff1a; 画出原理图&#xff1a; 根据规则书画出原理图&#xff1a; 根据规则书画出封装图&#xff1a; 参照&#xff1a; 确认下过孔的内径和外径的最小允许值。

GoLang切片

一、切片基础 1、切片的定义 切片&#xff08;Slice&#xff09;是一个拥有相同类型元素的可变长度的序列它是基于数组类型做的一层封装它非常灵活&#xff0c;支持自动扩容切片是一个引用类型&#xff0c;它的内部结构包含地址、长度和容量声明切片类型的基本语法如下&#…

关于图像识别,你不得不知的三大要点

图像识别的重要性 图像识别不仅可以加速处理繁琐的任务&#xff0c;而且还可以比人工图像检查更快速或更准确地处理图像。图像识别是应用于诸多领域的关键技术&#xff0c;也是深度学习应用的主要驱动因素&#xff0c;如&#xff1a; 视觉检查&#xff1a;在制造过程中识别零部…

初刷leetcode题目(11)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

Linux:创建进程 -- fork,到底是什么?

相信大家在初学进程时&#xff0c;对fork函数创建进程一定会有很多的困惑&#xff0c;比如&#xff1a; 1.fork做了什么事情?? 2.为什么fork函数会有两个返回值?3.为什么fork的两个返回值&#xff0c;会给父进程谅回子进程pid&#xff0c;给子进程返回0?4.fork之后:父子进…

Unity 引擎宣布:自 2024 年起,开发者需支付费用!

Unity引擎宣布的新的收费模式&#xff0c;从2024年1月1日开始&#xff0c;根据游戏的安装量来对开发者进行收费。具体来说&#xff0c;每次游戏被下载时&#xff0c;UnityRuntime也会被安装&#xff0c;因此可能会产生额外的费用。对于开发者来说&#xff0c;需要注意以下几点&…

yml转properties工具

目前搜索到的大部分代码都存在以下问题&#xff1a; 复杂结构解析丢失解析后顺序错乱 所以自己写了一个&#xff0c;经过不充分测试&#xff0c;基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外&#xff0c;还可以生成代码、sql转json等&#xff0c;可…

嵌入式Linux学习(2)——经典CAN介绍(上)

目录 一. CAN与ISO-OSI Model 二. CAN通信 2.1 接线方式 2.1.1 闭环网络 2.1.2 开环网络 2.2 收发流程 2.2.1 发送 2.2.2 接收 三. CAN BUS访问与仲裁 3.1 “线与”机制​ 3.2 仲裁机制 REF CAN&#xff08;Controller Area Network&#xff09;总线协议是由 BOSC…

【蓝桥杯选拔赛真题26】C++字符串逆序 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++字符串逆序 一、题目要求 1、编程实现 2、输入输出 二、算法分析

MySQL 中的锁(三)

8.7. 死锁和空间锁 一般来说&#xff0c;只要有并发和加锁这两种情况的共同加持下&#xff0c;都会有死锁的身影。 死锁的具体成因&#xff0c;借用我们在并发编程中的内容&#xff1a; 8.7.1. 死锁 8.7.1.1. 概念 是指两个或两个以上的进程在执行过程中&#xff0c;由于竞…

JSON.stringify方法详解 后端接受JSON数据格式

1、方法定义&#xff1a;JSON.stringify(value, replacer, space) 参数说明&#xff1a; value&#xff1a;js对象 replacer&#xff1a;替换对象&#xff0c;可以是一个方法、对象或数组&#xff0c;将value按照替换规则展示。 space&#xff1a;填充参数&#xff0c;可以是数…

Linux常用命令——rm 命令

文章目录 Linux系统中的rm命令是一个非常强大且危险的工具&#xff0c;用于删除文件和目录。由于其具有不可逆的特性&#xff0c;了解其参数和正确使用非常重要。 1. 基本用法 rm命令的基本格式是rm [选项] 文件或目录。不带任何选项时&#xff0c;rm命令仅删除文件。 示例&a…