1-4 管道
管道符号: | ,可以将前面指令的执行结果,作为后面指令的操作内容。
## 比如过滤ip地址
ip addr | tail -4 | head -1
解释一下就是先执行 ip addr ,得到的结果当做 tail -4 的输入,意思就是查看ip addr 结果的后四行内容。得到的整体结果,也就是查看ip addr 的后四行当做 head -1 的输入,接着得到后四行内容的第一样
如果不好理解的话可以一步步来
ip addr 结果是11行内容
ip addr | tail -4 意思就是ip addr结果当做tail -4 的输入,也就是查看ip addr 的最后四行
ip addr |tail -4 | head -1 把上面拿到的后四行当做head -1 的输入,也就是拿到四行内容的第一行
假设有一个aini.txt文件,里面有5行,你想看第三行应该可以怎么实现呢?
1-5 文件内容过滤
1-5-1 统计
wc # 全称Word Count,计数
## 参数
-l # 按行统计,不会单独使用,需要接在管道后面
-c # 统计字节个数
-m # 统计字符数量
-w # 统计单词数量
wc aini.txt
# 2 11 59 分别是 行数 单词数量 字节数
例子1:
[root@localhost ~]# cat aini.txt |wc -l
18 # 共18行
wc -c aini.txt # 统计文件中有多少个字节
# 统计指令执行结果有多少行
例子:ip addr|wc -l
# 统计bin目录下有多少个命令文件
例子:ls /bin |wc -l
例子1:wc aini.txt
分别是 行数 单词数量 字节数
例子2:统计行数
不会单独使用,需要接在管道后面
例子3: wc -c aini.txt
# 统计文件中有多少个字节
例子4:统计指令执行结果有多少行
例子5:统计bin目录下有多少个命令文件
1-5-2 生成数字序列
seq # 全称:sequence,序列的意思
例子1: seq 5 12
产生一个5到12的序列
例子2:seq -w 5 12
产生一个5到12等宽的序列,加-w参数
1-5-4 过滤字符串 grep
#按行过滤字符串,默认是模糊匹配,只要单词中含有某些内容就过滤出单词所在的每行数据
## 参数 -n 表示在结果中显示匹配的行的行号
例子1: grep '3' aini.txt
将含有3这个字符的行过滤出来
例子2: #显示行号
grep '3' -n aini.txt
1-5-4 按列过滤
awk
#awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。
例子1: 取列
$1代表第一列,$2代表第二列,$NF代表最后一列,列是由空格分开的
# 注意,'{print $1}'这里必须是单引号
awk '{print $1}' dilnur.txt
awk '{print $2}' dilnur.txt
例子2:以逗号,做分隔符
awk -F ',' '{print $1}' dilnur.txt
awk -F ',' '{print $NF}' dilnur.txt
1-5-5 排序
sort
# 默认排序,先数字后字母
# sort -n # 先字母(先小写字母后大写字母)后数字的排序方式,
# sort -n -r 反向排序
cat sort.txt | sort -n
cat sort.txt | sort -n -r 反向排序
1-5-6 统计去重
uniq #全称:unique,唯一、去重的意思,但是它是将连续的去重,不会间隔去重,所以最好先排序再去重
先排序看一下内容
cat uniq.txt | sort -n
cat test02.txt|sort -n|uniq
cat test02.txt|sort -n|uniq -c
# -c显示重复次数
1-5-6 Linux目录介绍
/bin #存放二进制的可执行文件,也就是命令,其实每个命令基本都是一个可执行代码文件,特别重要,不能删除!
# window的命令文件都是exe结尾的,linux的命令文件是没有后缀名的,如果删除了某个命令文件,那么这个命令就不能用了
/boot #开机启动需要的文件, 特别重要,不要动里面的文件。/dev #dev全称:Devices,硬件设备控制文件,特别重要,千万不要动!
/etc #存放系统的各种配置文件,相当于windows的注册表,也就是超大的配置文件,特别重要,不能删除!
# 比如改密码什么的,其实都是修改的etc下面的某个配置文件(shadow文件)中的配置,还有安装的各种软件配置文件,一般也是放到这个目录,也可以放到其他目录,但是一般都是放到这里。
/home #所有普通用户的家目录就在这个home目录下,每个用户目录中都有自己的桌面等目录,windows都是放到了Users目录下
/root #root用户的专属家目录,特别重要,不能删除!/lib #library 32位库,一般是so结尾的库文件,特别重要,不能删除!
# so结尾的库文件,类似于windows下的系统的dll动态链接库文件。千万不要尝试删除,试试就逝世。如果有快照的话你可以试试。
/lib64 #library 64位库,一般是so结尾的库文件,特别重要,不能删除!/media #多媒体文件目录(音乐、视频、文档等),是一个不重要的目录,只是linux的作者希望用户能够按照对应目录来存放内容,这个目录普通用户是没有权限删除的,root用户可以删除它
/mnt #全称:mount,挂载的意思,一般是用来挂载光盘,U盘,也就是插入U盘、关盘等,打开之后一般都是在这个mnt目录下,这个目录也是可以删除的
/opt #部分软件安装存储目录,安装的某些软件的时候,如果默认安装,那么它可能会将自己的程序安装到这个目录下,如果你不用这个目录,那么也是可以删除的目录
/proc #全称:process,是进程的意思,每个进程编号一个目录。通过ps -ef指令可以查看到进程编号, 特别重要,不能删除!
/sbin #全称:super bin,是超级用户才能使用的命令 ,特别重要,不能删除! shutdown reboot
# 比如普通用户是没有关机(shutdown)、重启(reboot)等危害比较大的指令,这些命令文件在sbin目录中
/srv #之前用来存放软件源代码文件的,这个目录也没啥用。源代码-->编译-->打包-->软件包,软件包在windows下叫做可执行文件,linux下叫做命令文件。其实叫啥都行,明白它是啥即可。/sys #全称:system,是系统功能目录,特别重要,不能删除!
/tmp #全称:temporary,临时的意思,用来存放临时文件的目录,这里面的文件如果长时间没用的话,会被系统自动清除。
# windows下也有很多这样的临时目录,多数都是隐藏目录,比如C:\Users\用户名\AppData\Local\Temp,好多清理系统垃圾的软件,其实都是删除了一些临时文件。
/run #运行,程序运行的时候产生的文件,多数也是临时文件,但是这里的文件不会被系统自动清除。/usr #用户级的目录,usr全称是UNIX software resource,主要存放的是一些软件程序以及这些程序所需要使用的库,当然也会保存一些程序需要的资源文件,特别重要,不能删除! usr目录下面的文件夹种类和/根目录下很像,比如都有bin目录,linux作者这样的设计是想告诉用户,系统的命令文件放到根目录的bin下,用户自己安装的某些软件的命令文件,放到/usr/bin下面。
/var #全称是variable,用来存放一些经常变动的文件,比如日志文件、网页文件、缓存等,特别重要,不能删除!
# 这个目录下我们安全人员一般只关注log日志目录。比如用户登录系统、什么时候登录的、登陆了几次等等,都会在log目录下产生日志记录,这个我们后期会做演示.
最后分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识
分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取:
超详细的网络安全学习笔记,共21W字https://m.tb.cn/h.gcRis7s?tk=eBqAWGxQ9I2