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