Nenacházím své .bash_login a .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:~#
Je tam vždy pouze jeden soubor .bashrc a .bash_profile pro každého uživatele?
A jsou soubory .bashrc a .bash_profile vždy nalezeny v adresáři / home / „uživatelské jméno“?
Odpověď
Jediné, na které se bash standardně dívá, jsou v domovském adresáři uživatele, ano. V Linuxu pro ně obvykle existuje jediný zdroj – / etc / skel. Domovský adresář uživatele však nemusí být v adresáři / home.
Vidím, že jste upravili svoji otázku a zeptali se, kde jsou vaše soubory .bash_login a .bash_profile. ve výzvě #
předpokládám, že to spouštíte jako root. V takovém případě jsou vaše soubory
/root/.bash_history /root/.bashrc
Viz moje původní odpověď výše týkající se domovského adresáře uživatele – není to vždy / home; v tomto případě je domovským adresářem root /root
.
Odpověď
Podle man bash
:
Když je vyvolán bash jako interaktivní přihlašovací prostředí nebo jako neinteraktivní prostředí s volbou –login nejprve načte a provede příkazy ze souboru / etc / profile, pokud tento soubor existuje. Po přečtení tohoto souboru vyhledá ~ / .bash_profile, ~ / .bash_login a ~ / .profile v tomto pořadí a přečte a provede příkazy od prvního, který existuje a je čitelný.
~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file
Existuje také /etc/bashrc
( /etc/bash.bashrc
v systému Linux založeném na Debianu), který obsahuje System wide functions and aliases
. Ve výchozím nastavení je toto nastaveno, a to i pro neinteraktivní skořápky bez přihlášení.
EDIT:
tilde
v cestách označuje home directory
aktuálně přihlášeného uživatele. Bash je schopen použít pro čtení a provádění příkazů pouze jeden z ~/.bash_profile, ~/.bash_login, or ~/.profile
(na aktuálně přihlášeného uživatele). (Operační systémy založené na Debianu obvykle nemají ~/.bash_profile or ~/.bash_login.
používají soubor ~/.profile
. Tento soubor vysvětluje, že bude čten a používán, pokud ~/.bash_profile or ~/.bash_login
jsou vytvořeny.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
existuje.
Komentáře
- Jakým způsobem odpovídá tato odpověď na moji otázku?
- @BROY Odpovídá na otázku, na kterou jsi se měl ptát, spíše než na tu, na kterou jsi odpověděl. Viděl jsem, jak někteří lidé vkládají soubor .bash_profile do adresářů projektu, opravdu to zachytí bash? Nemyslím si, že ' ' se má stát ve výchozím nastavení.
Odpověď
Vaše bashrc
je závislé na distribuci … Zde je základní seznam systému bashrc
:
/etc/bashrc
(Redhat, Fedora atd.)
/etc/bash.bashrc
(Debian, Ubuntu, Linux Mint, Backtrack, Kali atd.)
/etc/bash.bashrc.local
(Suse, OpenSuse atd.)
Pak existuje soukromý single-user bashrc
, který je z větší části uložen v ~/.bashrc
v podstatě pro každou distribuci … Pokud nemáte uvedenou některou z distribucí nebo máte speciální systém, můžete vždy vyhledat bashrc
umístění na google pro tuto distribuci nebo systém …
S pozdravem,
Zajímavé …
Odpověď
Jak již lidé uvedli, kostru bashrc najdete v souboru /etc/skel/.bashrc. Pokud různí uživatelé chtějí různé konfigurace bash, musíte do domovské složky těchto uživatelů vložit soubor .bashrc.
Pokud jde o .bash_profile a .bash_login, musí si je uživatel vytvořit ručně a propojit je pomocí bashrc . bash_profile a bash_login existují k vytvoření organizovanějšího pocitu pro různá načtená nastavení. Osobně uchovávám všechny své aliasy v bash_profile, takže nemusím třídit nepořádek v bashrc, abych provedl rychlou úpravu.
Zde je příklad toho, co byste měli ve svém souboru .bashrc:
if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi