jsp如何做网站界面,海南网站建设优化排名,网络空间设计说明怎么写,网站程序定制文章目录 7.1 通配符7.1.1 通配符介绍7.1.2 通配符示例 7.2 正则表达式7.2.1 grep命令7.2.2 基本正则表达式7.2.3 扩展正则表达式 7.1 通配符
在 Shell 中通配符用于查找文件名和目录名。它是由 Shell 处理的#xff0c;只会出现在命令的参数中。
7.1.1 通配符介绍
* 匹… 文章目录 7.1 通配符7.1.1 通配符介绍7.1.2 通配符示例 7.2 正则表达式7.2.1 grep命令7.2.2 基本正则表达式7.2.3 扩展正则表达式 7.1 通配符
在 Shell 中通配符用于查找文件名和目录名。它是由 Shell 处理的只会出现在命令的参数中。
7.1.1 通配符介绍
* 匹配任意长度的字符可以是 0 个
? 匹配任意单个字符必须是1个
[] 匹配指定的字符范围内的任意单个字符
[a-z,A-Z,0-9] 匹配所有字母和数字可以不加逗号
[a-z] 匹配所有小写字母
[A-Z] 匹配所有大写字母
[A-z] 匹配所有大小写字母等价于 [a-z,A-Z]
[:upper:] 匹配所有大写字母等价于 [A-Z]
[:lower:] 匹配所有小写字母等价于 [a-z]
[:alpha:] 匹配所有字母等价于 [A-z]
[:digit:] 匹配所有数字等价于 [0-9]
[:alnum:] 数字和大小写字母
[:space:] 匹配水平和垂直空白字符
[^] 匹配指定字符范围外的任意单个字符
[^0-9] 匹配除数字以外它等价于[^[:digit:]]7.1.2 通配符示例
显示当前工作目录下所有以arr开头的文件
[rootopenEuler ~]# ls a*
ahead arr1.sh arr2.sh arr3.sh显示当前工作目录下所以在 arr后有一个字符的文件
[rootopenEuler ~]# ls
ahead arr1.sh arr2.sh arr3.sh arrbb.sh arrb.sh ips myfile arr.sh[rootopenEuler ~]# ls arr?.sh
arr1.sh arr2.sh arr3.sh arrb.sh显示当前工作目录下所有以i或m开头的文件
[rootopenEuler ~]# ls
ahead arr1.sh arr2.sh arr3.sh arrbb.sh arrb.sh arr.sh ips myfile[rootopenEuler ~]# ls [im]*
ips myfile显示当前工作目录下所有以字母开头的文件
[rootopenEuler ~]# touch {1..5}
[rootopenEuler ~]# ls
1 3 5 arr1.sh arr3.sh arrb.sh i m
2 4 ahead arr2.sh arrbb.sh arr.sh ips myfile[rootopenEuler ~]# touch File{1,2}[rootopenEuler ~]# ls
1 3 5 arr1.sh arr3.sh arrb.sh File1 i m
2 4 ahead arr2.sh arrbb.sh arr.sh File2 ips myfile[rootopenEuler ~]# ls [a-zA-Z]*
ahead arr2.sh arrbb.sh arr.sh File2 ips myfile
arr1.sh arr3.sh arrb.sh File1 i m[rootopenEuler ~]# ls [[:alpha:]]*
ahead arr1.sh arr2.sh arr3.sh arrbb.sh arrb.sh arr.sh[rootopenEuler ~]# ls [A-z]*
ahead arr2.sh arrbb.sh arr.sh File2 ips myfile
arr1.sh arr3.sh arrb.sh File1 i m显示所有以数字开头的文件
[rootopenEuler ~]# ls
1 3 5 arr1.sh arr3.sh arrb.sh File1 i m
2 4 ahead arr2.sh arrbb.sh arr.sh File2 ips myfile
[rootopenEuler ~]# ls [0-9]*
1 2 3 4 5
[rootopenEuler ~]# ls [[:digit:]]*
1 2 3 4 5显示所有数字和字母开头的文件
[rootopenEuler ~]# ls
1 3 5 arr1.sh arr3.sh arrb.sh File1 i m
2 4 ahead arr2.sh arrbb.sh arr.sh File2 ips myfile
[rootopenEuler ~]# ls [a-zA-Z0-9]*
1 3 5 arr1.sh arr3.sh arrb.sh File1 i m
2 4 ahead arr2.sh arrbb.sh arr.sh File2 ips myfile
[rootopenEuler ~]# ls [A-z0-9]*
1 3 5 arr1.sh arr3.sh arrb.sh File1 i m
2 4 ahead arr2.sh arrbb.sh arr.sh File2 ips myfile
[rootopenEuler ~]# ls [[:alnum:]]*
1 3 5 arr1.sh arr3.sh arrb.sh File1 i m
2 4 ahead arr2.sh arrbb.sh arr.sh File2 ips myfile7.2 正则表达式
正则表达式是通过一些特殊字符的排列用于查找、替换、删除一行或多行字符串。它的操作是针对于文件的内容则前面讲的通配符是针对于文件和目录名的操作。
我们以前面讲的 * 号为例来说明通配符和正则表达式的区别如果* 是用于查找文件名或目录名时表示可以匹配0到多个任意字符如果*用于查找文件的内容则表示重复匹配前一个字符0到多次。
在 Shell 中正则表达式分类两种
基本正则表达式扩展正则表达式
7.2.1 grep命令
grep 命令是用于查询或过滤字符的命令它的语法格式如下
Usage: grep [OPTION]... PATTERNS [FILE]...
Search for PATTERNS in each FILE.命令的常用选项介绍
-n, --line-number 显示行号
-o, --only-matching 只显示匹配的行
-q, --quiet, --silent 静默模式没有任何输出要获取内容需要与 $? 来配合使用。
-l, --files-with-matches 如果匹配成功则只将文件名称打印出来如果匹配失败则通过会与 -rl 一起使用
-A, --after-contextNUM 如果匹配成功则将匹配当前行及其之后 NUM 行一起打印输出
-B, --before-contextNUM 如果匹配成功则将匹配当前行及其之前 NUM 行一起打印输出
-C, --contextNUM 如果匹配成功则将匹配行及其前后 NUM 行一起打印输出
-c, --count 如果匹配成功则将匹配到的行数打印输出
-E, --extended-regexp 正则扩展匹配需要使用 grep -E 或者 egrep 命令才可以
-i, --ignore-case 忽略大小写匹配
-v, --invert-match 取反打印不匹配的内容
-V, --version 显示版本信息
-w, --word-regexp 匹配单词
-x, --line-regexp 匹配行
-s, --no-messages 不显示关于不存在的或者无法读取文件错误信息
-r, --recursive 递归匹配使用示例
# 输出匹配的行号
[rootopenEuler ~]# grep -n ro* /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin# 只输出匹配的内容
[rootopenEuler ~]# grep -o redhat /etc/passwd
redhat
redhat
redhat
[rootopenEuler ~]# grep -o root /etc/passwd
root
root
root
root# 打印匹配行及其后3行内容
[rootopenEuler ~]# grep -A 3 adm /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown# 打印匹配行及其前3行内容
[rootopenEuler ~]# grep -B 3 adm /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin# 打印匹配行及其前后3行内容
[rootopenEuler ~]# grep -C 3 adm /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown# 匹配指定的单词
[rootopenEuler ~]# grep -w adm /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin# 不区分大小写匹配
[rootopenEuler ~]# grep -w DNS /etc/passwd
unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
[rootopenEuler ~]# grep -w dns /etc/passwd
[rootopenEuler ~]# grep -wi dns /etc/passwd
unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin# 匹配除了nologin单词以外的所有内容
[rootopenEuler ~]# grep -wv nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash7.2.2 基本正则表达式
基本正则表达式Basic Regular ExpressionBRE又称为标准正则表达式是最早制订的正则表达式规范仅支持最基本的元字符集。基本正则表达式是POSIX规范制订的两种正则表达式语法标准之一另外一种语法标准称为扩展正则表达式。
字符含义^在每行的开始进行匹配$在每行的末尾进行匹配.对任何单个字符进行匹配*对前一项进行0次或多次重复匹配[str]对str中的任何单个字符进行匹配[^str]对任何不在str中的单个字符进行匹配[a-b]对a到b之间的任何字符进行匹配\忽略后面一个字符的特殊含义
使用示例
在/etc/passwd 文件中搜索以 root 开头的内容
[rootopenEuler ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash在 /etc/passwd 文件中搜索以 nologin 结尾的所有行
[rootopenEuler ~]# grep nologin$ /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
....output omitted....在 ~/passwd 文件中搜索b开头n结尾并且中间只有一个字符的所有行
[rootopenEuler ~]# cat /etc/passwd passwd
[rootopenEuler ~]# echo ban:x::::: passwd
[rootopenEuler ~]# grep b.n passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
.....output omitted.....
ban:x:::::在 ~/passwd 文件中搜索包含 ro* 字符串的所有行
[rootopenEuler ~]# cat /etc/passwd passwd
[rootopenEuler ~]# echo ban:x::::: passwd
[rootopenEuler ~]# echo ro passwd
[rootopenEuler ~]# echo roo passwd
[rootopenEuler ~]# echo rooooooo passwd[rootopenEuler ~]# grep ro* passwd
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
libstoragemgmt:x:996:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
polkitd:x:995:993:User for polkitd:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
cockpit-ws:x:993:990:User for cockpit-ws:/:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
systemd-network:x:987:987:systemd Network Management:/:/usr/sbin/nologin
systemd-resolve:x:986:986:systemd Resolver:/:/usr/sbin/nologin
systemd-timesync:x:985:985:systemd Time Synchronization:/:/usr/sbin/nologin
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
ro
roo
rooooooo在 ~/passwd 文件中搜索能够匹配 r[opu]* 的所有行
[rootopenEuler ~]# grep r[opu]* ~/passwd
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
libstoragemgmt:x:996:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
polkitd:x:995:993:User for polkitd:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
cockpit-ws:x:993:990:User for cockpit-ws:/:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
systemd-network:x:987:987:systemd Network Management:/:/usr/sbin/nologin
systemd-resolve:x:986:986:systemd Resolver:/:/usr/sbin/nologin
systemd-timesync:x:985:985:systemd Time Synchronization:/:/usr/sbin/nologin
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
ro
roo
rooooooo
[rootopenEuler ~]# grep r[opu]. ~/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
libstoragemgmt:x:996:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
systemd-timesync:x:985:985:systemd Time Synchronization:/:/usr/sbin/nologin
roo
rooooooo^$ 表示空行不是空格。
[rootopenEuler ~]# grep -n ^$ passwd
4:
7:
8:
9:
10:
17:
18:在 ~/passwd 文件中匹配至少2个o最多4个o的行
[rootopenEuler ~]# grep -E ro{2,4} ~/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roo
rooooooo注意要实现这个功能我们需要添加 -E 选项因为这是扩展正则表达式基本正则表达的写法不能处理扩展正则表达式。 7.2.3 扩展正则表达式
扩展正则表达式Extended Regular ExpressionERE支持比基本正则表达式更多的元字符但是扩展正则表达式对有些基本正则表达式所支持的元字符并不支持。前面介绍的元字符“^”、“$”、“.”、“*”、“[]”以及“[^]”这6个元字符在扩展正则表达式都得到了支持并且其意义和用法都完全相同不再重复介绍。接下来重点介绍一下在扩展正则表达式中新增加的一些元字符。
字符含义对前一项进行1次或多次重复匹配对前一项进行0次或1次重复匹配{n}对前一项进行 n 次重复匹配{n,}对前一项进行 n 次或更多次重复匹配{,m}对前一项最多进行 m 次重复匹配{n,m}对前一项至少匹配 n 次最多匹配 m 次(s|t)匹配s项或t项中的一项 注意使用扩展正则表达时可以使用 grep -E 命令也可以使用 egrp 命令推荐使用 egrep 来处理扩展正则表达式 使用示例
显示/etc/passwd文件中以bash结尾的行
[rootopenEuler ~]# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
[rootopenEuler ~]# grep -E bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
[rootopenEuler ~]# egrep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash找出/etc/passwd文件中的三位或四位数
[rootopenEuler ~]# grep -E [0-9]{3,4} /etc/passwd
games:x:12:100:games:/usr/games:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
libstoragemgmt:x:996:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
polkitd:x:995:993:User for polkitd:/:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
cockpit-ws:x:993:990:User for cockpit-ws:/:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
systemd-network:x:987:987:systemd Network Management:/:/usr/sbin/nologin
systemd-resolve:x:986:986:systemd Resolver:/:/usr/sbin/nologin
systemd-timesync:x:985:985:systemd Time Synchronization:/:/usr/sbin/nologin
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash[rootopenEuler ~]# egrep [[:digit:]]{3,4} /etc/passwd
games:x:12:100:games:/usr/games:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
libstoragemgmt:x:996:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
polkitd:x:995:993:User for polkitd:/:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
cockpit-ws:x:993:990:User for cockpit-ws:/:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
systemd-network:x:987:987:systemd Network Management:/:/usr/sbin/nologin
systemd-resolve:x:986:986:systemd Resolver:/:/usr/sbin/nologin
systemd-timesync:x:985:985:systemd Time Synchronization:/:/usr/sbin/nologin
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash找出/etc/grub2.cfg文件中以至少一个空白字符开头后面又跟了非空白字符的行
[rootopenEuler ~]# egrep ^[[:space:]][^[:space:]] /etc/grub2.cfgload_env -f ${config_directory}/grubenvload_envset default${next_entry}set next_entrysave_env next_entryset boot_oncetrueset default${saved_entry}menuentry_id_option--idmenuentry_id_optionset saved_entry${prev_saved_entry}...output omitted...找出netstat -tan命令的结果中以‘LISTEN’后跟0个或多个空白字符结尾的行
[rootopenEuler ~]# netstat -tan|grep -E LISTEN[[:space:]]*$
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::111 :::* LISTEN 找出fdisk -l命令的结果中取出硬盘路径
[rootopenEuler ~]# fdisk -l|grep -E Disk[[:space:]]/[^[:space:]]
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk /dev/mapper/openeuler-root: 45.07 GiB, 48393879552 bytes, 94519296 sectors
Disk /dev/mapper/openeuler-swap: 3.93 GiB, 4215275520 bytes, 8232960 sectors找出ldd /usr/bin/cat命令的结果中文件路径
[rootopenEuler ~]# ldd /usr/bin/cat | egrep /([a-z,0-9,.]|-)libc.so.6 /usr/lib64/libc.so.6 (0x00007f8aa4d2e000)/lib64/ld-linux-x86-64.so.2 (0x00007f8aa4f49000)[rootopenEuler ~]# ldd /usr/bin/cat | egrep /[^[:space:]]libc.so.6 /usr/lib64/libc.so.6 (0x00007fe49806e000)/lib64/ld-linux-x86-64.so.2 (0x00007fe498289000)找出/proc/meminfo文件中所有以大写或小写s开头的行
[rootopenEuler ~]# cat /proc/meminfo | egrep ^(S|s)
SwapCached: 0 kB
SwapTotal: 4116476 kB
SwapFree: 4116476 kB
Shmem: 8844 kB
Slab: 86148 kB
SReclaimable: 39424 kB
SUnreclaim: 46724 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB[rootopenEuler ~]# egrep ^(S|s) /proc/meminfo
SwapCached: 0 kB
SwapTotal: 4116476 kB
SwapFree: 4116476 kB
Shmem: 8844 kB
Slab: 86132 kB
SReclaimable: 39424 kB
SUnreclaim: 46708 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB显示当前系统上root、redhat或spark用户的相关信息
[rootopenEuler ~]# egrep (root|redhat|spark) /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
redhat:x:1000:1000:redhat:/home/redhat:/bin/bashecho输出一个绝对路径使用egrep取出其基名
[rootopenEuler ~]# echo /usr/local/cat | egrep ^/[a-z]
/usr/local/cat找出ifconfig命令结果中的1-255之间的整数
[rootopenEuler ~]# ifconfig | egrep -w [1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5]inet 192.168.72.150 netmask 255.255.255.0 broadcast 192.168.72.255inet6 fe80::20c:29ff:fe4f:96ec prefixlen 64 scopeid 0x20linkether 00:0c:29:4f:96:ec txqueuelen 1000 (Ethernet)RX packets 18333 bytes 17737370 (16.9 MiB)TX packets 5505 bytes 581056 (567.4 KiB)
lo: flags73UP,LOOPBACK,RUNNING mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10host找出ifconfig命令输出中的所有IP地址
[rootopenEuler ~]# ifconfig | egrep -o [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
192.168.72.150
255.255.255.0
192.168.72.255
127.0.0.1
255.0.0.0