在 ubuntu 上通过 bash 脚本编辑配置文件

在 ubuntu 上通过 bash 脚本编辑配置文件

我正在尝试编写一个脚本来编辑 ubuntu 上的配置文件

我需要为文件 /etc/sysctl.conf 启用 ip 转发选项

我需要编辑这一行,从此

#net.ipv4.ip_forward = 0

对此:

net.ipv4.ip_forward = 0

删除“#”

我可以用脚本来做吗?

谢谢您的帮助!

答案1

您应该使用流编辑器sed来执行此操作。

sudo sed -i '/net\.ipv4\.ip_forward =/s/^#//' /etc/sysctl.conf

该命令使用 运行sudo,需要进行编辑/etc/sysctl.confsudo调用sed -i编辑文件而不是将结果打印到标准输出。/net\.ipv4\.ip_forward =/是一个正则表达式,它查找要修改的行,并且仅当它是该行的第一个字符时才s/^#//将其删除。#

为您的编辑找到正确的语法时,一种好的做法是不是使用sed -i而不只是使用sed并查看结果。

另外,如果您想要另一个安全网,您可以运行sed -i.bak它将创建一个.bak后缀为.的备份文件。但使用它时要小心,因为备份是在与原始文件相同的目录中创建的,这可能会在各种情况下导致问题,例如读取目录中的所有文件(例如各种.d目录)时。

相关内容