文章目录
常用正则表达式
    匹配任意IP地址(未匹配掩码)
    '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
    匹配私网ip地址
    获取linux公网ip地址
root@sj-vps:~# ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1
104.168.102.101、校验指定目录下文件的md5值(含隐藏文件)
#!/bin/bash
# 只需要将变量改成您指定的目录即可
DIR="/root"
# 递归遍历指定目录下的所有目录和文件,并计算md5值
# find "$DIR" -type f  -o -type d | while read -r path   若是使用这行,则会将空目录也打印出来
find "$DIR" -type f  | while read -r path
  do
    # 计算文件或目录的MD5值
    md5=$(md5sum "$path" | awk '{ print $1 }')
    # 输出MD5值和文件路径
    echo "MD5: $md5, Path: $path"
  done2、打印linux网卡的ip和状态信息
脚本内容区域,注意应用了grep的高级用法,以及多行结果转换为数组+数组的应用
注意:该脚本不适用一张网卡多个ip的情况
#!/bin/bash
#set -x
result=$(ip a | grep -Po '(?<=: ).*(?=:)' | grep -v lo)
net_list=($result)
num=1
    echo "当前服务器的网卡信息如下:"
    echo "+-----------------------------------------------------------------------------------------+"
    echo "| 序号 | 网卡名     | IPv4地址                | IPv6地址                       | 状态     |"
    echo "+=========================================================================================+"
for netinterface in ${net_list[@]}
do
    netinterface=$(echo $netinterface | awk -F'@' '{print $1}')     # 修正写法,防止网卡名称中带有@字符,导致ip a show 网卡名失效
    ipv4_address=$(ip a show $netinterface | grep -Po '(?<=inet ).*' | awk -F' ' '{print $1}')
    # ipv4_address=$(ip a show $netinterface | grep -Po '(?<=inet ).*(?=\ brd|peer)')  这是另外一种匹配
    ipv6_address=$(ip a show $netinterface | grep -Po '(?<=inet6 ).*' | awk -F' ' '{print $1}')
    net_state=$(ip a show $netinterface | grep -Po '(?<=state ).*(?= group)')
    [[ -z "$ipv4_address" ]] && ipv4_address=NULL
    [[ -z "$ipv6_address" ]] && ipv6_address=NULL
    printf "| %-5s| %-11s| %-24s| %-31s| %-9s|\n"  $num $netinterface $ipv4_address $ipv6_address $net_state
    echo "+-----------------------------------------------------------------------------------------+"
    let num++
done
执行结果区域
root@sj-vps:~# ./test.sh 
当前服务器的网卡信息如下:
+-----------------------------------------------------------------------------------------+
| 序号 | 网卡名     | IPv4地址                | IPv6地址                       | 状态     |
+=========================================================================================+
| 1    | eth0       | 104.168.102.10/24       | fe80::216:3cff:fedb:e649/64    | UP       |
+-----------------------------------------------------------------------------------------+
| 2    | cq_to_sj   | 192.168.254.2           | NULL                           | UNKNOWN  |
+-----------------------------------------------------------------------------------------+
| 3    | docker0    | 172.17.0.1/16           | NULL                           | DOWN     |
+-----------------------------------------------------------------------------------------+2、linux查看cpu相关信息
#!/bin/bash
#查看物理cpu颗数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
#查看逻辑cpu个数(线程数)
cat /proc/cpuinfo |grep "processor"|wc -l
#查看cpu核心数
cat /proc/cpuinfo |grep "cores"|uniq
#查看cpu主频
cat /proc/cpuinfo |grep MHz|uniq
#查看cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
#查看当前cpu工作在32/64位的模式下,若是32,不代表其不支持64位
getconf LONG_BIT
#查看当前cpu是否支持64位计算(结果大于0,说明支持64位)
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
#查看机器型号
dmidecode | grep "Product Name"
#查看cpu是否支持虚拟化
cat /proc/cpuinfo | grep -E '(vmx|svm)'
#查看详细的cpu信息
#cat /proc/cpuinfo
#简单查看cpu信息
#lscpu如果文章对你有帮助,欢迎点击上方按钮打赏作者
 
                     谢谢你请我吃辣条
谢谢你请我吃辣条
             
    
暂无评论