Jeg finder ikke min .bash_login og .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:~#
Er der altid kun en .bashrc- og .bash_profile-fil til hver bruger?
Og findes .bashrc og .bash_profile altid i kataloget / home / “brugernavn”?
Svar
De eneste, som bash ser på som standard, er i brugerens hjemmekatalog, ja. Der er typisk også en enkelt kilde til dem i Linux – / etc / skel. Brugerens hjemmekatalog behøver dog ikke at være under / home.
Jeg kan se dig har redigeret dit spørgsmål for at spørge, hvor dine .bash_login- og .bash_profile-filer er. Baseret på #
-prompten vil jeg antage, at du kører dette som root. I så fald er dine filer
/root/.bash_history /root/.bashrc
Se mit originale svar ovenfor angående en brugers hjemmekatalog – det er ikke altid / hjem; i dette tilfælde er rodkataloget /root
.
Svar
I henhold til man bash
:
Når bash påberåbes som en interaktiv login-shell eller som en ikke-interaktiv shell med indstillingen –login, læser den og udfører først kommandoer fra filen / etc / profilen, hvis filen findes. Efter at have læst filen, ser den efter ~ / .bash_profile, ~ / .bash_login og ~ / .profile i den rækkefølge og læser og udfører kommandoer fra den første, der findes og kan læses.
~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file
Der er også /etc/bashrc
( /etc/bash.bashrc
i Debian-baseret Linux), som indeholder System wide functions and aliases
. Som standard er dette indstillet, selv for ikke-interaktive, ikke-login-skaller.
EDIT:
tilde
i stierne angiver home directory
for den aktuelt loggede bruger. Bash er kun i stand til at bruge en af ~/.bash_profile, ~/.bash_login, or ~/.profile
(pr. Aktuelt logget bruger) i den rækkefølge til læsning og udførelse af kommandoer. (Debian-baserede operativsystemer har typisk ikke ~/.bash_profile or ~/.bash_login.
De bruger filen ~/.profile
. Denne fil forklarer, at den læses og bruges, medmindre ~/.bash_profile or ~/.bash_login
oprettes.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
findes.
Kommentarer
- På hvilken måde besvarer dette mit spørgsmål?
- @BROY Det svarer på det spørgsmål, du burde have været stillet snarere end det, du gjorde.
- Jeg har set nogle mennesker lægge en .bash_profile-fil i projektmapper, bliver det virkelig hentet af bash? Jeg ' tror ikke, at ' antages at ske som standard.
Svar
Din bashrc
fil “placering er distroafhængig … Her er en grundlæggende liste til systemet bashrc
:
/etc/bashrc
(Redhat, Fedora osv.)
/etc/bash.bashrc
(Debian, Ubuntu, Linux Mint, Backtrack, Kali osv.)
/etc/bash.bashrc.local
(Suse, OpenSuse osv.)
Så er der den private enkeltbruger bashrc
, som for det meste er gemt i ~/.bashrc
for stort set alle distroer … Hvis du ikke har en af distroerne, der er anført, eller har et specielt system, kan du altid slå op bashrc
placering på google for det distro eller system …
Hilsen,
Interessant …
Svar
Som folk allerede har sagt, kan du finde et skelet af bashrc i /etc/skel/.bashrc. Hvis forskellige brugere ønsker forskellige bash-konfigurationer, skal du placere en .bashrc-fil i brugerens hjemmemappe.
Når det kommer til .bash_profile og .bash_login, skal brugeren oprette dem manuelt og linke dem via bashrc . bash_profile og bash_login findes for at skabe en mere organiseret fornemmelse for de forskellige indstillinger, du indlæser. Jeg gemmer personligt alle mine aliaser i bash_profile, så jeg behøver ikke sortere et rod i bashrc for at foretage en hurtig redigering.
Her er et eksempel på, hvad du ville have i din .bashrc-fil:
if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi