Cómo agregar líneas al final del archivo en Linux

120

Quiero agregar las siguientes 2 líneas ...

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1600x1200"

al final del archivo vncservers que se encuentra en el directorio .... / etc / sysconfig /

¿Cómo puedo hacer esto?

Gracias

Antony West
fuente
2
Puede usar vio emacs. ¿Sabes cómo usarlos? No intento ser sarcástico.

Respuestas:

232

La forma más fácil de redirigir la salida del eco por >>

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile
user897079
fuente
3
Solo por curiosidad, ¿cómo agregaría texto a un archivo sin crear una nueva línea?
Martin Hansen
11
Depende de la última línea agregada, no de su comando actual. Cuando haces el archivo $ echo "foobar" >>, la nueva línea ya está ahí. Si hace $ echo -n "foobar" >> archivo, no agregará la nueva línea al final de la línea, por lo que escribirá en la misma línea.
user897079
9
Esto no funciona cuando en un entorno sudo se escribe en un archivo del sistema. No puedes sudo >>. De lo contrario, funciona bien.
Dennis
4
Utilice el comando can you "sed" de la siguiente manera: ---------- sed -i "$ a some text" somefile.txt --------- -i: editar archivos en su lugar, $ buscar el final del archivo, a: append
Lunf
9
@Dennis Eso se debe a la forma en que se analiza la línea de comandos. 'sudo abc >> def' será 'sudo abc' y luego '>> def' la salida. Para sudo todo el bit 'abc >> def', debe hacer algo como esto: sudo sh -c "echo 'VNCSERVERS = \" 1: root \ "' >> / etc / sysconfig / configfile" (tenga en cuenta que las comillas dobles internas deben
evitarse