next up previous contents
Nästa: 6.5 Omskrivningar Upp: 6. Skalet Bash Förra: 6.3 Miljön

  
6.4 Startfiler

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.


next up previous contents
Nästa: 6.5 Omskrivningar Upp: 6. Skalet Bash Förra: 6.3 Miljön
Goran Andersson
1999-03-08