0


【Linux修炼】3.常见指令(下)

在这里插入图片描述每一个不曾起舞的日子,都是对生命的辜负。

Linux常见指令(下)

01. find指令:—name

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,但在这里我们只需要了解搜索功能。
  • 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

语法: find pathname -options
功能: 用于在文件树种查找文件(递归查找),并作出相应的处理(可能访问磁盘)
常用选项:

  • -name 按照文件名查找文件。

image-20221001193704607

当我们进行find搜索时,可能因访问磁盘进而导致效率低下。

此外,还有一个指令可以进行搜索,但只能搜索命令:

which + 命令
[cfy@VM-8-3-centos ~]$ which ls
alias ls='ls --color=auto'
    /usr/bin/ls
[cfy@VM-8-3-centos ~]$ which pwd
/usr/bin/pwd
[cfy@VM-8-3-centos ~]$ 
  • 在这里浅谈一下为什么文件夹在ls 的时候会产生不同颜色,我们经过which查找发现,ls指令中含有color=auto的颜色选项,而ll在which查找中发现,其解释是:ll = ls -l
  • 我们还发现这个演示中,ls的介绍含有alias ,事实上,alias可以对指令进行重命名,或者是起别名,如下就是我们对ls -l进行了重命名:

image-20221001195411865

除了上述两个搜索命令,还有一个指令:

whereis

,其作用是在特定的路径下,查找指定的文件名对应的指令或者文档,如果不存在,也会搜到近似的名字。

image-20221001200025701

三个指令查找范围的比较:which < whereis < find

02. grep指令

语法:

grep [选项][文件名]

功能: 文本内容的行过滤工具,会匹配文本中的关键字,匹配上的进行行显示。

我们进行如下演示:

image-20221001201412642

通过这样就可以显示筛选的文本信息了。

常用选项:

  • -i :忽略大小写d的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,即显示出没有’搜寻字符串’内容的那一行

在此之前,可以通过vim或者nano进入到test.txt文本中增加一些值,然后通过命令寻找。下面开始演示:(-v不方便在test.txt中进行演示,知道如何操作即可)

  1. -i

image-20221001202858368

  1. -n:image-20221001203034196
  2. 当然,选项也可以同时结合使用:(先后顺序是任意的)image-20221001203304082

补充:

  1. grep可以和其他命令,结合管道,来进行某些匹配工作
  2. wc -l ,wc可以统计行数,下面具体看看:

我们通过管道的形式,得到查找到字符的总行数:

image-20221001204013236

此外,我们直接wc显示了三个数据:依次是:行数、字数、字节数

而通过wc的不同选项也可以显示不同的信息:

  • -l 行数
  • -c 字节数
  • -m 字符数
  • -w 字数

补充:sort指令

在这里,增加一个额外的知识:

sort

sort按名字来说是排序的意思,因此我们touch一个文件:

image-20221001204343264

增加数据之后,我们退出这个编辑,使用sort命令:

image-20221001204508408

  • 因此我们可以得出,sort在Linux命令中,是以行为单位,按照ASCII码值进行升序排序。因此sort可以对文本内容进行排序。

补充:uniq指令

uniq指令可以将文件中相邻的重复值进行去重

image-20221001211103986

但如果我们想将反是重复的值都去掉,这时就可以

sort

uniq

一起使用,即先用sort让值相同的值相邻,然后再利用uniq进行删除相邻的重复值。(通过管道实现)

image-20221001211453458

但我们发现,这样只是显示中的值被删掉,但文件的内容还是原封未动的,因此我们需要重定向到文件中才能进行更改。通过打开这个文件并重定向这个文件的结果如下:

image-20221001212440706

然而,事实并非我们所想的那样,当我们重定向并cat这个文件之后,发现里面什么都没有。

  • 这种现象就值得深入探讨一下:

通过这个情况我们发现,重定向不能把数据来源的文件,又重新定向到这个文件,这是做不到的。

实际上在系统当中在做指令解析的时候,重定向不是最后一步,而是首先会把重定向到的文件打开然后清空,这样之后,如果再读取这个文件,就读不到文件的内容。所以说,重定向不能定向到原来的文件。

因此想改变文件的内容可以这样进行处理:借助一个tmp文件,让这个更改之后的数据重定向到tmp文件中,然后再通过tmp文件重定向到原来的文件中。

03. zip/unzip指令

在讲解之前先输入指令zip,如果发现没有这个指令,则我们需要通过此指令安装:

yum install -y unzip zip

就可以将这两个命令安装啦,安装之后再输入zip,会得到这样的结果:(安装需要root用户的权限,因此我们需要在root用户下进行安装,或者用sudo将子用户进行提权)

image-20221002115327366

