Dane .profile
pochodzą z oryginalnej powłoki Bourne'a znanej jako sh
. Ponieważ powłoka GNU bash
jest (w zależności od opcji) nadzbiorem powłoki Bourne'a, obie powłoki mogą korzystać z tego samego pliku startowego. To znaczy, pod warunkiem, że sh
wprowadzane są tylko polecenia.profile
Na przykład alias
jest poprawnym wbudowanym poleceniem, bash
ale nieznanym sh
. Dlatego gdybyś miał tylko .profile
w swoim katalogu domowym i umieścił alias
w nim oświadczenie, sh
narzekałby. Tak więc istnieje plik specyficzny dla bash, który ma polecenia inicjujące powłokę, które bash przeczyta wtedy i tylko wtedy, gdy nie ma .profile
pliku.
W rzeczywistości jest to trochę nadmierne uproszczenie w niektórych instalacjach i nie znam Fedory. Pod bash /etc/profile
jest odczytywany przez powłokę przed plikami w twoim katalogu domowym. Jeśli istnieje systemowy skrypt inicjalizacyjny, często mówi coś takiego
if there is a $HOME/.profile:
source it
elseif bash is my shell and there is a $HOME/.bash_profile:
source that
Dlaczego tak jest Próba kompatybilności przez dekady dialektów powłokowych. Dlaczego samouczek jest napisany w ten sposób? Skorupa Bourne'a nie jest już często używana, a niektórzy nawet nie wiedzą, że istnieje inna skorupa podobna do Bourne'a niż bash. Nawet jeśli (ograniczona) składnia Bourne'a jest używana dla większej kompatybilności między platformami, często jest uruchamiana przez dash
bash lub w trybie zgodności z POSIX. Rzeczywiście, rzeczywiste źródło powłoki Bourne'a jest prawdopodobnie chronionym prawem autorskim składnikiem Unix System V, który wydaje się być teraz własnością Novella, ale nie mam pojęcia, co oni z tym robią.
Dla początkującego użytkownika użyj jednego $HOME/.profile
lub dwóch, $HOME/.bash_profile
ale nie będziesz miał nic przeciwko . Ponieważ już .bash_profile
z tym pracujesz, ponieważ może zawierać elementy specyficzne dla systemu, które są potrzebne twojej instalacji.