How to append multiple lines of text to a file?

I want to append this text:

<Directory "/var/www/*">
    Order allow,deny
    Allow from all
    AllowOverride All
</Directory>

to the file /etc/apache2/apache2.conf

I have access via SSH but I don't know how to use VIM. I would like to do this via a command.


This syntax is called "HERE documents":

sudo tee -a /tmp/file <<EOF
<Directory "/var/www/*">
    Order allow,deny
    Allow from all
    AllowOverride All
</Directory>    
EOF

This solution is better than using ctrl-d since it can be used inside shell scripts.


Use:

nano /etc/apache2/apache2.conf

(you may need to use sudo)

This will give you a command line text editor that works much like normal text editors. Use the arrow keys to navigate. Backspace, enter, etc. work as normal.

To save, press Ctrl+O and use Ctrl+X to exit. For help, press Ctrl+G from inside nano, or use man nano.

It should look something like this:

nano


Here's an easy way to do it, using cat .

% cat - >> testf
one
two
   three
four

You terminate your input with the CTRL-D .

This takes interactive input from cat (i.e., whatever you type in), and appends it to the existing file testf .

testf (with two original lines intact) will now look like this:

original line 1
original line 2

one
two
   three
four

As other answers have illustrated, you will need special syntax when editing files which you don't have write permission on. I find it easier to just switch to the root user for this, i.e., sudo su . But another easy method is to use tee with the append flag set, and called with sudo:

sudo tee -a >> config.conf