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_loginexistuje.
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