Przez lata korzystałem z wielu różnych systemów opartych na * nix i wydaje się, że każdy rodzaj Bash, którego używam, ma inny algorytm decydowania, które skrypty startowe mają być uruchomione. Na potrzeby zadań takich jak ustawianie zmiennych środowiskowych i aliasów oraz drukowanie komunikatów startowych (np. MOTD), który skrypt startowy jest do tego odpowiednim miejscem?
Jaka jest różnica między oddanie rzeczy .bashrc
, .bash_profile
i .environment
? Ja również widziałem inne pliki takie jak .login
, .bash_login
i .profile
; czy są one kiedykolwiek istotne? Jakie są różnice w tym, które z nich są uruchamiane podczas fizycznego logowania, zdalnego logowania przez ssh i otwierania nowego okna terminala? Czy są jakieś znaczące różnice między platformami (w tym Mac OS X (i jego Terminal.app) i Cygwin Bash)?
źródło
/etc/bashrc
aby wypełnić odpowiedź?Klasycznie
~/.profile
jest używany przez Bourne Shell i prawdopodobnie jest obsługiwany przez Bash jako starsza miara. Znowu~/.login
i~/.cshrc
były używane przez C Shell - nie jestem pewien, czy Bash w ogóle ich używa.Zostanie
~/.bash_profile
użyty raz, podczas logowania.~/.bashrc
Skrypt jest czytać każdym razem, gdy powłoka jest uruchomiony. Jest to analogiczne do/.cshrc
C Shell.Jedną z konsekwencji jest to, że rzeczy w programie
~/.bashrc
powinny być tak lekkie (minimalne), jak to tylko możliwe, aby zmniejszyć narzut podczas uruchamiania powłoki niezalogowanej.Uważam, że
~/.environment
plik jest plikiem zgodności dla Korn Shell.źródło
Znalazłem informacje o .bashrc i .bash_profile tutaj, aby podsumować:
Również nie jest kompletnym follow up na każdy z plików konfiguracyjnych tutaj
Prawdopodobnie są one nawet zależne od dystrybucji, nie wszystkie dystrybucje decydują się na posiadanie każdej konfiguracji, a niektóre mają nawet więcej. Ale jeśli mają tę samą nazwę, zwykle zawierają tę samą treść.
źródło
Według Josha Staigera , Terminal.app w Mac OS X tak naprawdę uruchamia powłokę logowania zamiast powłoki niezalogowanej domyślnie dla każdego nowego okna terminala, wywołując .bash_profile zamiast .bashrc.
On poleca:
źródło
Dobrym miejscem do obejrzenia jest strona podręcznika użytkownika bash. Oto wersja online. Poszukaj sekcji „INVOCATION”.
źródło
Używałem dystrybucji z rodziny Debian, które wydają się wykonywać
.profile
, ale nie.bash_profile
, podczas gdy pochodne RHEL wykonują się.bash_profile
wcześniej.profile
.Wydaje się, że to bałagan, gdy musisz skonfigurować zmienne środowiskowe do pracy w dowolnym systemie operacyjnym Linux.
źródło