How to append multiple lines of text to a file?
Solution 1
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:
Solution 2
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.
Solution 3
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
Related videos on Youtube
JD Isaacks
Author of Learn JavaScript Next github/jisaacks twitter/jisaacks jisaacks.com
Updated on September 17, 2022Comments
-
JD Isaacks over 1 year
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.
-
Admin over 13 yearsMaybe I'm missing something, but why don't you use nano?
-
-
Admin over 13 yearsYou should make a backup first when blindly editing like this - it is very easy to mistype something and end up clobbering the whole file.
-
belacqua over 13 yearsI would agree with 'for use inside shell scripts, you will want to use HERE document syntax' .
-
uuu777 over 13 yearsbtw, sometimes ctrl-d doesn't work. I once had to paste something in a file from a xen console running a initrd shell with incomplete terminal support; ctrl-c, ctrl-d etc didn't work, so I had to resort to HERO document also interactively.
-
uuu777 about 13 yearsyes,
cat
is often abused