centos网络代理中的穷举法字符串操作

文章讲述了在Linux系统中,no_proxy环境变量不支持通配符或网段设置,因此需要使用shell脚本和sed命令进行IP地址的列举与格式转换,将空格分隔的IP列表转换为逗号分隔,以便符合代理配置的要求。

代理设置中的字符串操作

Linux的no_proxy设置,即跳过代理的地址的设置不支持通配符(*.xx.com192.168.*)、不支持网段(192.168.0.0/16),只能一个一个 IP 或域名的配置,如果 IP 是连续的,可以使用 “穷举法”。

echo 192.168.{1..2}.{1..3}可以获得

[root@master ~]# echo 192.168.{1..2}.{1..3}
192.168.1.1 192.168.1.2 192.168.1.3 192.168.2.1 192.168.2.2 192.168.2.3

这些IP之间是空格分开的,不符合代理配置用逗号分开的标准

所以要把空格替换成逗号

下面用了sed命令和shell的${}字符串操作

//shell的${}字符串操作*
no_proxy_192=$(echo 192.168.220.{1..255})
export no_proxy="127.0.0.1,localhost,${no_proxy_192// /,}"
//sed命令
no_proxy_192=$(echo 192.168.220.{1..255}|sed 's/ /,/g')
no_proxy="127.0.0.1,localhost,,${no_proxy_192}"

1、sed命令

在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:

//替换所有匹配关键字
sed 's/原字符串/替换字符串/g'

更多的sed操作

2、shell字符串操作

//替换字符串 替换第一个在字符串中匹配到的 待替换字符串
${字符串/待替换字符串/替换字符串}
//替换字符串 替换每一个在字符串中匹配到的 待替换字符串
${字符串//待替换字符串/替换字符串}

示例

#!/bin/sh

str="This is This is my test string search_string"  #被测试字符串
subStr="This is "                                   #待替换的字符串
replaceStr="TTT "                                   #替换的字符串

echo -e "Test 1 ${str/$subStr/$replaceStr}"
echo -e "Test 2 ${str//$subStr/$replaceStr}"

其输出为:

Test 1 TTT This is my test string search_string
Test 2 TTT TTT my test string search_string

更多shell字符串操作

<think>嗯,用户想在CentOS 8中查询“shutdown”字符串。首先,我需要确定用户具体想找什么。是查找包含“shutdown”关键词的文件,还是查看系统日志中与关机相关的记录?或者是查看命令的帮助文档?可能用户不太清楚具体方法,所以得覆盖几种常见的情况。 首先,考虑使用grep命令在文件中搜索字符串。常见的系统日志文件在/var/log目录下,比如messages、secure、syslog等。不过CentOS 8可能默认使用journalctl来管理日志,所以可能需要用journalctl结合grep来过滤。不过用户可能不太熟悉这些路径,得详细说明步骤。 另外,用户可能想查找系统中哪些文件包含“shutdown”这个字符串,这时候可以用find配合grep,比如在/etc目录下查找配置文件中的相关内容。但要注意权限问题,可能需要sudo。 还有,直接查询shutdown命令的手册页,用man shutdown,这样能查看命令的用法,里面自然会有相关字符串。这也是一个可能性,用户可能想了解命令的选项。 另外,系统服务相关的,比如systemctl list-units --type=service | grep shutdown,查看是否有相关的服务。不过shutdown通常是一个命令,不是服务,这个可能不太适用,但考虑全面一点比较好。 还有历史命令的记录,如果用户之前执行过shutdown,可以用history | grep shutdown来找,不过这可能只在当前用户的bash历史中有效。 需要分步骤说明这些方法,并提醒用户注意权限问题,比如访问某些日志或系统文件可能需要sudo。另外,如果用户只想找命令的帮助,直接man会更直接。同时,注意不同方法的适用场景,比如日志分析、文件内容查找、命令帮助等。 可能用户是系统管理员,遇到关机相关的问题,需要排查日志,或者开发者在配置脚本时需要参考shutdown的用法。因此,覆盖这些常见情况,给出清晰的步骤和命令示例,确保用户能根据需求选择合适的方法。 最后,检查命令在CentOS 8中的适用性,比如确认journalctl的使用方法,以及默认日志路径是否有变化。确保提供的命令准确可行,避免用户执行时报错。</think>在 CentOS 8 中查询包含 "shutdown" 字符串的内容,可以通过以下方法逐步操作: --- ### **方法 1:在系统日志中查询** 系统关机记录通常保存在日志文件中: ```bash sudo grep -i "shutdown" /var/log/messages ``` 或使用 `journalctl` 查询系统日志: ```bash sudo journalctl | grep -i "shutdown" ``` - `-i` 参数表示忽略大小写 - 如果结果过多,可通过 `-n 50` 显示最近 50 行日志 --- ### **方法 2:查找包含字符串的文件** 在 `/etc` 目录下搜索配置文件中的 "shutdown" 关键词: ```bash sudo grep -rni "shutdown" /etc/ ``` - `-r` 递归搜索子目录 - `-n` 显示行号 - `/etc/` 是系统配置文件的主要存放目录 --- ### **方法 3:查询命令帮助文档** 直接查看 `shutdown` 命令的说明: ```bash man shutdown ``` 或快速过滤帮助文档中的关键词: ```bash shutdown --help | grep -i "shutdown" ``` --- ### **方法 4:查询历史命令** 查看当前用户执行过的包含 "shutdown" 的历史命令: ```bash history | grep -i "shutdown" ``` --- ### **注意事项** 1. 权限问题:查询系统日志或配置文件时需使用 `sudo` 2. 日志位置:CentOS 8 默认使用 `journald` 日志系统,可通过 `journalctl -u systemd-shutdownd.service` 查看详细关机服务日志 3. 精确匹配:若需完全匹配单词,可使用 `grep -w "shutdown"` 根据具体需求选择合适的方法,排查日志时建议优先检查 `/var/log/messages` 或 `journalctl` 输出。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值