0 votos

¿Cómo puedo hacer un alias de terminal que edite los archivos propiedad de Root en un editor de texto GUI?

¿Cómo puedo editar rápidamente los archivos propiedad de root como /etc/hosts y /etc/apache2/httpd.conf en un editor de texto como TextEdit que me permitiría hacer operaciones modernas de editor de texto, sin ejecutar el editor en modo sudo -b primero, o sin usar nano, vim y otros editores basados en terminales?

Desde que salió Lion, hacer

$sudo open -e /etc/hosts

ya no funciona: el archivo permanece bloqueado cuando TextEdit lo abre.

1voto

sudo y open proporcionan ya toda la funcionalidad para la edición de archivos de otros usuarios, por lo que sólo hay que ejecutar

SUDO_EDITOR="open -FWne" sudo -e /etc/hosts

para editar /etc/hosts . Asegúrese de dejar de Textedit al final ( Cmd - Q ) porque de lo contrario sudo no se dará cuenta de que ha terminado de editar.

Para facilitar la vida, añada lo siguiente a su .bashrc (o .alias si lo tiene)

alias sudoedit='SUDO_EDITOR="open -FWne" sudo -e'

0voto

Swader Puntos 113

Aquí está la solución paso a paso:

  1. Descargue la aplicación gratuita TextWrangler ( http://www.barebones.com/products/TextWrangler/ )

  2. Cree un archivo .profile en su carpeta de inicio si no existe

    $ touch ~/.profile
    $ open -e ~/.profile
  3. Edita el archivo y dale los siguientes alias, junto con cualquier otro que quieras añadir:

    alias edit_hosts='sudo open -a /Applications/TextWrangler.app/Contents/MacOS/TextWrangler /etc/hosts'
    alias edit_vhosts='sudo open -a /Applications/TextWrangler.app/Contents/MacOS/TextWrangler /etc/apache2/extra/httpd-vhosts.conf'
    alias edit_httpd='sudo open -a /Applications/TextWrangler.app/Contents/MacOS/TextWrangler /etc/apache2/httpd.conf'
    alias edit_alias='open -a /Applications/TextWrangler.app/Contents/MacOS/TextWrangler ~/.profile'
    
    alias reload_alias='. ~/.profile'
  4. Guarde el archivo y ejecútelo:

    $ reload_alias

Ahora cuando ejecute edit_hosts o los otros alias de edit_*, la aplicación TextWrangler debería abrir el archivo hosts. Todavía estará bloqueado, pero esta aplicación puede desbloquearlo una vez que empieces a editarlo, te lo pedirá. Ahora tienes un comando de una sola línea para editar los archivos propiedad de root que elijas.

También puedes ponerle un alias sólo a la primera parte de la ruta:

alias edit='sudo open -a /Applications/TextWrangler.app/Contents/MacOS/TextWrangler'

que le permitirá ejecutar comandos como

$ edit /etc/hosts

y seguir consiguiendo los mismos resultados.

Edición: la otra respuesta parece ser una mejor solución ya que no requiere la descarga e instalación de otra aplicación.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X