2015-12-08 106 views
1

我想更改apache2 web服務器的默認web根文件夾,但是通過命令行從我正在創建的腳本中更改。通過一行命令在Ubuntu中編輯conf文件

我知道要通過nano/vim來完成它,然後轉到該行並手動更改它,但我想通過命令行來完成。

我雖然對像一些事(語法錯了 - 我知道 - 只是爲了讓我的觀點):

vim /etc/apache2/sites-enabled/000-default.conf | find 'DocumentRoot /var/www' | replace 'DocumentRoot /var/www/myFolder' 

也許不是用vim,但其他? 任何想法?

感謝

回答

1

您應該使用sed與那種操作的替代命令。

http://www.grymoire.com/Unix/Sed.html#uh-0

我沒有UNIX機器在手,但這樣的事情應該工作(使用#而不是通常的/作爲分隔符):

sed 's#/var/www#/var/www/MyFolder#' /etc/apache2/sites-enabled/000-default.conf 

即使它是不是你問題,因爲您最初的問題中提到的Vim,你也可以使用替代Vim內

:%s #/var/war#/var/www/MyFolder#g 

% means search in the whole file 
g means globally : it will replace multiple instance if the string is found multiple times 
+1

請考慮使用除'/','\/\/\/...'傷害眼睛以外的sed分隔符... – Kent

+0

@Kent:我不知道那個伎倆,但那很方便! –

+0

Acrtally可以自動修改文件vim:'vim -c「%s#/ var/www#/ var/www/MyFolder#g」-c wq/etc/apache2/sites-enabled/000-default.conf' – steffen

1

使用sed,參數爲-i

sed -i 's-/var/www-&/MyFolder-' /etc/apache2/sites-enabled/000-default.conf 

參數-i啓用就地編輯。

+0

謝謝你們。似乎sed會做這項工作。我不熟悉它。 – user1902346