W twoim przypadku shjest link do, bashale, jak wyjaśniono w man bash:
Jeśli bash jest wywoływany z nazwą sh, próbuje naśladować zachowanie startowe historycznych wersji sh tak dokładnie, jak to możliwe, przy jednoczesnym zachowaniu zgodności ze standardem POSIX. [...] Przywoływany jako interaktywna powłoka o nazwie sh, bash szuka zmiennej ENV, rozszerza jej wartość, jeśli jest zdefiniowana, i używa rozszerzonej wartości jako nazwy pliku do odczytu i wykonania. Ponieważ powłoka wywoływana jako sh nie próbuje czytać i wykonywać poleceń z innych plików startowych , opcja --rcfile nie ma wpływu.
i
--norc Nie czytaj i nie uruchamiaj ogólnosystemowego pliku inicjującego /etc/bash.bashrc i osobistego pliku inicjującego ~ / .bashrc, jeśli powłoka jest interaktywna. Ta opcja jest domyślnie włączona, jeśli powłoka jest wywoływana jako sh.
Ponieważ domyślną powłoką jest sh, .bashrcnie jest czytana. Po prostu ustaw domyślną powłokę na bash chsh -s /bin/bash.
Dziękuję Ci. Uznałem, że to nie ma znaczenia, ponieważ /bin/shwskazałem /bin/bash. Podejrzewam, że ten problem wynikał z nieprzypisania powłoki jawnie /bin/bashpodczas tworzenia konta użytkownika.
pośpiesz
Również Debian / Ubuntu przełączył się dashna /bin/shw ramach wysiłków zmierzających do skrócenia czasu uruchamiania. Było to zabawne, gdy moi użytkownicy zaczęli pytać, dlaczego ich powłoka działa inaczej.
kurtm 10.10.2013
18
W .bash_profile upewnij się, że masz:
# .bash_profile# If .bash_profile exists, bash doesn't read .profileif[[-f ~/.profile ]];then.~/.profile
fi# If the shell is interactive and .bashrc exists, get the aliases and functionsif[[ $-==*i*&&-f ~/.bashrc ]];then.~/.bashrc
fi
/bin/sh
wskazałem/bin/bash
. Podejrzewam, że ten problem wynikał z nieprzypisania powłoki jawnie/bin/bash
podczas tworzenia konta użytkownika.dash
na/bin/sh
w ramach wysiłków zmierzających do skrócenia czasu uruchamiania. Było to zabawne, gdy moi użytkownicy zaczęli pytać, dlaczego ich powłoka działa inaczej.W .bash_profile upewnij się, że masz:
źródło
bash
. Niezły chwyt, przegapiłem to.bash
obok innej powłoki, takiej jak ta,ksh93
która.profile
domyślnie używa .