Jag hittar inte min .bash_login och .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:~#
Finns det alltid bara en .bashrc- och .bash_profile-fil för varje användare?
Och finns .bashrc och .bash_profile alltid i katalogen / home / ”användarnamn”?
Svar
De enda som bash tittar på som standard finns i användarens hemkatalog, ja. Det finns också vanligtvis en enda källa för dem i Linux – / etc / skel. Användarens hemkatalog behöver dock inte vara under / home.
Jag ser att du har redigerat din fråga för att fråga var dina .bash_login- och .bash_profile-filer finns. Baserat på #
-prompten, jag antar att du kör det här som root. I så fall är dina filer
/root/.bash_history /root/.bashrc
Se mitt ursprungliga svar ovan angående en användares hemkatalog – det är inte alltid / hem; i det här fallet är rotens hemkatalog /root
.
Svar
Enligt man bash
:
När bash anropas som ett interaktivt inloggningsskal eller som ett icke-interaktivt skal med alternativet –login läser och körs först kommandon från filen / etc / profilen, om den filen finns. Efter att ha läst den filen letar den efter ~ / .bash_profile, ~ / .bash_login och ~ / .profile i den ordningen och läser och utför kommandon från den första som finns och är läsbar.
~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file
Det finns också /etc/bashrc
( /etc/bash.bashrc
i Debian-baserad Linux) som innehåller System wide functions and aliases
. Som standard är detta inställt, även för icke-interaktiva, icke-inloggningsskal.
EDIT:
tilde
i sökvägarna indikerar home directory
för den för närvarande inloggade användaren. Bash kan bara använda en av ~/.bash_profile, ~/.bash_login, or ~/.profile
(per för närvarande inloggad användare), i den ordningen, för att läsa och utföra kommandon. (Debianbaserade operativsystem har vanligtvis inte ~/.bash_profile or ~/.bash_login.
De använder filen ~/.profile
. Den här filen förklarar att den kommer att läsas och användas om inte ~/.bash_profile or ~/.bash_login
skapas.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
finns.
Kommentarer
- På vilket sätt svarar detta på min fråga?
- @BROY Det svarar på den fråga du borde ha ställt snarare än den du gjorde.
- Jag har sett att vissa människor lägger en .bash_profile-fil i projektkataloger, blir det verkligen plockat upp av bash? Jag ' tänker inte att ' ska ha hänt som standard.
Svar
Din bashrc
filens plats är distroberoende … Här är en grundläggande lista för systemet bashrc
:
/etc/bashrc
(Redhat, Fedora, etc)
/etc/bash.bashrc
(Debian, Ubuntu, Linux Mint, Backtrack, Kali etc)
/etc/bash.bashrc.local
(Suse, OpenSuse, etc)
Sedan finns det den privata enanvändaren bashrc
, som för det mesta lagras i ~/.bashrc
för i princip varje distro … Om du inte har någon av de distros som listas eller har ett speciellt system kan du alltid slå upp bashrc
plats på google för det distro eller systemet …
Hälsningar,
Intressant …
Svar
Som folk redan har sagt kan du hitta ett skelett av bashrc i /etc/skel/.bashrc. Om olika användare vill ha olika bash-konfigurationer måste du placera en .bashrc-fil i den användarens hemmapp.
När det gäller .bash_profile och .bash_login måste användaren skapa dem manuellt och länka dem via bashrc . bash_profile och bash_login finns för att skapa en mer organiserad känsla för de olika inställningarna du laddar. Jag behåller personligen alla mina alias i bash_profile så att jag inte behöver sortera en röra i bashrc för att göra en snabb redigering.
Här är ett exempel på vad du skulle ha i din .bashrc-fil:
if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi