V .bash_profile se ujistěte, že máte následující:
# .bash_profile
# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
. ~/.profile
fi
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
Proč by to zdroj? Nemáte spuštěno true bash
:
$ echo $SHELL
/bin/sh
Ve většině moderních systémů sh
je symbolický odkaz na základní shell. Například na mém Debianu:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 1 2012 /bin/sh -> dash
Ve vašem případě sh
je odkaz na bash
ale jak je vysvětleno v man bash
:
Pokud je bash vyvolán s názvem sh, snaží se co nejvěrněji napodobit chování při spuštění historických verzí sh, přičemž je také v souladu se standardem POSIX. [...] Když je bash vyvolán jako interaktivní shell se jménem sh, hledá proměnnou ENV, rozšíří její hodnotu, pokud je definována, a použije expandovanou hodnotu jako název souboru ke čtení a spuštění. Protože shell vyvolaný jako sh se nepokouší číst a spouštět příkazy z jiných spouštěcích souborů , volba --rcfile nemá žádný účinek.
a
--norc
Nečtěte a nespouštějte celosystémový inicializační soubor/etc/bash.bashrc a osobní inicializační soubor ~/.bashrcif, pokud je shell interaktivní. Tato možnost je ve výchozím nastavení zapnutá, pokud je shell vyvolán jako sh.
Takže, protože váš výchozí shell je sh
, .bashrc
není přečteno. Stačí nastavit váš výchozí shell na bash pomocí chsh -s /bin/bash
.