Nie mogę znaleźć .bash_profilew Ubuntu 14.04 w moim /home/userkatalogu. Użyłem ls -apolecenia, aby zobaczyć .bash_profile, ale nie ma takiego pliku.
Nie mogę znaleźć .bash_profilew Ubuntu 14.04 w moim /home/userkatalogu. Użyłem ls -apolecenia, aby zobaczyć .bash_profile, ale nie ma takiego pliku.
Odpowiedzi:
Używa Ubuntu ~/.profile.
możesz stworzyć swój .bash_profilew Ubuntu, ale wtedy .profilenie będzie czytany.
Jeśli czytamy treść .profile:
cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
Więc użyj ~/.profilezamiast~/.bash_profile
vim ~/.bashrcnastępnie. ~/.bashrc
Podczas wywoływania powłoki bash szuka plików konfiguracyjnych w następującej kolejności:
[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile
Po znalezieniu pierwszego, to przestaje patrząc na innych, więc jeśli nie ma .bash_profilew moim $HOMEbash nie będzie szukać .bash_logini .profilejuż.
Z tych trzech nazw plików, Ubuntu domyślnie używa .profilenazwy, na którą możesz zmienić, .bash_profilejeśli chcesz:
mv ~/.profile ~/.bash_profile
Teraz, jeśli otwieramy nową powłokę bash za pomocą bash -l, su - $USER, sudo -u $USER -ilub innych poleceń bash, który działa jako powłoka logowania, ~/.bash_profiledostanie pozyskiwane.
To, o czym mówiłem do tej pory, dotyczy tylko samego Basha, gdy logujesz się do systemu z GUI, menedżer wyświetlania jest odpowiedzialny za pozyskiwanie odpowiednich plików.
Ubuntu używa gdm3jako menedżera wyświetlania, jeśli spojrzymy na: /etc/gdm3/Xsessionmożemy zobaczyć, że żaden z plików nie zostanie pozyskany, z wyjątkiem .profile:
# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
if [ -f "$file" ]; then
source_with_error_check "$file"
fi
done
więc jeśli używasz GUI do logowania, zachowaj plik pod .profilenazwą, w przeciwnym razie możesz przegapić niektóre zmienne i ustawienia w swoich środowiskach.
Wydaje mi się, że lepszym rozwiązaniem jest utworzenie dowiązania symbolicznego do .profile:
ln -s ~/.profile ~/.bash_profile
Teraz Twoje dane żyją .profile, gdmniczego nie umkną, ładują .bash_profilesię w rzeczywistości .profile, a edycja każdego z nich daje ten sam wynik.
Jeśli nie masz, .profilepobierz jego kopię tutaj:
cp /etc/skel/.profile ~/.profile
lub
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
man bashna Ubuntu nadal opisuje, jak będzie najpierw szukać .bash_profile.
.bash_profile Najpierw szuka, nie może go znaleźć (ponieważ nie istnieje), a następnie .bash_loginnie może go znaleźć ponownie (ponieważ Ubuntu nie używa tych dwóch nazw), w końcu szuka .profilei tak, jest. Więc jeśli tworzysz .bash_profilew ~, to zastępujesz ubuntu ~/.profile, jest to domyślne zachowanie bash, nic tu nie zostało zmodyfikowane.
.bash_profile, nie jest on czytany. Właśnie zdałem sobie sprawę, że dzieje się tak, ponieważ Ubuntu nie używa już „Bash” jako powłoki logowania GUI. Zamiast tego używa „Dash”. Myślę, że jest to prawdą od około 18.04.
Oznacza to, że plik nie istnieje. Ale możesz utworzyć plik i wykonać bash/ źródła plik, jeśli bashjest wywoływany jako powłoka logowania. Dlatego za każdym razem logujesz się przez powłokę (na przykład przez ssh).
Jeśli chcesz, aby treść była wykonywana za każdym razem, gdy otwierasz terminal, powinieneś .bashrczamiast tego zmodyfikować plik.
/etc/skel/katalogu.
.bash_profilew Ubuntu brakuje komentarzy (i nie działa) w komentarzach do innych odpowiedzi.
Najlepsza odpowiedź do użycia ~/.profilezamiast ~/.bash_profilenie działała dla mnie.
Modyfikacja .bashrczadziałała
Właśnie:
vim ~/.bashrc
Uwaga: używam Ubuntu WSL.
~/.profilepo prostu nie ładuje się domyślnie w Ubuntu 18.04
Jeśli masz na myśli .bashrc, znajdziesz go w swoim katalogu domowym. Jeśli go nie ma, możesz skopiować go z folderu / etc / skel do folderu domowego.
Jeśli potrzebujesz więcej informacji na ten temat, odwiedź stronę Stefan Lippens.
~/.profile.