这样就代表我们已经安装完毕了。

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式

unzip:在当前目录下进行解压

接下来就可以进行下面的操作:

zip my.zip 106

image-20221002121110843

我们发现,经过一系列操作之后,最后解压发现,里面原本的内容并不存在,因此这只是将目录进行了压缩,但这不是我们想要的,我们想要的是将内部文件一起打包到my.zip中,因此,我们在这里就需要递归压缩

-r

(在此之前将前面生成的文件都删掉)

即命令:

zip -r my.zip 106

image-20221002121827519

通过这样的指令,最终就得到了我们想要的。

但对于unzip指令,我们知道这是在Linux操作系统中,而在windows系统中可以看到一个是解压到当前文件夹,一个是解压到……

,也就是你想指定的路径当中,因此unzip通过

-d

选项也可以进行这样操作:(接下来展示将压缩的文件解压到/home/cfy/

(这里提示一下:所对应的路径就是子用户的路径,就是/home/cfy/)

指令:

unzip my.zip -d /指定路径

解包解压到

  • 为什么要打包压缩呢?

在使用互联网的时候,安装软件时有很多大大小小的文件,打包可以便于运输和储存,不易丢失,并且让用户看起来不是那么多。

04. tar 指令(重要)

tar [-cxtzjvf] 文件与目录 …
参数:

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :不打开压缩文件,直接查看 tarfile 里面的文件!
  • -z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :解压或者压缩的过程中同步显示解压或压缩文件列表!这个常用,但不建议用在背景执行过程!(需要和f一起使用)
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数
  • -C : 解压到指定目录

上述的我们只挑常用的组合去介绍:

  • tar -czf my.tgz 106 # 打包并压缩
  • tar -xzf my.tgz # 解包并解压

image-20221002140446454

通过上面的组合形式,我们就可以将其压缩和解压。其中,选项中的

-

写或者不写都是可以的。在组合指令时,顺序也是随意的,但f一定要在最后面。

举个例子,在命令中用选项

-tf

组合,就可以按照t原本的意思,不解压直接查看里面的具体内容。

对于此命令,也可以解压到指定的位置:

tar xzvf my.tgz -C ~

**注:

~

是家目录**

image-20221002142454439

在执行指令的过程中,我们回车然后显示了几行信息,这是v选项的作用。上述我们通过-C命令,就将压缩包解压到了

~

路径下。

此外,对于压缩包,我们了解到的还有rar压缩包等,这些在网上搜命令都是可以的,使用方式和这两个相同,因此,就需要小伙伴们自己去了解啦。

05. bc指令

bc指令在Linux中相当于计算器的功能,但是不是太重要,因为windows的计算机已经足够好用了,这里就直接展示其具体结果:

image-20221002143816173

06. uname -r指令

语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:

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

image-20221002144319838

07. 重要的几个热键

  • [Tab]按键—具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
  1. [tab] :image-20221002150644807
  2. [Ctrl] - c:> 对于这个热键,如果运行的程序不终止,】或者出现错误,可以无脑进行ctrl c ,就能直接退出。
  3. [Ctrl] - r:> 这个热键可以自动搜索历史命令,左右即可选中。
  4. [Ctrl] - d:> 退出当前用户。

补充:

\

反斜杠可以续行,即如果出现命令过长导致需要换行时,可以在最后打出

\

,从而回车之后可以继续接着上一行输入。

08. 关机

语法:shutdown [选项]

常见选项:

  • -h : 将系统的服务停掉后,立即关机。
  • -r : 在将系统的服务停掉之后就重新启动。
  • -t sec :-t 后面加秒数,亦即『过几秒后关机』的意思

以下命令作为扩展:

安装和登录命令: login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
文件处理命令: file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
系统管理相关命令: df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
网络操作命令: ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
系统安全相关命令: passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
其它命令: tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

这里再记录几条命令:

  1. lscpu :查看cpu信息
  2. lsmem:查看内存信息
  3. df -h:查看磁盘使用情况
  4. 通过whoami可以看你的用户名字:

image-20221002153324264

  1. 此外,通过指令who我们也可以看到有几个人正在使用服务器。

image-20221002152924294

看来,2022-10-22-15:29这个时刻除了我还有两位佬正在使用(滑稽)

到这里常用命令的讲解也就结束了,三篇文章总结了常用的命令,当然我们后续还会继续学习,一起加油吧!💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕!请添加图片描述

标签: linux 服务器 运维

本文转载自: https://blog.csdn.net/NEFUT/article/details/127143416
版权归原作者 每天都要进步呀~ 所有, 如有侵权,请联系我们删除。

“【Linux修炼】3.常见指令(下)”的评论:

还没有评论