Gdzie znajduje się plik .bashrc w systemie Linux?

Nie mogę znaleźć moich .bash_login i .bash_profile

root@linux:~# locate .bash* /etc/bash.bashrc /etc/skel/.bashrc /etc/skel/.bashrc.original /home/noroot/.bashrc /home/noroot/.bashrc.original /root/.bash_history /root/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc /usr/share/kali-defaults/.bashrc root@linux:~# 

Czy zawsze tylko jeden plik .bashrc i .bash_profile dla każdego użytkownika?

A czy .bashrc i .bash_profile zawsze znajdują się w katalogu / home / „nazwa użytkownika”?

Odpowiedz

Jedyne, na które bash domyślnie patrzy, znajdują się w katalogu domowym użytkownika, tak. W Linuksie jest też zazwyczaj jedno źródło dla nich – / etc / skel. Katalog domowy użytkownika nie musi jednak znajdować się w katalogu / home.

Widzę, że zredagowałeś swoje pytanie, pytając, gdzie są twoje pliki .bash_login i .bash_profile. w monicie # zakładam, że korzystasz z tego programu jako root. W takim przypadku Twoje pliki są

/root/.bash_history /root/.bashrc 

Zobacz moją pierwotną odpowiedź powyżej dotyczącą katalogu domowego użytkownika – nie zawsze jest to / home; w tym przypadku katalogiem głównym użytkownika root jest /root .

Odpowiedź

Zgodnie z man bash:

Gdy wywoływany jest bash jako interaktywna powłoka logowania lub jako powłoka nieinteraktywna z opcją –login najpierw odczytuje i wykonuje polecenia z pliku / etc / profile, jeśli ten plik istnieje. Po odczytaniu tego pliku szuka ~ / .bash_profile, ~ / .bash_login i ~ / .profile, w tej kolejności, oraz czyta i wykonuje polecenia z pierwszego, który istnieje i jest czytelny.

~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file 

Jest też /etc/bashrc ( /etc/bash.bashrc w systemie Linux opartym na Debianie), który zawiera System wide functions and aliases. Domyślnie jest to ustawione, nawet w przypadku powłok nieinteraktywnych i niezalogowanych.

EDYCJA:

tilde na ścieżkach wskazuje home directory aktualnie zalogowanego użytkownika. Bash może używać tylko jednego z ~/.bash_profile, ~/.bash_login, or ~/.profile (na aktualnie zalogowanego użytkownika), w tej kolejności, do odczytywania i wykonywania poleceń. (Systemy operacyjne oparte na Debianie zazwyczaj nie mają ~/.bash_profile or ~/.bash_login. Używają pliku ~/.profile. Ten plik wyjaśnia, że będzie on czytany i używany, chyba że ~/.bash_profile or ~/.bash_login są tworzone.

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login istnieje.

Komentarze

  • W jaki sposób to odpowiada na moje pytanie?
  • @BROY Odpowiada raczej na pytanie, które powinieneś zadać, a nie to, które zadałeś.
  • Widziałem, jak niektórzy ludzie umieszczali plik .bash_profile w katalogach projektów. Czy to naprawdę jest odbierane przez basha? Nie ' nie sądzę, że ' powinno mieć miejsce domyślnie.

Odpowiedź

Twój bashrc zależy od dystrybucji … Oto podstawowa lista systemu bashrc:
/etc/bashrc (Redhat, Fedora itp.)
/etc/bash.bashrc (Debian, Ubuntu, Linux Mint, Backtrack, Kali itp.)
/etc/bash.bashrc.local (Suse, OpenSuse itp.)
Następnie jest prywatny, pojedynczy użytkownik bashrc, który w większości jest przechowywany w ~/.bashrc w zasadzie dla każdej dystrybucji … Jeśli nie masz żadnej z wymienionych dystrybucji lub masz specjalny system, zawsze możesz sprawdzić bashrc lokalizacja w Google dla tej dystrybucji lub systemu …
Pozdrawiam
Ciekawe …

Odpowiedź

Jak już powiedzieli ludzie, szkielet bashrc można znaleźć w /etc/skel/.bashrc. Jeśli różni użytkownicy chcą różnych konfiguracji basha, musisz umieścić plik .bashrc w tym folderze domowym użytkownika.

Jeśli chodzi o .bash_profile i .bash_login, użytkownik musi utworzyć je ręcznie i połączyć je przez bashrc . bash_profile i bash_login istnieją po to, aby stworzyć bardziej zorganizowaną atmosferę dla różnych ładowanych ustawień. Osobiście trzymam wszystkie moje aliasy w bash_profile, więc nie muszę sortować bałaganu w bashrc, aby dokonać szybkiej edycji.

Oto przykład tego, co miałbyś w swoim pliku .bashrc:

if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *