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

このコマンドはrunを使用し、sudo編集が必要です/etc/sysctl.conf。結果を標準出力に印刷するのではなく、ファイルを編集するためにsudo呼び出されます。変更する行を見つけ、その行の最初の文字である場合にのみ削除する正規表現です。sed -i/net\.ipv4\.ip_forward =/s/^#//#

エディタの正しい構文を見つけるときの良い習慣は次のとおりです。いいえsed -iただ使用するのではなく、使用してsed結果を確認してください。

または他の安全ネットワークが必要な場合は、sed -i.bakそれを実行すると.bakサフィックスが 。ただし、元のファイルと同じディレクトリにバックアップが作成されるため、使用には注意が必要になります。これにより、ディレクトリ.d(さまざまなディレクトリなど)のすべてのファイルを読み取るなど、さまざまな状況で問題が発生する可能性があります。

おすすめ記事