¿Cómo hago un alias de terminal que edite los archivos de raíz en un editor de texto GUI?

0

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

Desde que salió León, haciendo

$sudo open -e /etc/hosts

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

    
pregunta Swader 17.06.2012 - 17:31

2 respuestas

1

sudo y open proporcionan todas las funcionalidades ya existentes para editar archivos de otros usuarios, por lo que solo puede ejecutar

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

para editar /etc/hosts . Asegúrate de salir enviar un mensaje de texto al final ( Cmd - Q ) porque, de lo contrario, sudo no notará que has terminado con la edición .

Para facilitarte las cosas, agrega lo siguiente a tu .bashrc (o .alias si lo tienes)

alias sudoedit='SUDO_EDITOR="open -FWne" sudo -e'
    
respondido por el nohillside 17.06.2012 - 17:42
0

Aquí hay una solución paso a paso:

  1. Descargue la aplicación gratuita TextWrangler ( enlace )

  2. Crea un archivo .profile en tu carpeta de inicio si no existe

    $ touch ~/.profile
    $ open -e ~/.profile
    
  3. Edite el archivo y asígnele los siguientes alias, junto con cualquier otro que desee agregar:

    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. Guarda el archivo y ejecuta:

    $ reload_alias
    

Ahora, cuando ejecute edit_hosts u otros alias edit_ *, la aplicación TextWrangler debería abrir el archivo hosts. Seguirá bloqueado, pero esta aplicación puede desbloquearlo una vez que comience la edición, se lo indicará. Ahora tiene un comando de una línea para editar los archivos de propiedad raíz de su elección.

También puede crear alias solo la primera parte de la ruta:

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

que te permitirá ejecutar comandos como

$ edit /etc/hosts

y aún así lograr los mismos resultados.

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

    
respondido por el Swader 17.06.2012 - 17:31

Lea otras preguntas en las etiquetas