网络安全快速入门(十二)(下) 目录结构相关命令补充

 12.4 补充命令

我们已经了解了linux的目录结构,接下来我们大概看一下针对目录及文件的一些相关命令,

我们本章只讲三个目录及文件相关的命令,分别是tree,find及校验文件命令,我们一个一个来看这些命令。

12.4.1 tree命令

        tree命令一般是没有的,因此我们需要进行安装,所以这里需要先配置好yum,再用yum安装tree。

(因为本章节并不涉及到yum安装,因此请各位移步至下面博客来配置yum源!!)

Linux系统yum安装

我们具体来看看,tree是个怎么个事:

tree格式如下:

   tree /目录

我们来看看效果

查看/root的目录结构

看着似乎不是很多,我们来举一个例子多点的

看看 /etc/sysconfig/network-scripts/里的目录结构

可以看到有一根根县连着呢,这个就可以大概看到一个结构图,tree的命令就是简单梳理目录的各个文件的关系。

tree就简单讲到这里,接下来我们来看看下一个命令

12.4.2 locate命令

locate,这个命令主要是用来搜索文件的,该命令有一个优点,搜索速度快,但是结果也不准确,因为linux中维护了一个数据库,数据库中记录了系统中的每个文件的文件名和文件的保存路径,这个数据库每天早上更新一次,因此在当天出现的文件则不会去显示,

说白了:locate搜索文件的时候,就是去检索数据库中的记录,所以搜索速度快,但数据库是日更的,因此需要在第二天的固定时间才能看到这一天的记录!!!!

12.4.3 find

find 是一个搜索命令,主要是用来指定搜索的位置

格式如下

find 搜索目录 搜索条件 执行的动作 
搜索目录:

指定搜索的位置,也可以理解为路径加上目标文件,

这里先举个例子吧

我们想要搜索/etc/passwd文件,需进行以下操作

find /etc/passwd

我们来看结果:

结果搜到了/etc/passwd,完成!,下一个
这里要注意的是,查询文件也可以通过相对路径进行文件查询,查询不到则会显示以下信息
搜索条件:
指定根据什么条件进行搜索,常用的搜索条件如下:
  • -name:根据文件名进行搜索
  • -iname:指定查找文件的文件名作为查找条件(忽略大小写)
  • -group :根据文件的属组进行查找
  • -user :根据文件的属主进行查找
  • -uid :根据文件的属主ID进行查找
  • -gid :根据文件的属组ID进行查找
  • -nogroup:查找没有属组的文件
  • -nouser:查找没有属主的文件
  • -size:根据文件的大小进行搜索
  • -type: 根据文件的类型进行查找
  • -perm:根据文件的权限进行搜索
  • -ctime:根据文件的修改事件进行搜索,单位是天
  • -mtime:根据文件的编辑时间进行搜索,单位是天
  • -atime:根据文件的访问时间进行搜索,单位是天
  • -mmin: 根据文件的编辑时间进行搜索, 单位是分钟
  • -amin : 根据文件的修改时间进行搜索, 单位是分钟
  • -cmin :根据文件的修改事件进行搜索,单位是分钟
我们一个一个来举例子
-name
我们已经知道了-name是指定查找文件的文件名作为查找条件,具体的查找格式如下:
 find 查询的路径 -name 查询的文件名称
我们还是以查询/etc/passwd为例子,查询/etc/passwd需要进行以下操作:
find /etc -name passwd

我们来看结果:

可以看到/etc下有两个passwd,完成!(一般情况下建议file后加引号)
我们现在进行下一个例子,如果我们不知道查询问件名,我们可以进行模糊输入,模糊输入命令格式如下:
find /etc -name "pass*"
小贴士:
这里我们用到了 *,该符号代表任意个任意字符,我们已经知道他是代表任意个任意个字符, 自然也可以代表0个符,因此我们一般用*来进行模糊查询。
我们看结果:
ok,下一个!
-iname
我们都知道Linux是严格区分大小写的,说白了,就是指定查找文件的文件名作为查找条件(忽略大小写)
还是进行举例,还是对/etc 下的passwd进行举例,使用-iname需要进行以下操作:
find/ etc -iname "PASSWD"
我们来看结果
iname完成,我们开始下一个内容。

(这里因为读者的Linux目前只有root用户,并没有普通用户,因此这里的区块只展示root相关的属主及数组!!!)


-group gname:
根据文件属组名称进行查找
格式:
find 路径 -group "属组名称"

例:在/root下找出属组是root的文件

操作如下

find /root -group gname "root"

我们看执行结果:

ok,完成!!

-user uname
根据文件的属主进行查找
格式如下:
find 路径 -user "属主名称"

还是在/root目录下,查找属主为root的文件

查询完毕!!

下一个

 -uid UID:
