我想附加此文本:
<Directory "/var/www/*">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
到文件/etc/apache2/apache2.conf
我可以通过 SSH 访问,但我不知道如何使用 VIM。我想通过命令来执行此操作。
答案1
这种语法被称为“HERE 文档”:
sudo tee -a /tmp/file <<EOF
<Directory "/var/www/*">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
EOF
此解决方案比使用 ctrl-d 更好,因为它可以在 shell 脚本中使用它。
答案2
使用:
nano /etc/apache2/apache2.conf
(您可能需要使用sudo
)
这将为您提供一个命令行文本编辑器,其工作方式与普通文本编辑器非常相似。使用箭头键进行导航。退格键、回车键等均可正常工作。
要保存,请按Ctrl+O并使用Ctrl+X退出。如需帮助,请在 nano 内按Ctrl+ ,或使用Gman nano
。
它看起来应该是这样的:
答案3
这是一种简单的方法,使用cat
。
% cat - >> testf
one
two
three
four
您使用 终止您的输入CTRL-D。
这将获取来自的交互式输入cat
(即,无论您输入什么内容),并将其附加到现有文件testf
。
testf
(保留原来的两行)现在看起来像这样:
original line 1
original line 2
one
two
three
four
正如其他答案所说明的那样,在编辑您没有写权限的文件时,您将需要特殊的语法。我发现切换到 root 用户更简单,即sudo su
。但另一种简单的方法是使用tee
设置了附加标志的 ,然后调用sudo
:
sudo tee -a >> config.conf
答案4
由于您要求使用 Vim,因此以下是需要运行的命令:
sudo vim -e +'$put = \"<Directory \\"/var/www/*\\">\n\tOrder allow,deny\n\tAllow from all\n\tAllowOverride All\n</Directory>\n\"' -cwq /etc/apache2/apache2.conf
如果您没有vim
,这也相当于vi -e
或ex
。
替代的清洁方法:
$ sudo ex +"r /dev/stdin" -cwq output.txt <<-EOF
<Directory "/var/www/*">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
EOF
只需运行第一行(不带$
),粘贴多行文本,然后输入EOF
即可完成。