linux基础自建命题

1.列出访问次数前十的ip地址

(1) last命令显示服务器上最近登录的信息,其中第三行为ip地址

[root@node ~]# last<br></br>root     pts/0        10.0.0.1         Thu Jul  8 08:57   still logged in   <br></br>root     tty1                          Thu Jul  8 08:57   still logged in   <br></br>reboot   system boot  3.10.0-862.el7.x Thu Jul  8 08:57 - 16:57  (08:00)    <br></br>root     pts/1        10.0.0.1         Wed Jul  7 20:16 - 21:32  (01:16)    <br></br>root     pts/0        10.0.0.1         Wed Jul  7 10:04 - 21:32  (11:28)    <br></br>root     pts/0        10.0.0.1         Wed Jul  7 09:48 - 10:02  (00:13)    <br></br>root     tty1                          Wed Jul  7 09:48 - 21:51  (12:03)    <br></br>reboot   system boot  3.10.0-862.el7.x Wed Jul  7 09:46 - 16:57 (1+07:10)   <br></br>root     pts/0        10.0.0.1         Wed Jul  7 09:02 - crash  (00:44)    <br></br>root     tty1                          Wed Jul  7 09:02 - 09:41  (00:39)    <br></br>reboot   system boot  3.10.0-862.el7.x Wed Jul  7 09:01 - 16:57 (1+07:55)   <br></br>root     pts/0        10.0.0.1         Tue Jul  6 19:50 - 20:11  (00:20)    <br></br>root     tty1                          Tue Jul  6 19:50 - 20:15  (00:25)    <br></br>reboot   system boot  3.10.0-862.el7.x Tue Jul  6 19:49 - 20:15  (00:25)    <br></br>root     pts/0        10.0.0.1         Tue Jul  6 16:59 - crash  (02:50)    <br></br>root     tty1                          Tue Jul  6 16:58 - crash  (02:51)    <br></br>reboot   system boot  3.10.0-862.el7.x Tue Jul  6 16:58 - 20:15  (03:17)    <br></br>root     pts/0        10.0.0.1         Tue Jul  6 09:38 - down   (00:12)    <br></br>root     tty1                          Tue Jul  6 09:37 - 09:50  (00:13)    <br></br>reboot   system boot  3.10.0-862.el7.x Tue Jul  6 09:35 - 09:50  (00:15)    <br></br>root     pts/0        10.0.0.1         Mon Jul  5 20:59 - 21:20  (00:20)    <br></br>root     tty1                          Mon Jul  5 20:26 - 21:30  (01:03)    <br></br>reboot   system boot  3.10.0-862.el7.x Mon Jul  5 20:25 - 21:30  (01:04)    <br></br>​

