Linux基本指令总结(二)

1.man指令(重要

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

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

常用选项:

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

num 只在第num章节找

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

示例:

查询rm命令:

Linux基本指令总结(二)_第1张图片

Linux基本指令总结(二)_第2张图片

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

安装man手册

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

安装指令

yum -y intall man-pages

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

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

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

答案是可以的。

Linux基本指令总结(二)_第3张图片

Linux基本指令总结(二)_第4张图片

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指令,于是就马上停下来了

Linux基本指令总结(二)_第5张图片

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

Linux基本指令总结(二)_第6张图片

Linux基本指令总结(二)_第7张图片

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

2.结束异常指令 ctrl+c

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

Linux基本指令总结(二)_第8张图片

3.echo指令

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

基本语法

echo [字符串]

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

Linux基本指令总结(二)_第9张图片

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

 

4. 重定向操作符

4.1.输出重定向 

>

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

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

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

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

4.2 追加输出重定向

>>

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

Linux基本指令总结(二)_第10张图片

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

 4.33.输入重定向

<

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

 例如,考虑以下命令:

Linux基本指令总结(二)_第11张图片

 上述命令使用 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来查看这种内容比较多的文件,就会一直刷屏,很难翻找信息

Linux基本指令总结(二)_第12张图片

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

Linux基本指令总结(二)_第13张图片

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

Linux基本指令总结(二)_第14张图片

按q退出

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

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

 同样也是用 /+关键字 搜索,按q退出Linux基本指令总结(二)_第15张图片

 7.head指令

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

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

Linux基本指令总结(二)_第16张图片 head -n 文件名 查看前n行信息        

Linux基本指令总结(二)_第17张图片

8. tail指令

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

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

Linux基本指令总结(二)_第18张图片

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

Linux基本指令总结(二)_第19张图片

9. 思考:

如何输出中间的内容?

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

方法1:

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

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

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

Linux基本指令总结(二)_第20张图片

 方法二:

使用 | (管道)

head -8010 big.txt | tail -11

Linux基本指令总结(二)_第21张图片

 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

Linux基本指令总结(二)_第22张图片 Linux基本指令总结(二)_第23张图片

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

直接输出今天的日历

Linux基本指令总结(二)_第24张图片

15.2 cal 参数

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

Linux基本指令总结(二)_第25张图片

15.3 cal -3

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

Linux基本指令总结(二)_第26张图片

15.4 cal -y

当前年份的日历

Linux基本指令总结(二)_第27张图片

15.5 cal -j 

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

Linux基本指令总结(二)_第28张图片

 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的行,并将其打印。

Linux基本指令总结(二)_第29张图片

17.1 grep -n

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

Linux基本指令总结(二)_第30张图片

17.2 grep -v

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

Linux基本指令总结(二)_第31张图片

17.3 grep -i

忽略匹配信息的大小写 

17.4 思考

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

Linux基本指令总结(二)_第32张图片

18. zip/unzip 指令

zip打包压缩,unzip解压解包

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

常用选项:

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

18.1考虑以下打包压缩命令

zip -r test11.zip 11 

 test11.zip表示新的文件名,11表示需要打包的文件名,后面可接多个需要打包的文件名,用空格隔开

Linux基本指令总结(二)_第33张图片

18.2考虑以下解包命令

unzip test11.zip -d ./22

Linux基本指令总结(二)_第34张图片

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

18.3安装zip/unzip指令

yum install -y unzip zip

18.4什么是打包压缩?

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

18.5 为什么要打包压缩?

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

2.不会轻易丢失文件

19 .tar指令

跟zip指令一样,tar指令也可以将多个目录或者文件打包压缩,只不过底层实现其压缩功能算法不同而已。

语法:tar [选项] 文件与目录 .... 参数: 

常用选项:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

-C : 解压到指定目录 

由于选项非常多,我这里只介绍最常见的几种用法。

打包压缩只需要记住 -czf选项,加v表示输出过程,如-cvzf(顺序无影响)

19.1 考虑以下打包压缩命令

 tar -czf 111.tgz 111

这条指令等价于 zip -r 111.zip 111 

解压只需要记住 -xzf选项,加v表示输出过程,如-xvzf  

19.2考虑以下指令,直接解压

 tar -xvzf test1.tgz

Linux基本指令总结(二)_第35张图片

19.3考虑以下指令,解压到指定目录

  tar -xvzf test1.tgz -C ../333

 注意这里的-C,C是大写

 20.bc指令

bc指令就是召唤一个linux下的计算器,可以很方便的进行浮点运算

安装bc指令

yum install -y bc

演示bc指令: 

Linux基本指令总结(二)_第36张图片

20.1考虑以下指令

echo 1+2+3+4+5 | bc

 

21.uname –r指令

uname用来获取电脑和操作系统的相关信息 ,可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

语法:uname [选项]  

 常用选项:

-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称

21.1考虑以下指令:

uname -r

 

22.常用的几个热键

[Tab]按键---具有『命令补全』和『档案补齐』的功能

[Ctrl]-c按键---让当前的程序『停掉』

[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit        

23.关机

语法:shutdown [选项]

常见选项:

-h : 将系统的服务停掉后,立即关机。

-r : 在将系统的服务停掉之后就重新启动

-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思

注意

如果是在云服务器上运行linux,建议不要去关机,因为此时的关机就相当于将服务器关掉,要想在打开就要去后台打开了,所以我这里就不演示了。 

你可能感兴趣的:(linux操作系统,linux,运维,服务器,java,开发语言,数据结构,c语言)