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
このコマンドはrunを使用し、sudo
編集が必要です/etc/sysctl.conf
。結果を標準出力に印刷するのではなく、ファイルを編集するためにsudo
呼び出されます。変更する行を見つけ、その行の最初の文字である場合にのみ削除する正規表現です。sed -i
/net\.ipv4\.ip_forward =/
s/^#//
#
エディタの正しい構文を見つけるときの良い習慣は次のとおりです。いいえsed -i
ただ使用するのではなく、使用してsed
結果を確認してください。
または他の安全ネットワークが必要な場合は、sed -i.bak
それを実行すると.bak
サフィックスが 。ただし、元のファイルと同じディレクトリにバックアップが作成されるため、使用には注意が必要になります。これにより、ディレクトリ.d
(さまざまなディレクトリなど)のすべてのファイルを読み取るなど、さまざまな状況で問題が発生する可能性があります。