1.列出访问次数前十的ip地址
(1) last命令显示服务器上最近登录的信息,其中第三行为ip地址
[root@node ~]# last root pts/0 10.0.0.1 Thu Jul 8 08:57 still logged in root tty1 Thu Jul 8 08:57 still logged in reboot system boot 3.10.0-862.el7.x Thu Jul 8 08:57 - 16:57 (08:00) root pts/1 10.0.0.1 Wed Jul 7 20:16 - 21:32 (01:16) root pts/0 10.0.0.1 Wed Jul 7 10:04 - 21:32 (11:28) root pts/0 10.0.0.1 Wed Jul 7 09:48 - 10:02 (00:13) root tty1 Wed Jul 7 09:48 - 21:51 (12:03) reboot system boot 3.10.0-862.el7.x Wed Jul 7 09:46 - 16:57 (1+07:10) root pts/0 10.0.0.1 Wed Jul 7 09:02 - crash (00:44) root tty1 Wed Jul 7 09:02 - 09:41 (00:39) reboot system boot 3.10.0-862.el7.x Wed Jul 7 09:01 - 16:57 (1+07:55) root pts/0 10.0.0.1 Tue Jul 6 19:50 - 20:11 (00:20) root tty1 Tue Jul 6 19:50 - 20:15 (00:25) reboot system boot 3.10.0-862.el7.x Tue Jul 6 19:49 - 20:15 (00:25) root pts/0 10.0.0.1 Tue Jul 6 16:59 - crash (02:50) root tty1 Tue Jul 6 16:58 - crash (02:51) reboot system boot 3.10.0-862.el7.x Tue Jul 6 16:58 - 20:15 (03:17) root pts/0 10.0.0.1 Tue Jul 6 09:38 - down (00:12) root tty1 Tue Jul 6 09:37 - 09:50 (00:13) reboot system boot 3.10.0-862.el7.x Tue Jul 6 09:35 - 09:50 (00:15) root pts/0 10.0.0.1 Mon Jul 5 20:59 - 21:20 (00:20) root tty1 Mon Jul 5 20:26 - 21:30 (01:03) reboot system boot 3.10.0-862.el7.x Mon Jul 5 20:25 - 21:30 (01:04)
(2) 对所得到的ip地址进行 取列操作(ip地址是第三列)
last | awk '{print$3}'
(3) 用sort排序,并 uniq- c显示重复行出现的次数
[root@node ~]# last | awk '{print$3}'|sort|uniq -c
(4) 接着用sort -r 按次数降序显示
[root@node ~]# last | awk '{print$3}'|sort|uniq -c|sort -r 10.0.0.1 boot Tue Wed Mon Thu
(5) head -10
[root@node ~]# last | awk '{print$3}'|sort|uniq -c|sort -r | head -10
将ls命令移动到新建目录下并命名为kk
3.将互联网上的文件下载到Linux服务器,并下载文件然后删除linux里面该文件,最后改好名再上传到原本目录
wget -O /目录/自己起个文件名 互联网文件地址
wget -O /opt/nginx-1.21.1.tar.gz https://nginx.org/download/nginx-1.21.1.tar.gz
[root@node ~]# wget -O /opt/adc https://pics1.baidu.com/feed/c75c10385343fbf20954a0fd1f480c8864388fb7.jpeg?token=3237781f66255554854195059f202dcc --2021-07-08 17:39:44-- https://pics1.baidu.com/feed/c75c10385343fbf20954a0fd1f480c8864388fb7.jpeg?token=3237781f66255554854195059f202dcc 正在解析主机 pics1.baidu.com (pics1.baidu.com)... 221.194.182.35, 2408:871a:5100:101::6548:c723 正在连接 pics1.baidu.com (pics1.baidu.com)|221.194.182.35|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:58994 (58K) [image/jpeg] 正在保存至: “/opt/adc” 100%[=================================================================>] 58,994 --.-K/s 用时 0.03s 2021-07-08 17:39:44 (1.99 MB/s) - 已保存 “/opt/adc” [58994/58994]) [root@node ~]# cd / [root@node /]# ls bin data etc lib magedu2 mnt proc run srv test.txt usr boot dev home lib64 media opt root sbin sys tmp var [root@node /]# cd opt [root@node opt]# ls adc sz命令:上述已吧网络文件命名为adc,接下来下载到本地计算机 [root@node opt]# sz adc 删除linux里面的adc文件 [root@node opt]# rm -rf ./adc rz命令:最后上传已改名文件,命名为adcde.jpg 。rz命令只能上传到当前位置并不支持文件夹 [root@node opt]# rz [root@node opt]# ls adcde.jpg
4.匹配student.txt中xiaoma,并过滤打印出该行上面5行及下面5行
过滤: grep "过滤关键字" 文件路径 -v: -E:支持多条件匹配; -i: 忽略大小写 —A:显示匹配和它后面的n行 —B:显示匹配行和它前面的n行 -C:显示匹配行和它前后n行 grep A匹配后5行 [root@node ~]# grep -A5 xiaoma student.txt xiaoma 100 dadad 111 匹配前后各五行 [root@node ~]# grep -C5 xiaoma student.txt sall 91 msdao 51 djaas 11 zds 5 dawf 13 xiaoma 100 dadad 111
5.GNU GNU's Not UNIX 的缩写,1984年由 Richard Stallman 发起并创建 目标是编写大量兼容于Unix系统的自由软件。
6.如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a,/testdir/dir1/y/b
mkdir
mkdir : 创建目录 -p : 忽略报错,且可以自动创建出所需的父目录 -v : 显示命令的详细操作过程 -m [mode]: 创建时直接指定权限 rmdir : 删除空目录 -p : 递归删除空目录 -v : 显示命令的详细操作过程1.2.3.4.5.6.7. [root@node /]# mkdir -pv testdir/dir1/{x..y}/{a..b} mkdir: 已创建目录 "testdir" mkdir: 已创建目录 "testdir/dir1" mkdir: 已创建目录 "testdir/dir1/x" mkdir: 已创建目录 "testdir/dir1/x/a" mkdir: 已创建目录 "testdir/dir1/x/b" mkdir: 已创建目录 "testdir/dir1/y" mkdir: 已创建目录 "testdir/dir1/y/a" mkdir: 已创建目录 "testdir/dir1/y/b" [root@node testdir]# mkdir -pv testdir/dir1/{x,y}/{a,b} mkdir: 已创建目录 "testdir" mkdir: 已创建目录 "testdir/dir1" mkdir: 已创建目录 "testdir/dir1/x" mkdir: 已创建目录 "testdir/dir1/x/a" mkdir: 已创建目录 "testdir/dir1/x/b" mkdir: 已创建目录 "testdir/dir1/y" mkdir: 已创建目录 "testdir/dir1/y/a" mkdir: 已创建目录 "testdir/dir1/y/b" [root@node testdir]# ll 总用量 0 drwxr-xr-x. 4 root root 24 7月 8 19:47 dir1 drwxr-xr-x. 3 root root 18 7月 8 19:52 testdir [root@node testdir]# mkdir 后面执行只能用 { } ;-pv是忽略报错显示命令详细过程
7.排序和去重
1.排序sort、去重; 选项: -k:指定列(默认以空格为分隔符) -n:以number方式排序 -r:反转(从大到小) 2.去重: uniq: 选项: -c:count出现的次数; [root@node ~]# sort -k 2 -n -r students.txt xiaohong 123 XiAoniu 88 xiaojun 80 xiaoma 66 xiaowang 50 xiaoming 30 xiaohong 18 xiaohong 11 xiaohong 1 [root@node ~]# sort -k 2 -n -r students.txt | uniq -c xiaohong 123 XiAoniu 88 xiaojun 80 xiaoma 66 xiaowang 50 xiaoming 30 xiaohong 18 xiaohong 11 xiaohong 1 需求:有一个日志文件,统计每个IP出现的次数,然后将top3 打印出来; 1.先排序; 2.去重,统计; 3.取前3; [root@node ~]# sort 1.log | uniq -c | sort -nr | head -3 161.35.86.181 180.97.165.74 101.72.213.150
8.1.统计: 统计文件有多少行: wc -l 统计文件内容中有多少行;
cat student.txt -n查看student.txt有多少行并排序
[root@node ~]# wc -l student.txt student.txt [root@node ~]# cat student.txt lihua 99 lili 90 lsal 90 sall 91 msdao 51 djaas 11 zds 5 dawf 13 xiaoma 100 dadad 111 [root@node ~]# cat student.txt -n lihua 99 lili 90 lsal 90 sall 91 msdao 51 djaas 11 zds 5 dawf 13 xiaoma 100 dadad 111 [root@node ~]#
Linux awk抓取IP的两种方式
ip addr show ens33 | awk -F "[ /]+" '/inet /{print $3}'
或
ifconfig ens33 | awk -F "[ :]+" '/inet /{print $4}'
或格式化输出所有网卡的IP
for dev in $(awk -F : '{if(NR>2)print $1}' /proc/net/dev);do printf '%+10s: ' $dev;echo $(ip addr show $dev | awk -F "[ /]+" '/inet /{print $3}'); done