根据文件的属主ID进行查找
小贴士:
属主id,数组id,均在passwd文件中可以查询,在passwd内容中以冒号分隔的第三个数字为属主id,第四个为数组id,具体如下图
在我们了解完属组id和属主id后,我们接着来看-uid,-uid的命令格式跟上述内容大差不差,格式如下
find 路径 -uid "属主id"

我们还是以root为例,查找root中属主为0的文件

命令如下

find /root -uid "0"

我们看结果

ok,完成,下一个
-gid GID:

根据文件的属组ID进行查找

命令格式如下

find 路径 -gid "属组id"

老规矩,root,查看属组为0的文件

命令如下

find /root -gid "0"

看结果

ok,下一个
-nogroup:
查找没有属组的文件
命令格式如下:
find 路径 -nogroup

这里我们不查root了,我们查根目录下没有属组的为背景

命令如下:

find / -nogroup

我们看结果

可以发现,大多数都是未查询到,我们完了一起说!
-nouser:
查找没有属主的文件
命令格式如下:
find 路径 -nouser

还是查根目录没有属主的文件:

命令如下:

find / -nouser

 我们看结果

通过查询,我们发现,这里显示没有找到这样的文件或目录,说明所有文件均有属组和属主!!!
-size 

这个搜索条件是根据文件的大小进行搜索,格式如下

find 路径名 -size [+-]n 

有人可能要问了,n表示什么呢?

n:表示文件的大小,后面跟上的是单位,常用的单位有如下:
  •         ‘b’ 表示512字节的块,如果不指定单位类型,那么默认就是以字节块为单位
  •         ‘c’ 为字节
  •         ‘w’ 两个字节的字
  •         ‘k’ 以KB为单位
  •         ‘M’ 以MB为单位
  •         ‘G’以GB为单位

我们先看例题,再了解[+-]

在/root下找出文件大小是1m的文件

命令如下

find /root -size 1M

这里我们可能还会有疑问,root下有这么多1m的文件么?

其实,在不加其他条件时,默认是寻找大于0m小于1m的文件,如果我们把1m换成5m时,则会寻找大于4m小于5m的文件!!!

因此,这里就要用到[+-]了,

[+-]的用法:

  • +:大于指定的值
  • -:小于指定的值

我们直接看例题:

在/root下找出文件大于是3m的文件

命令如下:

find /root -size +3M

看结果

可以看到,未查询到结果,因此root下没有大于3MB的文件!!

-type 类型:
        根据文件的类型进行查找
常用的文件类型有以下三种:
  • d:目录类型文件
  • f:一般文件
  • l:连接文件

命令格式如下

 find 目录 -type 文件类型

举一个例子,查看root下的一般文件

命令:

 find /root -type f

我们看结果

ok了,下一个

-mtime [+-]n
文件的创建(单位是天)
-ctime [+-]n
文件修改时间(单位是天)
-atime [+-]n

文件的访问时间(单位是天)

这三个命令大差不差,因此我放一块说

n的单位为天,有以下三种写法

  • -mtime 5:表示5天之前的那一天所创建的文件
  • -mtime -5:表示在5天之内所创建的文件
  • -mtime +5:表示在5天之前所创建的文件

我们来举个例子:

找出root下上次访问时间在7天之前的文件
命令如下:
find /root -atime +7

看结果

ok
分钟命令与上面三个命令用法一模一样,因此这里只放命令,不进行演示
  • -mmin:
    • 根据文件的编辑时间进行搜索, 单位是分钟
  • -amin :
    • 根据文件的修改时间进行搜索, 单位是分钟
  • -cmin :
    • 根据文件的修改事件进行搜索,单位是分钟
组合条件:
我们上面了解到了不少,但如果我们要进行组合查询我们该怎么办呢?
需要用到下面命令
  • -a:且,要求多个条件同时满足
  • -o:或,要求多个条件满足任意一个即可
  • -not:不是

这里我们举一个例子

从root下找文件类型是一般文件,并且后缀是txt

  find /root -type f -a -name *.txt

我们来看结果

ok!!

执行的动作:
  • -print:
    • 将找到的文件输出到终端(默认)
  • -ls:
    • 将找到的文件以长格式的形式输出(相当于执行ls -l)
  • -exec:
    • 表示要执行一个命令

这里我们只讲exec格式,格式如下

find xxx -exec 命令 \;

举例:

删除tmp下后缀是txt的文件。
命令如下
 find /root -name "*.txt" -exec rm -rf {} \;

我们来看结果

root下没有后缀为.txt文件,说明已被删除!!

find命令完工!!!

 12.4.4 校验文件

这个命令相比较find命令就比较简单了,这个命令主要是用来校验文件,查看文件是否被修改,具体分为两个操作:

  • 生成校验值
  • 比对校验
生成校验值

我们将etc下的passwd文件,shadow文件生成校验,命令格式如下

