Come aggiungere righe alla fine del file su Linux


120

Voglio aggiungere le seguenti 2 righe ...

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

alla fine del file vncservers trovato nella directory .... / etc / sysconfig /

Come posso fare questo?

Grazie


2
Puoi usare vio emacs. Sai come usarli? Non sto cercando di essere sarcastico.

Risposte:


232

Il modo più semplice per reindirizzare l'output dell'eco tramite >>

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile

3
Solo per curiosità, come aggiungeresti del testo a un file senza creare una nuova riga?
Martin Hansen

11
Dipende dall'ultima riga aggiunta, non dal comando corrente. Quando esegui il file $ echo "foobar" >>, la nuova riga è già presente. Se esegui $ echo -n "foobar" >> file, non aggiungerai la nuova riga alla fine della riga, quindi scriverai nella stessa riga.
user897079

9
Questo non funziona quando in un ambiente sudo si scrive su un file di sistema. Non puoi fare sudo >>. Altrimenti, funziona bene.
Dennis

4
Usa il comando "sed" come segue: ---------- sed -i "$ a some text" somefile.txt --------- -i: modifica i file sul posto, $ trova la fine del file, a: append
Lunf

9
@Dennis Ciò è dovuto al modo in cui viene analizzata la riga di comando. 'sudo abc >> def' sarà 'sudo abc' e poi '>> def' l'output. Per sudo l'intero bit 'abc >> def', devi fare qualcosa del genere: sudo sh -c "echo 'VNCSERVERS = \" 1: root \ "' >> / etc / sysconfig / configfile" (nota che le virgolette interne devono essere
evitate
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.