Com sed e eco são 2 comandos no terminal. Eu não estou usando vi (editor) Eu prefiro o mais simples nano (editor) mas agora vamos usar sed (editor de fluxo) e echo (line displayer) combinado com tee (leitor) através de um pipe | .
sed 's/^/#/g' -i ~/.vnc/xstartup
echo 'gnome-session &' | tee -a ~/.vnc/xstartup
Se o arquivo for protegido por administrador (precisa de privilégios), então
sudo sed 's/^/#/g' -i ~/.vnc/xstartup
echo 'gnome-session &' |sudo tee -a ~/.vnc/xstartup
Obrigado