
Om du använder Linux eller Unix-baserade system med Bash har du säkert hört talas om konfigurationsfilerna .bashrc
och .bash_profile
. De ser snarlika ut – men spelar helt olika roller beroende på hur skalet startas.
Att förstå dessa två filer är nyckeln till en stabil och anpassad terminalmiljö. Här förklarar vi vad som är vad, hur de används och hur du sätter upp din Bash-konfiguration på bästa sätt.
Vad är skillnaden?
.bash_profile körs när du loggar in – till exempel via SSH eller en textkonsol. Den används för att sätta upp din miljö vid inloggning:
- miljövariabler
- sökvägar (PATH)
- startkommandon
.bashrc körs varje gång du öppnar ett nytt terminalfönster eller manuellt startar Bash. Den är tänkt för:
- alias
- promptinställningar
- funktioner
- interaktiva verktyg
Exempel: när används vilken?
- Loggar du in via SSH? →
.bash_profile
- Öppnar du GNOME Terminal? →
.bashrc
- Kör du
bash
i en terminal? →.bashrc
- Startar du datorn och loggar in grafiskt? → det beror på miljön (mer om det nedan)
Bästa praxis: låt .bash_profile köra .bashrc
För att slippa duplicera kod och få samma konfiguration oavsett hur Bash startas, kan du lägga till detta i din .bash_profile
:
if [ -r ~/.bashrc ]; then
. ~/.bashrc
fi
Vill du att .profile
också laddas (t.ex. för grafiska inloggningar), lägg till:
if [ -r ~/.profile ]; then
. ~/.profile
fi
För extra kontroll, t.ex. att bara ladda .bashrc
i interaktiva skal:
case "$-" in
*i*) [ -r ~/.bashrc ] && . ~/.bashrc ;;
esac
Vad är /etc/bash.bashrc?
Det är en systemomfattande fil som Bash kör för alla användare. Här kan administratörer sätta gemensamma sökvägar, alias eller andra inställningar som ska gälla oavsett användarkonto.
Använd den om du vill att alla användare ska ha t.ex. samma PATH
eller standardalias som ll
.
Grafiska miljöer: ett specialfall
När du loggar in via ett skrivbord som GNOME, KDE eller Xfce kan det hända att .bash_profile
eller .bashrc
inte körs automatiskt. I vissa fall laddas .profile
, i andra inte alls.
Det gör att miljövariabler du sätter i .bash_profile
kanske inte gäller i t.ex. terminalen inne i din skrivbordsmiljö – om inte .bashrc
eller .profile
laddas korrekt.
Lösning: testa i din miljö och flytta miljövariabler till .profile
eller .pam_environment
vid behov.
Sammanfattning
Fil | När används den? | Vad bör ligga där? |
---|---|---|
.bash_profile | Vid inloggning (SSH, tty) | Miljövariabler, startkommandon |
.bashrc | I interaktiva terminalfönster | Alias, funktioner, prompt |
/etc/bash.bashrc | För alla användare (interaktivt) | Systemövergripande inställningar |
Bonus: testa själv
Vill du se exakt vad som körs? Lägg in något så enkelt som:
echo "Kör .bashrc" >> ~/bashlog.txt
i respektive fil, logga in på olika sätt, och kolla vad som skrivs ut i bashlog.txt
.
Slutsats
Genom att förstå när .bashrc
och .bash_profile
används kan du skapa en smidig och konsekvent terminalmiljö – både för dig själv och andra användare.
Exempelscript
~/.bash_profile
(för inloggningssessioner)
# ~/.bash_profile – Körs vid inloggning (t.ex. via SSH eller tty)
# Ladda ~/.profile om den finns (vanlig i grafiska miljöer)
if [ -r ~/.profile ]; then
. ~/.profile
fi
# Om skalet är interaktivt (har en prompt), ladda .bashrc
# Det ger dig alias, färgade listningar m.m. även vid inloggning
case "$-" in
*i*)
if [ -r ~/.bashrc ]; then
. ~/.bashrc
fi
;;
esac
# Lägg till ~/bin i PATH om det inte redan finns
# Praktiskt om du har egna skript i hemkatalogen
if [[ ":$PATH:" != *":$HOME/bin:"* ]]; then
export PATH="$HOME/bin:$PATH"
fi
~/.bashrc
(för alla interaktiva terminalsessioner)
# ~/.bashrc – Körs i alla interaktiva terminalsessioner
# Anpassa prompten (PS1)
# Visar användarnamn, värdnamn och aktuell katalog i grönt
PS1='\[\e[1;32m\]\u@\h:\w\$\[\e[0m\] '
# Alias – smidiga genvägar till vanliga kommandon
alias ll='ls -lah --color=auto' # Färgkodad lång listning
alias grep='grep --color=auto' # Färg i grep-resultat
alias cls='clear' # Rensa terminalen
alias ..='cd ..' # Gå upp en nivå
alias ...='cd ../..' # Gå upp två nivåer
# Ersätt 'rm' med säkrare variant – flytta till papperskorg
# Kräver att 'trash-cli' är installerat
alias rm='trash-put'
# Egen funktion för att uppdatera systemet snabbt
# (Gäller Debian/Ubuntu-baserade system – byt vid behov)
update-system() {
echo "Uppdaterar systemet..."
sudo apt update && sudo apt upgrade -y
}
# Lägg till lokal katalog (~/.local/bin) i PATH
# Används ofta för Python-paket installerade med pip
if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
export PATH="$HOME/.local/bin:$PATH"
fi
# Miljövariabler
export EDITOR=nano # Standardredigerare = nano
export HISTCONTROL=ignoredups:erasedups # Ta bort upprepade kommandon i historik
export HISTSIZE=10000 # Antal rader som sparas i RAM
export HISTFILESIZE=20000
Tips för användning:
- Lägg filerna i din hemkatalog:
~/.bash_profile
och~/.bashrc
- Kör
source ~/.bashrc
för att läsa in ändringar direkt - Installera
trash-cli
medsudo apt install trash-cli
om du vill använda ”säker rm” - Anpassa
update-system
om du använder t.ex. Arch (sudo pacman -Syu
) eller Fedora (sudo dnf upgrade
)