(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<br></br>      9 10.0.0.1<br></br>      7 boot<br></br>      3 Tue<br></br>      2 Wed<br></br>      2 Mon<br></br>      1 Thu<br></br>      1 <br></br>​

(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<br></br>--2021-07-08 17:39:44--  https://pics1.baidu.com/feed/c75c10385343fbf20954a0fd1f480c8864388fb7.jpeg?token=3237781f66255554854195059f202dcc<br></br>正在解析主机 pics1.baidu.com (pics1.baidu.com)... 221.194.182.35, 2408:871a:5100:101::6548:c723<br></br>正在连接 pics1.baidu.com (pics1.baidu.com)|221.194.182.35|:443... 已连接。<br></br>已发出 HTTP 请求,正在等待回应... 200 OK<br></br>长度:58994 (58K) [image/jpeg]<br></br>正在保存至: “/opt/adc”<br></br>​<br></br>100%[=================================================================>] 58,994      --.-K/s 用时 0.03s   <br></br>​<br></br>2021-07-08 17:39:44 (1.99 MB/s) - 已保存 “/opt/adc” [58994/58994])<br></br>​<br></br>[root@node ~]# cd /<br></br>[root@node /]# ls<br></br>bin   data  etc   lib    magedu2  mnt  proc  run   srv  test.txt  usr<br></br>boot  dev   home  lib64  media    opt  root  sbin  sys  tmp       var<br></br>[root@node /]# cd opt<br></br>[root@node opt]# ls<br></br>adc<br></br>​<br></br>sz命令:上述已吧网络文件命名为adc,接下来下载到本地计算机<br></br>[root@node opt]# sz adc <br></br>​<br></br>删除linux里面的adc文件<br></br>[root@node opt]# rm -rf ./adc<br></br>​<br></br>rz命令:最后上传已改名文件,命名为adcde.jpg 。rz命令只能上传到当前位置并不支持文件夹<br></br>[root@node opt]# rz<br></br>​<br></br>[root@node opt]# ls<br></br>adcde.jpg<br></br>​

4.匹配student.txt中xiaoma,并过滤打印出该行上面5行及下面5行

过滤: grep  "过滤关键字"   文件路径<br></br>                            -v:<br></br>                            -E:支持多条件匹配;<br></br>                            -i: 忽略大小写<br></br>                            —A:显示匹配和它后面的n行<br></br>                            —B:显示匹配行和它前面的n行<br></br>                            -C:显示匹配行和它前后n行<br></br>​<br></br>grep A匹配后5行<br></br>[root@node ~]# grep -A5 xiaoma student.txt <br></br>xiaoma 100<br></br>dadad 111<br></br>​<br></br>匹配前后各五行<br></br>[root@node ~]# grep -C5 xiaoma student.txt <br></br>sall 91<br></br>msdao 51<br></br>djaas 11<br></br>zds 5<br></br>dawf 13<br></br>xiaoma 100<br></br>dadad 111<br></br>​

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 : 创建目录<br></br>-p : 忽略报错,且可以自动创建出所需的父目录<br></br>-v : 显示命令的详细操作过程<br></br>-m [mode]: 创建时直接指定权限<br></br>rmdir : 删除空目录<br></br>-p : 递归删除空目录<br></br>-v : 显示命令的详细操作过程1.2.3.4.5.6.7.<br></br>​<br></br>[root@node /]# mkdir -pv testdir/dir1/{x..y}/{a..b}<br></br>mkdir: 已创建目录 "testdir"<br></br>mkdir: 已创建目录 "testdir/dir1"<br></br>mkdir: 已创建目录 "testdir/dir1/x"<br></br>mkdir: 已创建目录 "testdir/dir1/x/a"<br></br>mkdir: 已创建目录 "testdir/dir1/x/b"<br></br>mkdir: 已创建目录 "testdir/dir1/y"<br></br>mkdir: 已创建目录 "testdir/dir1/y/a"<br></br>mkdir: 已创建目录 "testdir/dir1/y/b"<br></br>​<br></br>​<br></br>[root@node testdir]# mkdir -pv testdir/dir1/{x,y}/{a,b}<br></br>​<br></br>mkdir: 已创建目录 "testdir"<br></br>mkdir: 已创建目录 "testdir/dir1"<br></br>mkdir: 已创建目录 "testdir/dir1/x"<br></br>mkdir: 已创建目录 "testdir/dir1/x/a"<br></br>mkdir: 已创建目录 "testdir/dir1/x/b"<br></br>mkdir: 已创建目录 "testdir/dir1/y"<br></br>mkdir: 已创建目录 "testdir/dir1/y/a"<br></br>mkdir: 已创建目录 "testdir/dir1/y/b"<br></br>[root@node testdir]# ll<br></br>总用量 0<br></br>drwxr-xr-x. 4 root root 24 7月   8 19:47 dir1<br></br>drwxr-xr-x. 3 root root 18 7月   8 19:52 testdir<br></br>[root@node testdir]# <br></br>​<br></br>mkdir 后面执行只能用 { } ;-pv是忽略报错显示命令详细过程

7.排序和去重

1.排序sort、去重;<br></br>                        选项:<br></br>                            -k:指定列(默认以空格为分隔符)<br></br>                            -n:以number方式排序<br></br>                            -r:反转(从大到小)<br></br><br></br><br></br>                    2.去重:<br></br>                        uniq:<br></br>                            选项:<br></br>                                -c:count出现的次数;<br></br><br></br><br></br>                        [root@node ~]# sort -k 2 -n -r students.txt <br></br>                            xiaohong    123<br></br>                            XiAoniu     88<br></br>                            xiaojun     80<br></br>                            xiaoma      66<br></br>                            xiaowang    50<br></br>                            xiaoming    30<br></br>                            xiaohong    18<br></br>                            xiaohong    11<br></br>                            xiaohong    1<br></br>​<br></br>​<br></br>                       [root@node ~]# sort -k 2 -n -r students.txt  | uniq -c <br></br>                              1 xiaohong    123<br></br>                              1 XiAoniu     88<br></br>                              1 xiaojun     80<br></br>                              1 xiaoma      66<br></br>                              1 xiaowang    50<br></br>                              1 xiaoming    30 <br></br>                              1 xiaohong    18<br></br>                              2 xiaohong    11<br></br>                              1 xiaohong    1<br></br>​<br></br>​<br></br>                需求:有一个日志文件,统计每个IP出现的次数,然后将top3 打印出来;<br></br><br></br>                    1.先排序;<br></br>                    2.去重,统计;<br></br>                    3.取前3;<br></br><br></br>                    [root@node ~]# sort 1.log  | uniq -c | sort -nr | head -3<br></br>                        153 161.35.86.181<br></br>                         60 180.97.165.74<br></br>                         42 101.72.213.150

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

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

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

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是加个管道

标签: linux, root, 基础, node, mkdir, Jul, dir1, 命题, testdir

相关文章推荐

添加新评论,含*的栏目为必填