3.linux基础自建命题

2021/7/9 7:08:34

本文主要是介绍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
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

 

  1. 将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

 

 

 

 

 

 

 

|bash是加个管道

 

 

 

 



这篇关于3.linux基础自建命题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程