Qual è la differenza tra .bash_profile e .bashrc?

178

Per creare un alias per il terminale in OS X, puoi inserire gli alias in .bash_profile o .bashrc . Qual è la differenza tra i due e perché dovrei scegliere di mettere alias in uno e non l'altro?

    
posta daviesgeek 10.05.2012 - 23:39
fonte

3 risposte

184

.bash_profile viene eseguito per le shell di login, mentre .bashrc viene eseguito per le shell interattive non di login.

Quando effettui il login (digita username e password) tramite console, seduto alla macchina, o in remoto tramite ssh: .bash_profile viene eseguito per configurare la shell prima del prompt dei comandi iniziale.

Tuttavia, se hai già effettuato l'accesso al tuo computer e aperto una nuova finestra di terminale (xterm), allora .bashrc viene eseguito prima del prompt dei comandi della finestra. .bashrc viene eseguito anche quando si avvia una nuova istanza di bash digitando /bin/bash in un terminale.

Su OS X, Terminal esegue di default una shell di login ogni volta, quindi questo è leggermente diverso dalla maggior parte degli altri sistemi, ma puoi configurarlo nelle preferenze.

    
risposta data 10.05.2012 - 23:46
fonte
34

X11 guarderà il tuo .bashrc mentre un terminale "normale" guarderà a .bash_profile

Tuttavia, se aggiungi quanto segue al tuo .bash_profile , puoi quindi spostare tutto nel tuo file .bashrc in modo da consolidare tutto in un'unica posizione anziché in due:

if [ -f $HOME/.bashrc ]; then
        source $HOME/.bashrc
fi
    
risposta data 11.05.2012 - 00:53
fonte
15

Per macOS, il codice da mettere in .bash_profile per consolidare tutto in .bashrc è il seguente:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Questo è più specifico per l'utente del terminale Mac.

    
risposta data 03.02.2017 - 04:00
fonte

Leggi altre domande sui tag