我正在尝试编写一个脚本来编辑 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.conf
。sudo
调用sed -i
编辑文件而不是将结果打印到标准输出。/net\.ipv4\.ip_forward =/
是一个正则表达式,它查找要修改的行,并且仅当它是该行的第一个字符时才s/^#//
将其删除。#
为您的编辑找到正确的语法时,一种好的做法是不是使用sed -i
而不只是使用sed
并查看结果。
另外,如果您想要另一个安全网,您可以运行sed -i.bak
它将创建一个.bak
后缀为.的备份文件。但使用它时要小心,因为备份是在与原始文件相同的目录中创建的,这可能会在各种情况下导致问题,例如读取目录中的所有文件(例如各种.d
目录)时。