/ etc / profile vs ~ / .profile

13

Prowadzę Ubuntu 12.04.1 LTS. I nie mogę uzyskać informacji o kolejności / priorytecie ładowania plików profilu. Kiedy uruchamiam system i loguję się za pomocą GUI, który plik jest ładowany? I dlaczego? Co się stanie, jeśli uruchomisz powłokę logowania? Czy to będzie tak samo? W tej chwili nie mogę zrozumieć, dlaczego ~/.profilenie ładuje się, gdy system się uruchamia, ponieważ widzę, że powinien:

https://help.ubuntu.com/community/EnvironmentVariables

sunprophit
źródło
Jak testujesz, czy ~ / .profile jest załadowany?
Andrea Corbellini,
Zmienna środowiskowa jest aktualizowana w ~ / .profile
sunprophit,

Odpowiedzi:

3

Możesz zdefiniować zmienną w każdym pliku:

ORDER=${ORDER}+"/etc/profile"

odpowiednio

ORDER=${ORDER}+"~/.profile"

i wykonaj

echo ${ORDER}

aby zobaczyć, co było zaangażowane i w jakiej kolejności. Oczywiście nie powie ci to, czy przegapiłeś różne skrypty.

Więc jeśli zobaczysz wspomniane jedno źródło, przeczytaj ten skrypt, aby sprawdzić, czy jeden skrypt pozyskuje inne, i dołącz je również.

Przychodzą mi na myśl /etc/bash.bashrc i ~ / .bashrc i ~ / .bash_login, a także rzeczy z / etc / default.

nieznany użytkownik
źródło
Hm, $ ORDER jest pusty, co oznacza, że ​​żaden z nich nie jest załadowany?
sunprophit,
Nie jestem pewien, dlaczego $ ORDER był pusty, być może z powodu jakiegoś błędu składniowego. Nie wiem dużo o różnicach między doskokami i uderzeniami. Chociaż zamierzam zaznaczyć, że odpowiedź jest poprawna, ponieważ pomogło mi znaleźć problem.
sunprophit,
7

Wszystko zależy od tego, z którym użytkownikiem próbujesz się zalogować. Plik globalny /etc/profilejest ładowany dla każdego użytkownika , a ~/.profiletylko dla użytkownika.

~wskazuje katalog domowy bieżącego użytkownika. Jeśli więc umieścisz go /home/user-a/.profilei zalogujesz jako user-a, zarówno globalny, jak i plik specyficzny dla użytkownika zostaną załadowane (w tej kolejności), natomiast jeśli zalogujesz się user-bbez .profilepliku, załaduje tylko globalny.

gertvdijk
źródło
W profilu bieżącego użytkownika (~ / .profile) jest część, która powinna aktualizować zmienne środowiskowe. Mam na myśli, że nie ma go w innym profilu. To jest profil tego użytkownika. Ale próbowałem @user_unknown rozwiązania, aby przetestować ładowanie profili i wygląda na to, że żadne z nich nie jest załadowane.
sunprophit,
0

Oba powinny zostać załadowane, a ~ / .profile powinien zostać załadowany na końcu (co oznacza, że ​​ma priorytet).

dobey
źródło
Więc nie jestem pewien, co się dzieje. Jeśli uruchomię go jawnie w terminalu, ładuje się. Może wystąpić problem podczas logowania, w wyniku czego ~ / .profile nie ładuje się, ale w terminalu nie ma tych problemów. Czy mogę sprawdzić, czy system próbował go załadować?
sunprophit,
0

To moja wina. W moim ~ / .profile było [[some_test]] i działa dobrze w bash, ale myślę, że dash uruchamia niektóre komendy pre_session_creation / post_session_creation na początku sesji i dash nie wiem [[słowo kluczowe. Więc wszystko zostało załadowane, ale zatrzymało się na błędzie.

sunprophit
źródło