当前位置: 首页 > article >正文

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.kler.cn/a/149691.html

相关文章:

  • 【OceanBase 诊断调优】—— ocp上针对OB租户CPU消耗计算逻辑
  • HTML之表单学习记录
  • 《AI 使生活更美好》
  • Java-Redisson分布式锁+自定义注解+AOP的方式来实现后台防止重复请求扩展
  • Docker无缝更新Zentao
  • 什么是 Real-Time Factor (RTF)
  • 【设计模式】行为型模式-第 3 章第 5 讲【观察者模式】
  • CSS特效020:涌动的弹簧效果
  • thinkphp6生成PDF自动换行
  • Iar 8051等各种版本安装破解过程
  • 基于UI交互意图理解的异常检测方法
  • 基于FPGA的五子棋游戏设计
  • 在线 SQL 模拟器SQL Fiddle使用简介
  • Python3基础
  • 爬虫-基于python的旅游景点推荐系统的设计与实现-计算机毕业设计源码24044
  • Linux加强篇002-部署Linux系统
  • SimpleDateFormat在多线程下的安全问题
  • 392. 判断子序列
  • 【JavaScript】3.3 JavaScript工具和库
  • 【开题报告】基于深度学习的驾驶员危险行为检测系统
  • WebSocket--1.协议解析
  • Pt100 和 Pt1000 传感器:重要事实和差异
  • 纯前端实现导入excel数据
  • 【解决视觉引导多个位置需要标定多个位置的问题】
  • C++ cmake脚本链接Boost库
  • 网关路由器双栈配置中的IPv6相关选项解析