各位好:
請問如果想要讓centos自動安裝yum+ 開啟某個文件檔 (然後搜尋符合字串取代之)+自動回應選項,
以下有可能寫腳本辦到嗎?
#!/bin/bash
echo "安裝中..."
rpm -Uvh http://nginx.org/packages/centos/xxxxxx.noarch.rpm
請問
1●假如要讓他自動開啟/etc/sudoers這個文件,
然後搜尋
root ALL=(ALL) ALL
自動改成
#root ALL=(ALL) ALL
或是將
#PermitRootLogin no
改成
PermitRootLogin no
然後自動存檔?
2●假設腳本在進行安裝mysql時候,
#yum -y mysql
接著螢幕上會要你輸入
New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
...
... Success!
請問每行的"y"啦、密碼啦~要如何讓script自動幫你輸入?
#PermitRootLogin no #PermitRootLogin yes PermitRootLogin yes #PermitRootLogin yes (n個空格) PermitRootLogin no
PermitRootLogin no
我是使用2段式轉換:
sed -i 's/\(PermitRootLogin\)\s\+ yes/\1 no/' /etc/sudoers sed -i 's/^#\(PermitRootLogin no\)/\1/' /etc/sudoers
#PermitRootLogin yes #PermitRootLogin yes #PermitRootLogin no #PermitRootLogin no PermitRootLogin yes PermitRootLogin yes PermitRootLogin no PermitRootLogin no
sed -i 's/\(PermitRootLogin\)\s\+yes/\1 no/' 1.txt sed -i 's/^#\(PermitRootLogin\)\s\+\(no\)/\1 no/' 1.txt
PermitRootLogin no PermitRootLogin no PermitRootLogin no PermitRootLogin no PermitRootLogin no PermitRootLogin no PermitRootLogin no PermitRootLogin no
sed -i 's/^#\?\(PermitRootLogin\)\s\+.*$/\1 no/' 1.txt
你的問題答案是"可以"。
請使用 sed,例如:
<pre class="c" name="code">sed -i 's/^root ALL=(ALL) ALL/#&/;s/^#(PermitRootLogin no)/\1/' /etc/sudoers
請參考 mysql 參數 -p 可直接指定密碼。