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