Więc jestem całkiem nowy w Linuksie i niedawno zainstalowałem Fedorę 19 na moim netbooku. Chcę głębiej zrozumieć Linuksa i CLI, więc teraz czytam Learn Linux: The Hard Way .
W ćwiczeniu 3 autor wydaje następujące polecenia:
- ls -al
- cat .profile
Staram się postępować zgodnie z tymi instrukcjami, ale bezskutecznie. W moim katalogu nazw użytkowników nie ma pliku .profile, co widać z ls -al. Z tego, czego się nauczyłem, pliki .bash_profile i .profile są praktycznie takie same. Jedyną różnicą, którą wyciągnąłem z moich badań, jest to, że .bash_profile jest sprawdzany jako pierwszy.
Nie rozumiem, dlaczego istnieje wiele plików dla tej samej funkcji w Linuksie, dlaczego autor używa .profile, a nie .bash_profile (jeśli dobrze rozumiem .profile nie zostanie odczytany, gdy system najpierw znajdzie .bash_profile) i dlaczego nie mam pliku .profile w moim systemie?
Odpowiedzi:
Dane
.profile
pochodzą z oryginalnej powłoki Bourne'a znanej jakosh
. Ponieważ powłoka GNUbash
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, żesh
wprowadzane są tylko polecenia.profile
Na przykład
alias
jest poprawnym wbudowanym poleceniem,bash
ale nieznanymsh
. 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ś takiegoDlaczego 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.źródło
alias
jest wymagana przez POSIX, więc nie ma wielu wsh
pobliżu, którzy o tym nie wiedzą.