md5sum /etc/passwd /etc/shadow >0513.md5check

此时我们ls一下欸,会发现当前目录下多出一个文件

我们看一下这个一般文件的内容

会发现有两个码,但请注意:这个不是乱码,这个是通过md5编码将这两个文件内容转换成md5编码,如果如果文件内容被修改,则编码将会完全不一样!!!

 我们随便修改passwd里面的内容看一下:

我们将root系改为raot,现在我们进行验证

比对校验

命令格式如下

md5sum -c 0513.md5check

看结果

可以看到,oasswd出现异常,但shadow完好无损,由此得出passwd遭到我的篡改!

 好了,本章的补充内容就到这里了,如果有什么不足还请各位读者指出,感谢大家观看,下班!

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

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

相关文章

Leetcode2105. 给植物浇水 II

Every day a Leetcode 题目来源:2105. 给植物浇水 II 解法1:双指针 设 Alice 当前下标为 i,初始化为 0,水量为 a,初始化为 capacityA;Bob 当前下标为 j,初始化为 n-1,水量为 b&am…

【AI】DeepStream(03):deepstream_test1_app

1、简介 deepstream-test1:演示各种 DeepStream 插件构建 GStreamer 管道。从文件中获取视频、解码、批处理,然后进行对象检测,最后在屏幕上渲染框。 源码路径:/opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-test1 先看下效果 2、编译 1)…

Pytorch读取自己的数据集

数据集 流程图 导包设置tfs创建datasets.ImageFolder创建torch.utils.data.DataLoader() import time import os from tqdm import tqdm import pandas as pd import numpy as np import torch import torchvision import torch.nn as nn import torch.nn.functional as F im…

随机梯度算法应用动画场景

https://github.com/lilipads/gradient_descent_viz #include <math.h> #include <iostream> namespace Function { enum FunctionName { local_minimum, // 许多小坑 global_minimum, // 大坑 saddle_point, // 起伏山路 …

基于GWO灰狼优化的CNN-GRU-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络&#xff08;CNN&#xff09;在时间序列中的应用 4.2 GRU网络 4.3 注意力机制&#xff08;Attention&#xff09; 4.4 GWO优化 5.算法完整程序工程 1.算法运行效果图预览…

【Android踩坑】 Constant expression required

gradle 8&#xff0c;报错 Constant expression required&#xff1a;意思是case语句后面要跟常量 解决1 单击switch语句&#xff0c;键盘按下altenter&#xff0c;将switch-case语句替换为if-else语句(或者手动修改) 解决2 在gradle.properties中添加 android.nonFinalRes…

IP代理网络协议介绍

在IP代理页面上&#xff0c;存在HTTP/HTTPS/Socks5三种协议。它们都是客户端与服务器之间交互的协议。 HTTP HTTP又称之为超文本传输协议&#xff0c;在因特网使用范围广泛。它是一种请求/响应模型&#xff0c;客户端向服务器发送请求&#xff0c;服务器解析请求后对客户端作出…

meshlab: pymeshlab合并多个物体模型并保存(flatten visible layers)

一、关于环境 请参考&#xff1a;pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客 二、关于代码 本文所给出代码仅为参考&#xff0c;禁止转载和引用&#xff0c;仅供个人学习。 本文所给出的例子是https://download.csdn.net/download/weixin_42605076/89233917中的…

Centos 安装jenkins 多分支流水线部署前后端项目

1、安装jenkins 1.1 安装jdk 要求&#xff1a;11及以上版本 yum install yum install java-11-openjdk 1.2 安装jenkins 导入镜像 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo出现以下错误 执行以下命令 sudo yum …

iview(viewUI) span-method 表格实现将指定列的值相同的行合并单元格

效果图是上面这样的&#xff0c;将第一列的名字一样的合并在一起&#xff1b; <template><div class"table-wrap"><Table stripe :columns"columns" :data"data" :span-method"handleSpan"></Table></div&…

喜大普奔!VMware Workstation Pro 17.5 官宣免费!

Broadcom 已经正式收购 VMware&#xff0c;【VMware中国】官方公众号已于3月11日更名为【VMware by Broadcom中国】。 13日傍晚&#xff0c;该公众号发表推文 V风拂面&#xff0c;好久不见 - 来自VMware 中国的问候 &#xff0c;意味着 VMware 带着惊喜和美好的愿景再次归来。 …

新书速览|MATLAB科技绘图与数据分析

提升你的数据洞察力&#xff0c;用于精确绘图和分析的高级MATLAB技术。 本书内容 《MATLAB科技绘图与数据分析》结合作者多年的数据分析与科研绘图经验&#xff0c;详细讲解MATLAB在科技图表制作与数据分析中的使用方法与技巧。全书分为3部分&#xff0c;共12章&#xff0c;第1…