3.linux基础自建命题

linux基础自建命题

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
? ? 9 10.0.0.1
? ? 7 boot
? ? 3 Tue
? ? 2 Wed
? ? 2 Mon
? ? 1 Thu
? ? 1
?

(5) head -10

[root@node ~]# last | awk ‘{print$3}‘|sort|uniq -c|sort -r | head -10

?

  1. 将ls命令移动到新建目录下并命名为kk

    3.linux基础自建命题

?

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
1 xiaohong 123
1 XiAoniu 88
1 xiaojun 80
1 xiaoma 66
1 xiaowang 50
1 xiaoming 30
1 xiaohong 18
2 xiaohong 11
1 xiaohong 1
?
?
需求:有一个日志文件,统计每个IP出现的次数,然后将top3 打印出来;

1.先排序;
2.去重,统计;
3.取前3;

[root@node ~]# sort 1.log | uniq -c | sort -nr | head -3
153 161.35.86.181
60 180.97.165.74
42 101.72.213.150

?

8.1.统计: 统计文件有多少行: wc -l 统计文件内容中有多少行;

cat student.txt -n查看student.txt有多少行并排序

[root@node ~]# wc -l student.txt 
11 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
? ? 1 lihua 99
? ? 2 lili 90
? ? 3 lsal 90
? ? 4 sall 91
? ? 5 msdao 51
? ? 6 djaas 11
? ? 7 zds 5
? ? 8 dawf 13
? ? 9 xiaoma 100
? 10 dadad 111
? 11
[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

?

?

?

?

?

?

?

|bash是加个管道

?

?

?

?

3.linux基础自建命题

上一篇:C# 3.0 新特性之 自动属性 --by winter


下一篇:Jmeter基础001-JMeter在Mac下的安装+环境配置