zoukankan      html  css  js  c++  java
  • 『BASH』

    一、找出ip addr命令结果中本机所有的IPv4地址

    BASH:

    f@z ~/py $ ip addr | grep -oP '(?:\d+\.){3}\d+/\d+'
    127.0.0.1/8
    172.18.16.4/24

    Python3:

    f@z ~/py $ cat ipaddr.py 
    #!/usr/bin/python3
    #-*- coding='utf-8' -*-
    import re
    import subprocess
    ipb = subprocess.check_output('ip addr', shell=True)
    ipaddr = ipb.decode('utf-8')
    ip1,ip2 = re.findall(r'(?:\d+\.){3}\d+/\d+', ipaddr)
    print(ip1, ip2)
    
    f@z ~/py $ python3 ipaddr.py 
    127.0.0.1/8 172.18.16.4/24

    二、列出inode使用率最大的三个分区,列出分区名称、inode使用率

    BASH:

    f@z ~ $ df -i | sed -r 's/ +/ /g' | cut -d' ' -f1,5 | sort -rn -k2 | head -n3
    /dev/root 3%
    tmpfs 1%
    tmpfs 1%

    Python3:

    f@z ~/py $ cat df.py 
    #!/usr/bin/env python3
    #-*- coding=utf-8 -*-
    import re
    import subprocess
    import heapq
    a = re.split('\n', subprocess.getoutput('df -i'))
    b = []
    c = []
    for x in a[1:]:
        z = re.split('\s+', x, 5)
        b.append(z[0])
        c.append(z[-2])
    d = dict(zip(b,c))
    print(heapq.nlargest(3, d.items(), key=lambda x: x[1]))
    
    f@z ~/py $ python3 df.py 
    [('/dev/root', '3%'), ('shm', '1%'), ('tmpfs', '1%')]

    三、查找UID最大的用户名、UID、SHELL

    BASH:

    f@z ~/py $ sort -nr -t ':' -k 3 passwd | head -n 1 | cut -d ':' -f '1,3,7'
    nobody:65534:/bin/false

    Python3:

    f@z ~/py $ cat pw.py 
    #!/usr/bin/env python3
    #_*_ coding:UTF-8 _*_
    import re
    with open('/home/f/py/passwd', 'r') as f:
        a = f.readlines()
        b = []
        for x in a:
            b.append(re.split(':', x))
        c = max(b, key=lambda s: int(s[2]))
        name,_,uid,*_,shell = c
        print(name, uid, shell.strip())
    
    f@z ~/py $ python3 pw.py 
    nobody 65534 /bin/false

    四、查出/tmp的权限并以数字方式显示

    BASH:

    f@z ~/py $ stat /tmp/ | sed -n '4p' | grep -oP '(?<=\()\d{3,4}(?=/)'
    1777

    Python3:

    f@z ~/py $ cat tmpperm.py 
    #!/usr/bin/env python3
    #-*- coding=utf-8 -*-
    import re
    import subprocess
    a = re.split('\n', subprocess.getoutput('stat /tmp'))[3]
    print(re.findall('(?<=\()\d{3,4}(?=/)', a))
    
    f@z ~/py $ python3 tmpperm.py 
    ['1777']

    五、统计当前本机连接的远程主机IP数量,并按从大到小排列

    Python3&BASH:

    z py # cat ss.py && python3 ss.py && ss -tun | grep -oP '(?:\d+\.){3}\d+(?=:\d+\s*$)' | sort | uniq -c | sort -nr

    #!/usr/bin/env python3
    #-*- coding='utf-8' -*-
    import re
    import subprocess
    a = re.findall(r'(?:\d+\.){3}\d+(?=:\d+\s*)', subprocess.getoutput('ss -tun'))[1::2]
    b = set(a)
    c = []
    for x in b:
        c.append(a.count(x))
    d = dict(zip(b,c))
    print(sorted(d.items(), key=lambda z: z[1], reverse=True))

    Python3输出:
    [(
    '74.125.23.102', 3), ('42.121.254.229', 2), ('74.125.23.100', 1), ('220.181.105.153', 1)]

    BASH输出:
    3 74.125.23.102 2 42.121.254.229 1 74.125.23.100 1 220.181.105.153
  • 相关阅读:
    How to resolve mysql problem when you get code 2003(10061) and 1130
    Windows connect to mysql failed: can't get hostname for your address
    Python基础教程总结(二)
    Python基础教程总结(一)
    Begin to study Deep Learning
    再坚持一点点
    技术到管理的必经之路(2)
    技术到管理的必经之路(1)
    c#进阶(7)—— 异步编程基础(async 和 await 关键字)
    c#进阶(6)—— 网络通信基础知识
  • 原文地址:https://www.cnblogs.com/hadex/p/5738540.html
Copyright © 2011-2022 走看看