Я хочу добавить этот текст:
<Directory "/var/www/*">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
в файл /etc/apache2/apache2.conf
У меня есть доступ через SSH, но я не знаю, как использовать VIM. Я хотел бы сделать это с помощью команды.
Используйте:
nano /etc/apache2/apache2.conf
(вам может потребоваться sudo
)
Это даст вам текстовый редактор командной строки, который работает как обычные текстовые редакторы. Используйте клавиши со стрелками для навигации. Backspace, ввод и т. Д. Работают как обычно.
Для сохранения нажмите Ctrl + O и используйте Ctrl + X , чтобы Выход. Для получения справки нажмите Ctrl + G изнутри nano или используйте man nano
.
Это должно выглядеть примерно так:
Этот синтаксис называется «ЗДЕСЬ документы»:
sudo tee -a /tmp/file <<EOF
<Directory "/var/www/*">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
EOF
Это решение лучше, чем использование ctrl-d, поскольку его можно использовать внутри сценариев оболочки.
Так как вы запросили 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
, чтобы закончить.
Вот простой способ сделать это, используя 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
Редактор nano
более дружелюбен ( sudo apt-get install nano
, если он недоступен).
echo "<Directory \"/var/www/*\">" > out_file
echo " Order allow,deny" >> out_file
echo " Allow from all" >> out_file
echo " AllowOverride All" >> out_file
echo "</Directory>" >> out_file
cat out_file | sudo tee -a /etc/apache2/apache2.conf