När ett Bash-skal startats vid inloggningen,
innan första prompten skrivs ut, läser Bash
in och exekverar de kommandon som finns i filen
/etc/profile om den existerar.$ cat /etc/profile
ulimit -c unlimited
umask 022
source /etc/environment
$Den första raden möjliggör för
program som ''kraschar'' att lämna
minnesutskrifter efter sig i filer med namn core
för att man ska kunna ta reda på vad som gått snett.
Den andra raden specificerar vilken filskyddskod som ska
tilldelas nya filer och kataloger.
Den sista raden använder Bash-kommandot source filnamn,
som gör att filen filnamn läses in och
exekveras. I filen /etc/environment definieras ett
antal miljövariabler:$ cat /etc/environment
PATH='/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:.'
MANPATH='/usr/man:/usr/X11R6/man:/usr/local/man'
PS1='\u@\h \w\$ '
export PATH PS1 MANPATH
$Dessa variabeldefinitioner skulle kunna göras i
/etc/profile, men ofta är det praktiskt att på detta sätt
samla dem i en separat fil,
så att definitionerna kan användas också på andra ställen än i
Bash - tex i startfilen för fönstersystemet X.
Filen /etc/profile skapas av systemadministratören, men
exekveras för alla användare på datorn. Varje användare kan också
ha en egen startfil för Bash, .bash_profile
(om den inte existerar, så försöker Bash med
.bash_login eller .profile i stället).
Den privata startfilen körs efter den gemensamma, så varje
användare får själv sista ordet i fråga om tex värdena
på miljövariabler.$ cat .bash_profile
umask 002
export PS1='\$ '
export LC_MESSAGES=sv_SE
export LC_TIME=sv_SE
source .bashrc
$ cat .bashrc
alias ls='ls -NF --color'
$I min privata startfil för Bash ändrar jag värdena på
umask och PS1 samt sätter lokalerna
LC_MESSAGES och LC_TIME till sv_SE.
Sedan körs kommandona i filen
.bashrc - i detta fall bara ett enda kommando som ger ett
alias för ls.
(Ett lämpligt tillägg till filen är kommandot
PATH=/home/göran/bin:$PATH.)
Om man själv startar ett nytt Bash-skal med kommandot bash, så är detta inte vad Bash kallar för ett login-skal, och då exekveras inte /etc/profile och .bash_profile. Skälet till detta är att man i dessa filer främst gör grundläggande inställningar av miljövariablerna. Dels är det onödigt att köra dem igen eftersom miljön ändå ärvs av det nya skal man sstartar, och dels har man kanske ändrat några miljövariabler och vill inte att de ska ändras tillbaka. För skal som inte är login-skal körs .bashrc i stället för /etc/profile och .bash_profile. Då alias (se avsnitt 6.5) inte ärvs genom miljön kan det vara lämpligt att definiera dem i .bashrc. Ofta vill man att .bashrc ska köras också för login-skal, men då måste man själv se till att så sker genom att ha med raden source .bashrc i sin .bash_profile.