三剑客

三剑客

剑客1:grep

grep和egrep:文本过滤的

剑客2:sed

sed:流编辑器

sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。sed按顺序逐行读取文件。然后,它执行为该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中。完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。在这里要注意一点,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。说白了就是一行一行的操作。我用sed主要就是用里面的替换功能,真的很强大。下面以实例,详细的说一下,先从替换开始,最常用的。

#用法:sed  [options] ‘[commands]’ filename
参数:
# -n  取消自动打印模式空间
# -e  执行多个sed指令
# -f  运行脚本
# -i  编辑文件内容 
# -i.bak  编辑的同时创造.bak的备份
# -r  使用扩展的正则表达式 
命令
# a\\ 在当前行下面插入文本。
# i\\ 在当前行上面插入文本。
# c\\ 把选定的行改为新的文本。
# d 删除,删除选择的行。
# s 替换指定字符
# g 表示行内全面替换。 
# p 表示打印行。 
# w 表示把行写入一个文件

例子:

#s 替换字符 默认替换第一个,如果要全部在后面加一个g sed 's/zhengxinqiang/zxq/g' sed.log
[root@localhost home]# sed 's/zhengxinqiang/zxq/' sed.log 
zxq 192.168.20.225
[root@localhost home]# cat sed.log 
zhengxinqiang 192.168.20.225
#a\\以及i\\ 在第一行上下追加
[root@localhost home]# sed  '1i\\xiajunbin 192.168.20.223' sed.log 
xiajunbin 192.168.20.223
zhengxinqiang 192.168.20.225
[root@localhost home]# sed  '1a\\xiajunbin 192.168.20.223' sed.log 
zhengxinqiang 192.168.20.225
xiajunbin 192.168.20.223
#-n只是打印修改行\/p前面\是转义符
[root@localhost home]# sed  -n  '1a\\xiajunbin 192.168.20.223\/p' sed.log 
xiajunbin 192.168.20.223/
#c\\改ip
[root@localhost network-scripts]# sed -n '/^IPADDR/c\\IPADDR=192.168.20.226' ifcfg-eno16780032 
IPADDR=192.168.20.226

剑客3:awk

awk:文本报告生成器,实现格式化文本输出

AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人所拥有的知识。awk命名:Alfred Aho Peter 、Weinberger和brian kernighan三个人的姓的缩写。

第1章 awk命令基础

1.1 awk命令执行过程

awk---->gawk 即: gun awk

在linux上常用的是gawk,awk是gawk的链接文件

man gawk----》pattern scanning and processing language 模式扫描和处理语言。

pattern [pætn] 模式 ; process **[ˈprəʊses] **处理

任何awk语句都是由模式和动作组成,一个awk脚本可以有多个语句。模式决定动作语句的触发条件和触发时间。

模式:

正则表达式 : /root/ 匹配含有root的行 /*.root/

关系表达式: < > && || + *

匹配表达式: ~ !~

动作:

变量 命令 内置函数 流控制语句

它的语法结构如下:

awk [options] 'BEGIN{ print "start" } ‘pattern{ commands }’ END{ print "end" }' file

其中:BEGIN END是AWK的关键字部,因此必须大写;这两个部分开始块和结束块是可选的

img

特殊模块:

BEGIN语句设置计数和打印头部信息,在任何动作之前进行

END语句输出统计结果,在完成动作之后执行

img

通过上面我们可以知道;AWK它工作通过三个步骤

1、读:从文件、管道或标准输入中读入一行然后把它存放到内存中

2、执行:对每一行数据,根据AWK命令按顺序执行。默认情况是处理每一行数据,也可以指定模式

3、重复:一直重复上述两个过程直到文件结束

AWK支持两种不同类型的变量:内建变量,自定义变量

1.2 awk中模式与动作

'pattern{action}'

1.2.1 在awk眼中的行与列
field     字段,列
record    记录,行

1.3 awk默认有一把“菜刀”

空格系列 (单独的空格,连续的空格,tab键)

-F 指定分隔符

-vFS

FS == field sep 每一列的分隔符

OFS ==output field sep 输出每一列的时候使用的分隔符

1.4 awk的内置变量

变量 含义 英文全写
FS 每一列的分隔符 field sep
NF 每一行有多少列 number of field
OFS 输出每一列的时候使用的分隔符 output field sep
NR 记录号 行号 number of record
RS 每一行的分隔符(每一行的结束标记)
$数字 取某一列
$0 取出这一行
1.4.1 $NF的使用

$NF 表示最后一列,(NF-1)表示倒数第二列,以此类推。

[root@znix ~]# awk -F: '{print NF}' passwd.txt
7
7
……
[root@znix ~]# awk -F: '{print $NF}' passwd.txt
/bin/bash
/sbin/nologin
/sbin/nologin
[root@znix ~]# awk -F: '{print $(NF-1)}' passwd.txt
/root
/bin
/sbin

1.5 【练习题】awk如何使用正则?

  1. 显示Xiaoyu的姓氏和ID号码

  2. 显示所有ID号码最后一位数字是1或5的人的全名

  3. 姓氏是Zhang的人,显示他的第二次捐款金额及她的名字

  4. 显示Xiaoyu的捐款.每个值时都有以开头.如开头.如520200200135

1.5.1 环境准备
mkdir -p /server/files/
cat >>/server/files/reg.txt<<EOF
Zhang Dandan    41117397   :250:100:175
Zhang Xiaoyu    390320151  :155:90:201
Meng  Feixue    80042789   :250:60:50
Wu    Waiwai    70271111   :250:80:75
Liu   Bingbing  41117483   :250:100:175
Wang  Xiaoai    3515064655 :50:95:135
Zi    Gege      1986787350 :250:168:200
Li    Youjiu    918391635  :175:75:300
Lao   Nanhai    918391635  :250:100:175
EOF
1.5.1.1 内容释义:

第一列是姓氏

第二列是名字

第一第二列合起来就是姓名

第三列是对应的ID号码

最后三列是三次捐款数量

1.5.2 显示出第二列中包含X 的。

$2~表示第二列所有的内容。 ~表示所有

​ 在这里X比较特殊,是大写的,awk中区分大小写。

[root@znix files]# awk '$2~/X/' reg.txt
Zhang Xiaoyu    390320151  :155:90:201
Wang  Xiaoai    3515064655 :50:95:135
1.5.3 显示Xiaoyu的姓氏和ID号码
[root@znix files]# awk '$2~/Xiaoyu/{print $1,$3}' reg.txt
Zhang 390320151
1.5.4 显示所有ID号码最后一位数字是1或5的人的全名
[root@znix files]# awk '$3~/(1|5)$/{print $1,$2}' reg.txt

[root@znix files]# awk '$3~/[15]$/{print $1,$2}' reg.txt
Zhang Xiaoyu
Wu Waiwai
Wang Xiaoai
Li Youjiu
Lao Nanhai
1.5.5 姓氏是Zhang的人,显示他的第二次捐款金额及她的名字

先找到,再进行输出。(NF-1) 表示倒数第二列。

[root@znix files]# awk -F "[ :]+" '$1~/Zhang/{print $2,$(NF-1)}' reg.txt
Dandan 100
Xiaoyu 90
1.5.6 显示Xiaoyu的捐款.每个值时都有以$开头.如520520200$135

tr 命令进行替换,格式比较简单tr "要替换什么" "替换成什么"

[root@znix files]# awk '$2~/Xiaoyu/{print $4}' reg.txt |tr ":" "$"
$155$90$201
[root@znix files]# awk '$2~/Xiaoyu/{gsub(/:/,"$",$NF);print $NF}' reg.txt
$155$90$201

1.6 awk中的$0是什么鬼?

$0表示文件中整条记录(行)的内容,在这里加$0 与不加$0 相同。

[root@znix files]# awk '/Zhang/' reg.txt
Zhang Dandan    41117397   :250:100:175
Zhang Xiaoyu    390320151  :155:90:201
[root@znix files]# awk '$0~/Zhang/' reg.txt
Zhang Dandan    41117397   :250:100:175
Zhang Xiaoyu    390320151  :155:90:201

1.7 awk中的替换

在awk中,可以用来替换的有三个函数:sub gsub gensub

1.7.1 使用gusb 函数进行替换

​ gsub(r, s [, t])

​ r /找谁/

​ s "替换成什么"

​ [] 替换那个部分的

​ 表示为: gsub(/找谁/,"替换成什么",替换那个部分的)

1.7.2 替换文本中的内容

题目:显示Xiaoyu的捐款.每个值时都有以$开头.如520520200$135

​ 中间使用分号分割 ;

[root@znix files]# awk '{gsub(/:/,"$",$NF);print $0}' reg.txt
Zhang Dandan 41117397 $250$100$175
Zhang Xiaoyu 390320151 $155$90$201
Meng Feixue 80042789 $250$60$50
Wu Waiwai 70271111 $250$80$75
Liu Bingbing 41117483 $250$100$175
Wang Xiaoai 3515064655 $50$95$135
Zi Gege 1986787350 $250$168$200
Li Youjiu 918391635 $175$75$300
Lao Nanhai 918391635 $250$100$175

​ 添加上限定条件后,取到的结果会更加的精确。

[root@znix files]# awk '$2~/Xiaoyu/{gsub(/:/,"$",$NF);print $NF}' reg.txt
$155$90$201

1.8 【练习题】判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin),如果是显示用户名字

不包含:!,在awk中不包含可以使用!表示。

$NF 表示这个文件的最后一列

-F 将分隔符指定为:

[root@znix ~]# awk -F: '$NF!~/nologin$/{print $1}' /etc/passwd
root
sync
shutdown
halt
clsn
oldgirl
test
stu01
stu02
stu03
znix
1.8.1 【对齐】输出的结果更美观整齐--column命令

-t 参数让他对齐。

[root@znix files]# awk 'BEGIN{print "姓","名"}{print $1,$2}' reg.txt |column -t
姓     名
Zhang  Dandan
Zhang  Xiaoyu
Meng   Feixue
Wu     Waiwai
Liu    Bingbing
Wang   Xiaoai
Zi     Gege
Li     Youjiu
Lao    Nanhai

第2章 awk中BEGIN 和 END

2.1 怎么把正则表达式作为条件

BEGIN:开始

​ 里面的内容会在awk读取文件之前运行

​ 在BEGIN里面定义awk的内置变量

END

END{} 里面放入内容,在读取完文件内容后执行

​ 先计算,在END里面输出结果

​ 先计算再输出

2.1.1 【一个栗子】执行完输出后,再输出一个“结束”
[root@znix files]# awk '{print $0}END{print "结束"}' reg.txt
Zhang Dandan    41117397   :250:100:175
Zhang Xiaoyu    390320151  :155:90:201
Meng  Feixue    80042789   :250:60:50
Wu    Waiwai    70271111   :250:80:75
Liu   Bingbing  41117483   :250:100:175
Wang  Xiaoai    3515064655 :50:95:135
Zi    Gege      1986787350 :250:168:200
Li    Youjiu    918391635  :175:75:300
Lao   Nanhai    918391635  :250:100:175
结束

2.2 【企业案例】统计/etc/services文件里面的空行数量

2.2.1 使用awk的END模式

前面的i++先进行计算,再输出结果。

i=i+1 与i++ 相同。

[root@znix ~]# awk '/^$/{i=i+1}END{print i}' /etc/services
16
[root@znix ~]# awk '/^$/{i++}END{print i}' /etc/services
16
2.2.2 查看i++的执行过程

i++与i=i+1相同。

i=i+$0 累计相加 计算总和

i=i+1 i++ 计数

[root@znix ~]# awk '/^$/{i++;print i}' /etc/services
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2.2.3 其他方法:

uniq -c uniq 命令把相邻两行一样的合并,-c为统计出现的次数

[root@znix ~]# awk '/^$/' /etc/services|uniq -c
   16
[root@znix ~]# awk '/^$/' /etc/services|wc -l
16

2.3 【案例】seq 100 >num.txt ,计算这个文件每一行相加的结果

i=i+$0 累计相加 计算总和

i=i+1 i++ 计数

没有赋初始值的时候
i++ 先返回0,再加1,第二次调用的时候先返回1,再加1,以此类推

[root@znix ~]# awk '{i=i+$0}END{print i}' num.txt
5050

第3章 awk数组

3.1 数组是用来做什么的?

分类计算,用于统计。

3.1.1 他能够干些什么?

统计日志文件中 图片.jpg 出现了多少次

统计日志文件中 图片.png 出现了多少次

统计更累的信息

3.2 数组详解---"酒店"

假设我们有一个酒店

酒店<===>hotel
酒店里面有几个房间110,119,120,114,401这几个房间。
酒店的110房间<===> hotel[110]
酒店的119房间<===> hotel[119]
酒店的120房间<===> hotel[121]

酒店房间里面入住客人

3.2.1 如何查看房间里住的是哪位客人?
[root@znix files]# awk 'BEGIN{hotel[110]="lidao" ;hotel[119]="tanjiaoshou";hotel[121]="taojin";print hotel[110],hotel[121],hotel[119]}'
lidao taojin tanjiaoshou
3.2.2 使用for语句,对酒店进行循环/查房
awk 'BEGIN{hotel[110]="lidao" ;hotel[119]="tanjiaoshou";hotel[121]="taojin";
for(pol in hotel) 
print pol,hotel[pol]
}'

格式:

for(变量 in 数组) 使用变量对酒店进行循环/查房

print pol,hotel[pol] :

pol 得到-房间的号码

hotel[pol] 哪个酒店的哪个房间

[root@znix files]# awk 'BEGIN{hotel[110]="lidao" ;hotel[119]="tanjiaoshou";hotel[121]="taojin"
> for(pol in hotel)
> print pol,hotel[pol]
> }'
110 lidao
121 taojin
119 tanjiaoshou

3.3 【企业面试题】统计域名访问次数(去重统计)。处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)

http://www.nmtui.com/index.html
http://www.nmtui.com/1.html
http://post.nmtui.com/index.html
http://mp3.nmtui.com/index.html
http://www.nmtui.com/3.html
http://post.nmtui.com/2.html
3.3.1 方法一:sort uniq

uniq 命令 把相邻两行一样的合并

[root@znix ~]# awk -F '[/]+' '{print $2}' www.txt |uniq -c
      2 www.nmtui.com
      1 post.nmtui.com
      1 mp3.nmtui.com
      1 www.nmtui.com

sort 排序,默认是按照字母的顺序

[root@znix ~]# awk -F '[/]+' '{print $2}' www.txt |sort
mp3.nmtui.com
post.nmtui.com
www.nmtui.com
www.nmtui.com
www.nmtui.com
3.3.2 方法2 awk数组
3.3.2.1 第一步 取出域名
[root@znix ~]# awk -F '[/]+' '{print $2}' www.txt
www.nmtui.com
www.nmtui.com
post.nmtui.com
mp3.nmtui.com
www.nmtui.com
3.3.2.2 第二步 显示

; 两条命令之间用分号分割。

[root@znix ~]# awk -F '/+' '{hotel[$2]++;print hotel["www.nmtui.com"]}' www.txt
1
2
2
2
3
3.3.2.3 第三步 显示结果
[root@znix ~]# awk -F '/+' '{hotel[$2]++}END{for(pol in hotel)print pol,hotel[pol]}' www.txt
mp3.nmtui.com 1
post.nmtui.com 1
www.nmtui.com 3

第4章 课后题目:

两个文件 secure.zip access.zip

4.1 统计secure文件中谁在破解你的密码(统计出破解你密码的ip地址出现的次数)

4.1.1 方法一
[root@znix test]# awk '/Failed/{fa[$(NF-3)]++}END{for(pol in fa)print pol,fa[pol]}' secure-20161219|column -t
218.65.30.126    17163
218.65.30.61     17163
125.16.71.175    4
169.46.38.74     9
183.136.238.78   30
218.2.0.16       10
122.228.238.66   1
……
4.1.2 方法二
[root@znix test]# awk '/Failed/{print $(NF-3)}' secure-20161219 |sort|uniq -c|sort -n  
4.1.3 结果统计
[root@znix test]# awk '/Failed/{fa[$(NF-3)]++}END{for(pol in fa)print pol,fa[pol]}' secure-20161219|column -t|wc -l
88

4.2 统计access.log文件中对ip地址去重并统计重复数

[root@znix test]# awk '{hotel[$1]++}END{for(pol in hotel)print pol,hotel[pol]}' access.log |head -3
101.226.125.115 284
180.154.137.177 516
101.226.125.116 127

4.3 统计access.log文件中网站一共使用了多少流量

[root@znix test]# awk '{i=i+$10}END{print i}' access.log
2478496663

awk高级进阶

第1章 awk数组练习题

1.1 文件内容(仅第一行)

[root@znix test]# head -1 secure-20161219 access.log
==> secure-20161219 <==
Dec 11 03:49:25 localhost sshd[27087]: Failed password for invalid user support from 123.31.34.190 port 55493 ssh2

==> access.log <==
101.226.61.184 - - [22/Nov/2015:11:02:00 +0800] "GET /mobile/sea-modules/gallery/zepto/1.1.3/zepto.js HTTP/1.1" 200 24662 "http://m.oldboyedu.com.cn/mobile/theme/oldboy/home/index.html" "Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; HUAWEI CRR-UL00 Build/HUAWEICRR-UL00) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025478 Mobile Safari/533.1 MicroMessenger/6.3.7.51_rbb7fa12.660 NetType/3gnet Language/zh_CN"

1.2 统计secure文件中谁在破解你的密码(统计出破解你密码的ip地址出现的次数)

1.2.1 方法一

Failed 是用户登陆失败,连续多次的登陆失败,就是在暴力破解密码。

/Failed/ 关键词查找

$ (NF-3) 表示倒数第四列

fa[$(NF-3)]++ 使用数组,对不同的ip分类累加

for(pol in fa) for循环 使用pol 变量,逐个的取出fa[$(NF-3)] 数组中的内容。

print pol,fa[pol] 显示数组的内容,以及pol的次数,即统计.

[root@znix test]# awk '/Failed/{fa[$(NF-3)]++}END{for(pol in fa)print pol,fa[pol]}' secure-20161219|column -t
218.65.30.126    17163
218.65.30.61     17163
125.16.71.175    4
169.46.38.74     9
183.136.238.78   30
218.2.0.16       10
122.228.238.66   1
……

1.2.2 方法二

sort排序,把一样的都放在一起,uniq去重经常合并 -c 参数是计数.

[root@znix test]# awk '/Failed/{print $(NF-3)}' secure-20161219 |sort|uniq -c|sort -n

1.2.3 结果统计

[root@znix test]# awk '/Failed/{fa[$(NF-3)]++}END{for(pol in fa)print pol,fa[pol]}' secure-20161219|column -t|wc -l
88

1.3 统计access.log文件中对ip地址去重并统计重复数

使用数组对不同的ip进行统计

与第一题类似,这里只是统计的位置改变,变为$1.

[root@znix test]# awk '{hotel[$1]++}END{for(pol in hotel)print pol,hotel[pol]}' access.log |head -3
101.226.125.115 284
180.154.137.177 516
101.226.125.116 127

1.4 统计access.log文件中网站一共使用了多少流量

统计总数较为简单

i=i+$10可以写为 i+=$10

i累计相加,然后再输出最后一个i的值即可。

[root@znix test]# awk '{i=i+$10}END{print i}' access.log
2478496663

1.5 统计access.log文件中每个ip地址使用了多少流量(一个栗子)

统计ip使用的流量,将每个ip归类,与上一题不同的是,上一题是统计次数,这是统计他的流量

hotel[1]+=1]+=10 可以写为 hotel[1]=hotel[1]=hotel[1]+$10 让循环的时候相加的不是1,而是$10的数字,进而就可以得出每个ip使用的流量.

[root@znix test]#  awk '{hotel[$1]+=$10}END{for(pol in hotel)print pol,hotel[pol]}' access.log |sort -rnk2|head
114.83.184.139 31362956
117.136.66.10 22431302
116.216.30.47 21466000
223.104.5.197 21464856
116.216.0.60 19145329
114.141.164.180 17219553
114.111.166.22 17121524
223.104.5.202 16911512
116.228.21.187 15969887
112.64.171.98 15255013

1.6 统计access.log文件中,同一个ip的出现次数以及他使用的流量总数。

查看数组元素里面的内容 数组的名字+数组元素的下标

下标相同的数组,能够一起使用.

两个有关的数组,只要有一个共同使用的元素,可以在一个循环中使用.

awk '{count[1]++;sum[1]++;sum[1]+=$10}END{for(pol in sum)print pol,count[pol],sum[pol]}' access.log

[root@znix test]#  awk '{count[$1]++;sum[$1]=sum[$1]+$10}END{for(pol in sum)print pol,count[pol],sum[pol]}' access.log |sort -nrk2 |column -t |head 
114.83.184.139   1982   31362956
117.136.66.10    1662   22431302
116.216.30.47    506    21466000
223.104.5.197    961    21464856
116.216.0.60     957    19145329
114.141.164.180  695    17219553
114.111.166.22   753    17121524
223.104.5.202    871    16911512
116.228.21.187   596    15969887
112.64.171.98    10856  15255013

1.6.1 [优化]让显示的结果更好看

[root@znix test]# awk '{count[$1]++;sum[$1]+=$10}END{for(pol in sum)print "ip:"pol,"次数:"count[pol],"流量:"sum[pol]}' access.log |sort -rnk3|head |column -t
ip:70.39.157.199   次数:1   流量:16049
ip:70.39.157.198   次数:1   流量:15965
ip:70.39.157.195   次数:1   流量:1569
ip:68.180.230.250  次数:5   流量:40644
ip:66.249.82.96    次数:30  流量:40254
ip:66.249.82.93    次数:36  流量:358729
ip:66.249.82.90    次数:61  流量:1640266
ip:66.249.82.185   次数:1   流量:1569
ip:66.249.82.181   次数:3   流量:258284
ip:66.249.82.177   次数:6   流量:374716

1.7 sort命令

1.7.1 sort默认是按照字母的顺序排序。

对与数字来说,sort命令将他一视同仁,按照顺序进行排序

[root@znix test]# seq 20|sort
1
10
11
12
13
14
15
16
17
18
19
2
20
3
4
5
6
7
8
9

1.7.2 sort命令的其他参数

-n 表示,将内容视为数字,能按照数字顺序进行排列

-r 表示逆序排列

-k 指定按照哪一列的顺序进行排列。

[root@znix test]# seq 20|sort -rnk1
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1

1.8 对于统计IP使用的流量的一个栗子.

假如现在有个文本,格式如下:

a  1
b  3
c  2
d  7
b  5
a  3
g  2
f  6
d  9

即左边是随机字母,右边是随机数字,要求写个脚本使其输出格式为:

a  4
b  8
c  2
d  16
f  6
g  2

即将相同的字母后面的数字加在一起,按字母的顺序输出。

1.8.1 使用数组进行统计

数组会进行分类计数,显示的时候可以显示数据统计的结果,与数组的名字,即结果.

[root@znix files]# awk '{a[$1]=a[$1]+$2}END{for(i in a)print i,a[i]}' w.txt
a 4
b 8
c 2
d 16
f 6
g 2

1.8.2 变量的不同形式

这里将变量写为数组而已.

{i=i+$2}
{hotel[$1]=hotel[$1]+$2}

一些式子的简写:

i++   ====>>  i=i+1
i+=2  ====>>  i=i+2
i+=$1 ====>>  i=i+$1

1.9 awk中一些其他的命令

再awk里面使用 |" " 里面加上命令即可

sort 命令放在后面进行排序会将BEGIN的内容也会排序

在awk循环中进行排序,就不会贵BEGIN 的内容产生影响

[root@znix test]# awk 'BEGIN{print "ip","count"}{count[$1]++}END{for(pol in count)print pol,count[pol]|"sort -rnk2"}' access.log  |head |column -t
ip              count
58.220.223.62   12049
112.64.171.98   10856
114.83.184.139  1982
117.136.66.10   1662
115.29.245.13   1318
223.104.5.197   961
116.216.0.60    957
180.111.48.14   939
223.104.5.202   871

2.1 远程连接连不上了之检查端口

2.1.1 方法一telnet

使用方法 telnet [ip] [port]

[f:\~]$ telnet 10.0.0.201 22
 
 
Connecting to 10.0.0.201:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_5.3

2.1.2 方法二 ss -lntup

[root@znix ~]# ss -lntup|grep 22
tcp    LISTEN     0      128                   :::22                   :::*      users:(("sshd",1140,4))
tcp    LISTEN     0      128                    *:22                    *:*      users:(("sshd",1140,3))

2.1.3 方法三 强大的nmap

[root@znix test]# nmap -p22 10.0.0.201
 
Starting Nmap 5.51 ( http://nmap.org ) at 2017-09-22 11:10 CST
Nmap scan report for 10.0.0.201
Host is up (0.000072s latency).
PORT   STATE SERVICE
22/tcp open  ssh
 
Nmap done: 1 IP address (1 host up) scanned in 0.30 seconds

2.1.4 方法四 lsof -i:22

-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )

[root@znix ~]# lsof -i:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1140 root    3u  IPv4  10300      0t0  TCP *:ssh (LISTEN)
sshd    1140 root    4u  IPv6  10302      0t0  TCP *:ssh (LISTEN)
sshd    1334 root    3u  IPv4  11050      0t0  TCP 10.0.0.201:ssh->10.0.0.1:42256 (ESTABLISHED)
sshd    1700 root    3u  IPv4  12198      0t0  TCP 10.0.0.201:ssh->10.0.0.1:42772 (ESTABLISHED)

2.1.5 方法五 nc

使用方法: nc ip port

[root@znix ~]# nc 10.0.0.201 22
SSH-2.0-OpenSSH_5.3

2.2 linux中要安装的一些软件

[root@clsn6 ~]# yum install  telnet tree  lrzsz  nmap nc  dos2unix    -y
[root@clsn6 ~]# yum install htop iotop iftop atop  nethogs -y 

​ telnet 远程连接服务,可以进行测试

​ tree 让文件,目录以树的形式显示

​ lrzsz linux与windows文件相互传递

​ nmap 强大的扫描工具

​ nc 网络探测工具

​ dos2unix 将dos格式的文本转换为unix格式

2.3 查看系统网关的方法 ip命令

2.3.1 查看系统的网关

ip r 与ip route 相同

[root@znix test]# ip r
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.201
169.254.0.0/16 dev eth0  scope link  metric 1002
default via 10.0.0.2 dev eth0

2.3.2 参看网卡的详细-IP地址

ip address show eth0 与 ip a s eth0 相同。

[root@znix test]# ip address show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
    inet6 fe80::20c:29ff:fea8:e414/64 scope link
       valid_lft forever preferred_lft forever

2.4 【面试题】 ps aux 里面的vsz rss 区别

vsz  虚拟内存(物理+swap)
rss  是物理内存

本文作者:迷茫的28岁

本文链接:https://www.cnblogs.com/zheng520/p/16592432.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   迷茫的28岁  阅读(130)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 岁月神偷 金玟岐
岁月神偷 - 金玟岐
00:00 / 00:00
An audio error has occurred.

作词 : 金玟岐

作曲 : 金玟岐

编曲 : 薛琳可

能够握紧的就别放了

能够拥抱的就别拉扯

时间着急的冲刷着

剩下了什么

原谅走过的那些曲折

原谅走过的那些曲折

原来留下的都是真的

纵然似梦啊半醒着

笑着哭着都快活 谁让~

时间是让人猝不及防的东西

时间是让人猝不及防的东西

晴时有风阴有时雨

争不过朝夕又念着往昔

偷走了青丝却留住一个你

岁月是一场有去无回的旅行

岁月是一场有去无回的旅行

好的坏的都是风景

别怪我贪心只是不愿醒

因为你只为你愿和我一起

看云淡风轻

能够握紧的就别放了

能够握紧的就别放了

能够拥抱的就别拉扯

时间着急的冲刷着

剩下了什么

原谅走过的那些曲折

原谅走过的那些曲折

原来留下的都是真的

纵然似梦啊半醒着

笑着哭着都快活 谁让~

时间是让人猝不及防的东西

时间是让人猝不及防的东西

晴时有风阴有时雨

争不过朝夕又念着往昔

偷走了青丝却留住一个你

岁月是一场有去无回的旅行

岁月是一场有去无回的旅行

好的坏的都是风景

别怪我贪心只是不愿醒

因为你只为你愿和我一起

看云淡风轻

时间是让人猝不及防的东西

时间是让人猝不及防的东西

晴时有风阴有时雨

争不过朝夕又念着往昔

偷走了青丝却留住一个你

岁月是一场有去无回的旅行

岁月是一场有去无回的旅行

好的坏的都是风景

别怪我贪心只是不愿醒

因为你只为你愿和我一起

看云淡风轻