.bash_profile vs .bashrc

Quando si lavora con un Sistema Operativo come Linux, Unix o Mac OS X, è molto comodo poter personalizzare la bash con i comandi o le impostazioni che siamo abituati ad usare. Mi sono imbattuto in un piccolo dilemma stasera, mentre settavo la mia variabile EDITOR ( in modo da usare nano al posto di vim ).
Quale file modificare: .bash_profile o .bashrc ? Quale è la differenza tra i due file? e perche’ vengono utilizzati entrambi se hanno lo stesso scopo?

Consultanto la man page di bash sono riuscito a risolvere questo piccolo dilemma.

 

Quando usare .bash_profile ?

Ogni volta che si avvia una intercative shell vengono eseguiti i comandi che si trovano all’interno dei seguenti file:

  • 1. /etc/profile
  • 2. ~/.bash.profile
  • 3. ~/.bash_login
  • 4. ~/.profile

Per cui ogni volta che eseguiamo il login ( username e password ) da console, utilizzando per esempio ssh, viene eseguito .bash_profile

 

Quando usare .bashrc ?

Se siamo gia’ loggati all’interno della shell ed apriamo un nuovo terminale di console ( Ex. xterm ) all’interno di Gnome o KDE, allora vengono eseguite le istruzioni presenti in .bashrc.
Lo stesso accade se da console digitiamo nel terminal


/bin/bash

 

Perche’ questa  distinzione?

Tale distinzione e’ nata dalla necessita’ di poter visionare parametri di diagnostica ogni volta che accediamo ad una macchina ( carico della CPU, uso della memoria ecc…), in questo caso viene utilizzato .bash_profile.

Invece .bashrc viene usato per le impostazioni che vogliamo caricare ogni volta che viene lanciato un nuovo terminale.

 

 

In Mac OS X come funziona?

Mac OS X ha una filosia tutta sua… come la maggior parte delle volte 😀

Di defualt il Sistema Operativo lancia una nuova schermata di login chiamando il file .bash_profile al posto di .bashrc. Per tale motivo nei Sistemi Apple bisognera’ sempre modificare .bash_profile per caricare correttamente le proprie impostazioni, anche nel caso in cui non esegiuamo una non-login shell.

 

Suggerimento

La maggior parte delle volte e’ scocciante avere gli stessi comandi su entrambi i file, per tale motivo vi posto la mia soluzione “elegante” per risolvere il dilemma 😀


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

In questo modo ad ogni login, in automatico la vostra macchina eseguira’ il codice presente anche in .bashrc

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.