Come faccio a creare un alias terminale che modifica i file di root in un editor di testo della GUI?

0

Come posso modificare rapidamente i file di proprietà di root come / etc / hosts e /etc/apache2/httpd.conf in un editor di testo come TextEdit che mi permetterebbe di eseguire operazioni di editor di testo moderno, senza eseguire effettivamente l'editor in sudo - prima la modalità b, o senza usare nano, vim e altri editor basati su terminali?

Da quando Lion è uscito, facendo

$sudo open -e /etc/hosts

non funziona più: il file rimane bloccato quando TextEdit lo apre.

    
posta Swader 17.06.2012 - 17:31
fonte

2 risposte

1

sudo e open forniscono già tutte le funzionalità per la modifica di file di altri utenti, quindi puoi solo eseguire

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

per modificare /etc/hosts . Assicurati di esci Textedit alla fine ( Cmd - Q ) perché altrimenti sudo non noterà che hai finito con la modifica .

Per semplificarti la vita aggiungi quanto segue al tuo .bashrc (o .alias se ce l'hai)

alias sudoedit='SUDO_EDITOR="open -FWne" sudo -e'
    
risposta data 17.06.2012 - 17:42
fonte
0

Ecco una soluzione passo passo:

  1. Scarica l'app TextWrangler gratuita ( link )

  2. Crea un file .profile nella tua cartella Inizio se non esiste

    $ touch ~/.profile
    $ open -e ~/.profile
    
  3. Modifica il file e assegnagli i seguenti alias, insieme a tutti gli altri che desideri aggiungere:

    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. Salva il file ed esegui:

    $ reload_alias
    

Ora quando esegui edit_hosts o gli altri alias edit_ *, l'app TextWrangler dovrebbe aprire il file hosts. Sarà ancora bloccato, ma questa applicazione può sbloccarlo una volta che inizi a modificare, ti verrà richiesto. Ora hai un comando a riga singola per modificare i file di proprietà di tua scelta.

Puoi anche alias solo la prima parte del percorso:

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

che ti consente di eseguire comandi come

$ edit /etc/hosts

e ottieni comunque gli stessi risultati.

Modifica: altra risposta sembra essere una soluzione migliore in quanto non richiede il download e l'installazione di un'altra applicazione.

    
risposta data 17.06.2012 - 17:31
fonte

Leggi altre domande sui tag