Jaka jest różnica między /etc/bash.bashrc i ~ / .bashrc? Którego powinienem użyć?


20

Kiedy powinienem użyć każdego z dwóch plików .bashrc, aby ustawić moje aliasy, monit itp.?

Odpowiedzi:


34

/etc/bash.bashrc dotyczy wszystkich użytkowników

~/.bashrc dotyczy tylko użytkownika, w którym jest to folder domowy.


3
W odpowiedzi dex sugeruje się ... Używaj lokalnego ~ / .bashrc we wszystkich przypadkach, z wyjątkiem przypadków, gdy chcesz egzekwować swoją wolę na każdym, kto używa tej maszyny.
dacracot

Ściśle mówiąc, nie wymuszasz niczego w /etc/bash.bashrc, ponieważ użytkownicy zawsze mogą to zmienić we własnym ~ / .bashrc
Kim

... z wyjątkiem sytuacji, gdy ktoś decyduje się na utworzenie wszystkich zmiennych readonlyw /etc/bash.bashrc: \
grawity

1
W Ubuntu ten plik, jak skomentowano na początku, musi zostać „pobrany” z pliku / etc / profile. Dodałem polecenie aliasu na końcu pliku /etc/bash.bashrc i dołączyłem polecenie „source /etc/bash.bashrc” na końcu pliku / etc / profile. Działa jak marzenie.
jfmessier

2

Zgodnie z dokumentacją GNU Bash :

Gdy Bash jest wywoływany jako interaktywna powłoka logowania lub jako nieinteraktywna powłoka z opcją --login, najpierw czyta i wykonuje polecenia z pliku / etc / profile , jeśli plik ten istnieje. Po odczytaniu tego pliku szuka ~ / .bash_profile , ~ / .bash_login i ~ / .profile, w tej kolejności, i odczytuje i wykonuje polecenia z pierwszego, który istnieje i jest możliwy do odczytu. Opcji --noprofile można użyć, gdy powłoka zostanie uruchomiona w celu zahamowania tego zachowania.

Wywoływany jako interaktywna powłoka niezalogowana Po uruchomieniu interaktywnej powłoki, która nie jest powłoką logowania, Bash odczytuje i wykonuje polecenia z ~ / .bashrc , jeśli ten plik istnieje. Można temu zapobiec, używając opcji --norc. Opcja --rcfile pliku zmusi Bash do odczytu i wykonywania poleceń z pliku zamiast ~ / .bashrc.

Zwykle plik ~ / .bash_profile zawiera wiersz

if [-f ~ / .bashrc]; następnie . ~ / .bashrc; fi

po (lub przed) inicjalizacjach związanych z logowaniem.


1
Nie całkiem. Spójrz na ten plik git.savannah.gnu.org/cgit/bash.git/tree/shell.c w funkcji run_startup_files (), w której używana jest SYS_BASHRC, zdefiniowana w git.savannah.gnu.org/cgit/bash.git/ tree / config-top.h
mloskot

1

Do osobistych preferencji i osobistych skryptów lub funkcji bash należy użyć .bashrc (aliasy, funkcje dodane do bash ...)

Chwila, w której chcesz udostępnić coś wszystkim użytkownikom (lub większości użytkowników) lub w celach ogólnych (ścieżka do wspólnych plików wykonywalnych, ścieżka do dokumentacji ...) umieść to w /etc/bash.bashrc

Powiedziałem większość użytkowników, ponieważ nawet powiedzmy, że określasz skrypt greetings.sh, który jest drukowany "Hello world!"dla wszystkich użytkowników, ale użytkownik Pepe chce zamiast niego użyć skryptu greetings.sh, który drukuje "Hola el mundo!". Może modyfikować swoją ścieżkę w swoim .bashrc, aby wskazywał na swój skrypt zamiast twojego. Innymi słowy, użytkownik może zawsze dostosować swoją sesję w .bashrc do tego, czego chce.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.