Perché devo scaricare .bashrc ogni volta che apro il terminale per far funzionare gli alias? [duplicare]

20

Ho aggiunto questa riga al mio file ~/.bashrc .

alias myserver='ssh [email protected]'

Tuttavia, quando apro il terminale ed eseguo myserver , terminal si lamenta che

-bash: myserver: command not found

Quando provengo il mio file .bashrc, comunque, ( . .bashrc ), l'alias funziona.

Tuttavia, non desidero generare il file ogni volta che apro il terminale affinché l'alias funzioni. Come posso farlo?

    
posta David Faux 04.03.2012 - 20:31
fonte

2 risposte

18

In breve, stai mettendo i tuoi alias nel file sbagliato .bashrc, ecco perché devi mantenere in esecuzione il sorgente per far funzionare gli alias in ogni nuova istanza del terminale di accesso.

By default, Terminal starts the shell via /usr/bin/login, which makes the shell a login shell. On every platform (not just Mac OS X) bash does not use .bashrc for login shells (only /etc/profile and the first of .bash_profile, .bash_login, .profile that exists and is readable). This is why “put source ~/.bashrc in your .bash_profile” is standard advice. – Chris Johnsen

Per maggiori informazioni consulta la pagina man di bash. Quindi guarda sotto la sezione INVOCATION.

man bash
    
risposta data 06.03.2012 - 13:34
fonte
10

Puoi sempre mettere

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

nel file ~/.profile o ~/.bash_profile su mac, penso.

Oooor, puoi semplicemente mettere i tuoi contenuti in .profile o .bash_profile .

    
risposta data 23.09.2014 - 22:56
fonte

Leggi altre domande sui tag