Jeg finner ikke .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 det alltid bare én .bashrc- og .bash_profile-fil for hver bruker?
Og finnes .bashrc og .bash_profile alltid i katalogen / home / «brukernavn»?
Svar
De eneste bash ser på som standard er i brukerens hjemmekatalog, ja. Det er også vanligvis en enkelt kilde for dem i Linux – / etc / skel. Brukerens hjemmekatalog trenger ikke være under / home.
Jeg ser deg «har redigert spørsmålet ditt for å spørre hvor .bash_login- og .bash_profile-filene er. Basert på #
-prompten, vil jeg anta at du kjører dette som root. I så fall er filene dine
/root/.bash_history /root/.bashrc
Se mitt opprinnelige svar ovenfor angående brukerens hjemmekatalog – det er ikke alltid / hjemme; i dette tilfellet er rotens hjemmekatalog /root
.
Svar
I følge man bash
:
Når bash blir påkalt som et interaktivt påloggingsskall, eller som et ikke-interaktivt skall med alternativet –login, leser og utfører det først kommandoer fra filen / etc / profilen, hvis den filen eksisterer. Etter å ha lest den filen, ser den etter ~ / .bash_profile, ~ / .bash_login og ~ / .profile, i den rekkefølgen, og leser og utfører kommandoer fra den første som eksisterer og er lesbar.
~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file
Det er også /etc/bashrc
( /etc/bash.bashrc
i Debian-basert Linux) som inneholder System wide functions and aliases
. Som standard er dette satt, selv for ikke-interaktive, ikke-påloggende skjell.
EDIT:
tilde
i banene indikerer home directory
for den brukeren som er pålogget. Bash er bare i stand til å bruke en av ~/.bash_profile, ~/.bash_login, or ~/.profile
(per for øyeblikket pålogget bruker), i den rekkefølgen, til å lese og utføre kommandoer. (Debian-baserte operativsystemer har vanligvis ikke ~/.bash_profile or ~/.bash_login.
De bruker filen ~/.profile
. Denne filen forklarer at den vil bli lest og brukt med mindre ~/.bash_profile or ~/.bash_login
opprettes.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
eksisterer.
Kommentarer
- På hvilken måte svarer dette på spørsmålet mitt?
- @BROY Det svarer på spørsmålet du burde ha stilt fremfor det du gjorde.
- Jeg har sett noen mennesker legger en .bash_profile-fil i prosjektkataloger, blir det virkelig plukket opp av bash? Jeg tror ikke ' at ' skal skje som standard.
Svar
Din bashrc
filens plassering er distroavhengig … Her er en grunnleggende liste for systemet bashrc
:
/etc/bashrc
(Redhat, Fedora, etc)
/etc/bash.bashrc
(Debian, Ubuntu, Linux Mint, Backtrack, Kali etc)
/etc/bash.bashrc.local
(Suse, OpenSuse, etc)
Så er det den private enkeltbrukeren bashrc
, som for det meste er lagret i ~/.bashrc
for stort sett alle distroer … Hvis du ikke har en av distribusjonene oppført, eller har et spesielt system, kan du alltid slå opp bashrc
plassering på google for det distro eller systemet …
Hilsen,
Interessant …
Svar
Som folk allerede har uttalt, kan du finne et skjelett av bashrc i /etc/skel/.bashrc. Hvis forskjellige brukere vil ha forskjellige bash-konfigurasjoner, må du plassere en .bashrc-fil i brukerens hjemmemappe.
Når det gjelder .bash_profile og .bash_login, må brukeren opprette dem manuelt og koble dem via bashrc . bash_profile og bash_login eksisterer for å skape en mer organisert følelse for de forskjellige innstillingene du laster inn. Jeg personlig holder alle aliasene mine i bash_profile, slik at jeg ikke trenger å sortere gjennom et rot i bashrc for å gjøre en rask redigering.
Her er et eksempel på hva du vil ha i .bashrc-filen:
if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi