Forskellen mellem .bashrc og .bash_profile: Hvilken skal du bruge?

Hvad er forskellen mellem .bashrc og .bash_profile, og hvilken bør anvendes?

Forskellen mellem .bashrc og .bash_profile er, at .bashrc indlæses ved hver ny ikke-login shell, mens .bash_profile indlæses ved login shell; brug .bashrc til aliaser og shell-specifikke funktioner og .bash_profile til miljøvariabler ved login.

Forskellen mellem .bashrc og .bash_profile, og hvilken bør anvendes

Når man arbejder med Bash shell på Unix-baserede systemer, støder man ofte på konfigurationsfilerne .bashrc og .bash_profile. Selvom de begge bruges til at konfigurere brugerens shell-miljø, er der nogle væsentlige forskelle mellem dem:

  • .bashrc:
    • Indlæses hver gang en ny ikke-login shell startes.
    • Typisk brugt til at definere aliaser, funktioner og shell-specifikke indstillinger.
    • Eksekveres automatisk, når en terminal emulator åbnes.
  • .bash_profile:
    • Indlæses kun én gang, når en login shell startes.
    • Bruges ofte til at indstille miljøvariabler som PATH, USER, og HOME.
    • Eksekveres, når brugeren logger ind via en konsol eller en fjernforbindelse som SSH.

Hvilken bør anvendes?

Valget mellem .bashrc og .bash_profile afhænger af, hvad du ønsker at opnå:

  • Brug .bashrc til:
    • Aliaser og shell-specifikke funktioner, der skal være tilgængelige i alle terminaler.
    • Indstillinger, der skal anvendes hver gang en ny terminal åbnes.
  • Brug .bash_profile til:
    • Miljøvariabler, der skal sættes én gang ved login.
    • Indstillinger, der kun skal anvendes ved login-sessioner.

For at sikre, at indstillingerne i .bashrc også anvendes i login shells, kan du inkludere følgende linje i din .bash_profile:

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

Dette vil sikre, at indstillingerne i .bashrc også anvendes, når en login shell startes.