Waar is het .bashrc-bestand te vinden in Linux?

Ik vind mijn .bash_login en .bash_profile niet

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:~# 

Is er altijd slechts één .bashrc- en .bash_profile-bestand voor elke gebruiker?

En zijn .bashrc en .bash_profile altijd te vinden in de / home / “gebruikersnaam” -directory?

Antwoord

De enige waar bash standaard naar kijkt, bevinden zich in de homedirectory van de gebruiker, ja. Er is ook typisch een enkele bron voor hen in Linux – / etc / skel. De homedirectory van de gebruiker hoeft echter niet onder / home te staan.

Ik zie dat je je vraag hebt aangepast om te vragen waar je .bash_login en .bash_profile bestanden zijn. Gebaseerd op de # prompt, ga ik ervan uit dat je dit als root gebruikt. In dat geval zijn je bestanden

/root/.bash_history /root/.bashrc 

Zie mijn oorspronkelijke antwoord hierboven met betrekking tot de homedirectory van een gebruiker – het is niet altijd / home; in dit geval is de basismap van de root /root .

Antwoord

Volgens man bash:

Wanneer bash wordt aangeroepen als een interactieve login-shell, of als een niet-interactieve shell met de –login-optie, leest het eerst commandos uit het bestand / etc / profile en voert het uit, als dat bestand bestaat. Na het lezen van dat bestand, zoekt het naar ~ / .bash_profile, ~ / .bash_login en ~ / .profile, in die volgorde, en leest en voert commandos uit van de eerste die bestaat en leesbaar is.

~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file 

Er is ook /etc/bashrc ( /etc/bash.bashrc in Debian-gebaseerde Linux) die System wide functions and aliases bevat. Standaard is dit ingesteld, zelfs voor niet-interactieve, niet-login shells.

EDIT:

De tilde in de paden geeft de home directory aan van de momenteel aangemelde gebruiker. Bash kan slechts één van ~/.bash_profile, ~/.bash_login, or ~/.profile (per momenteel aangemelde gebruiker) gebruiken, in die volgorde, voor het lezen en uitvoeren van commandos. (Debian-gebaseerde besturingssystemen hebben doorgaans geen ~/.bash_profile or ~/.bash_login. Ze gebruiken het bestand ~/.profile. Dit bestand legt uit dat het zal worden gelezen en gebruikt, tenzij ~/.bash_profile or ~/.bash_login zijn gemaakt.

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login bestaat.

Reacties

  • Op welke manier beantwoordt dit mijn vraag?
  • @BROY Het beantwoordt de vraag die je had moeten stellen in plaats van degene die je deed.
  • Ik heb gezien dat sommige mensen een .bash_profile-bestand in projectmappen plaatsen, wordt dat echt opgepikt door bash? Ik denk niet dat ' niet ' s zouden standaard moeten gebeuren.

Antwoord

Jouw bashrc bestand “s locatie is distro-afhankelijk … Hier is een basislijst voor het systeem bashrc:
/etc/bashrc (Redhat, Fedora, enz.)
/etc/bash.bashrc (Debian, Ubuntu, Linux Mint, Backtrack, Kali enz.)
/etc/bash.bashrc.local (Suse, OpenSuse, enz.)
Dan is er de private single-user bashrc, die voor het grootste deel wordt opgeslagen in ~/.bashrc voor praktisch elke distro … Als je niet een van de distributies in de lijst hebt of een speciaal systeem hebt, kun je altijd bashrc locatie op Google voor die distro of systeem …
Met vriendelijke groet,
Interessant …

Antwoord

Zoals mensen al hebben gezegd, kun je een skelet van bashrc vinden in /etc/skel/.bashrc. Als verschillende gebruikers verschillende bash-configuraties willen, moet u een .bashrc-bestand in de basismap van die gebruiker plaatsen.

Als het gaat om .bash_profile en .bash_login, moet de gebruiker deze handmatig maken en ze koppelen via bashrc . bash_profile en bash_login bestaan om een meer georganiseerd gevoel te creëren voor de verschillende instellingen die u laadt. Persoonlijk bewaar ik al mijn aliassen in bash_profile, zodat ik niet door een puinhoop in bashrc hoef te zoeken om een snelle bewerking uit te voeren.

Hier is een voorbeeld van wat je in je .bashrc-bestand zou hebben:

if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *