Jump to content

.bash_profile, zmienne i aliasy


Kazoo
 Share

Recommended Posts

Cześć.

Piszę do Was z prośbą o pomoc.

Postanowiłem na stare lata uczyć się Linuxa. Kompletnie nie znając środowiska, wykupiłem proste , podstawowe kursy, które przerabiam po kolei.

Natknąłem na pewien problem.

Na jednej z lekcji ww. kursu tworzyliśmy nowe aliasy i zmienne, które po wprowadzeniu do pliku .bash_profile powinny się odpalać.

Okazuje się, że owe aliasy nie "zapisują się" przy przelogowaniu.

korzystając z komendy echo $parament dostaje wynik pusty. Rozumiem, że moja główna sesja nie korzysta z pliku .bash_profile  ? 

A może korzysta z niego w innym miejscu ? 

Próbowałem wyeksportować zapisane ścieżki, aliasy lub paramenty ale nadal otrzymuję puste wyniki.

W jaki sposób rozgryźć ten temat  ? 

Z góry dziękuję i pozdrawiam.

Adam

Link to comment
Share on other sites

Ja tylko dodam, że o ile nie zamierzasz tworzyć jakiejś customowej i rozbudowanej konfiguracji to .bashrc jest najlepszym miejscem do trzymania zmiennych, aliasów i funkcji. Ale nic nie stoi na przeszkodzie, żeby trzymać je w dowolnym innym pliku – wystarczy w .bashrc dopisać odpowiednią funkcję ładującą ten plik, coś takiego:

if [ -f /ścieżka/do/pliku ]; then
    . /ścieżka/do/pliku
fi

No i nie ma potrzeby przelogowywania się po każdej zmianie (nie tylko w .bashrc, ale w dowolnym pliku), wystarczy zaimportować plik:

source ~/.bashrc

 

Link to comment
Share on other sites

Hmm. 

W kursie, w którym pracujemy na Fedorze (znaczy my. Zwykły kurs z Udemy), prowadzący wprowadza zmiany w .bash_profile. Jeżeli zmiany wprowadza się w .bashrc to skąd ta różnica ? Czym jest .bash_profile  ?

Wiecie, póki co idę ślepo krok po kroku i gdy występują problemy, zaczynam coś dłubać.

Nie robię jakiś wysublimowanych aliasów. 

4 godziny temu, SeeM napisał:

Przykładowa linijka do .bashrc:

alias 'dir'='ls --group-directories-first -alhv'

Też jestem ciekawy jakie aliasy sobie tworzysz. Mam ich u siebie całkiem sporo.

Nie wrzucam nic ciekawego. Proste dwie linijki by nauczyć się jak to działa.

1 godzinę temu, tomcio napisał:

Ja tylko dodam, że o ile nie zamierzasz tworzyć jakiejś customowej i rozbudowanej konfiguracji to .bashrc jest najlepszym miejscem do trzymania zmiennych, aliasów i funkcji. Ale nic nie stoi na przeszkodzie, żeby trzymać je w dowolnym innym pliku – wystarczy w .bashrc dopisać odpowiednią funkcję ładującą ten plik, coś takiego:

if [ -f /ścieżka/do/pliku ]; then
    . /ścieżka/do/pliku
fi

No i nie ma potrzeby przelogowywania się po każdej zmianie (nie tylko w .bashrc, ale w dowolnym pliku), wystarczy zaimportować plik:

source ~/.bashrc

 

Zauważyłem, żę ta komenda również widnieje w .bash_profile jednak funkcje nie działają

Wrzucam Was screena z pliku.bash_profile edytowany pod vim.

 

Screenshot from 2021-06-22 16-32-07.png

Link to comment
Share on other sites

W skrócie  .bash_profile jest wczytywany tylko przy logowani .bashrc za każdym razem gdy wywoływany jest bash (więcej informacji).

Gdy dodasz coś do .bashrc (alias, zmienne czy cokolwiek innego) musisz go ponownie wczytaś , możesz to wykonać (jak wspomniał tomcio) za pomocą polecenia

source .bashrc

lub uruchomić nową powłokę wykonując po prostu polecenie bash.

Może taki filmik Ci pomoże zrozumieć o co chodzi.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...