Wo befindet sich die .bashrc-Datei in Linux?

13

Ich finde mein .bash_login und .bash_profile nicht

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

Gibt es immer nur eine .bashrc- und .bash_profile-Datei für jeden Benutzer?

Befinden sich .bashrc und .bash_profile immer im Verzeichnis / home / "Benutzername"?

Jeff Schaller
quelle

Antworten:

14

Die einzigen, die bash standardmäßig ansieht, befinden sich im Home-Verzeichnis des Benutzers, ja. Es gibt auch normalerweise eine einzige Quelle für sie in Linux - / etc / skel. Das Home-Verzeichnis des Benutzers muss sich jedoch nicht unter / home befinden.

Sie haben Ihre Frage bearbeitet und gefragt, wo sich Ihre .bash_login- und .bash_profile-Dateien befinden. Basierend auf der #Eingabeaufforderung gehe ich davon aus, dass Sie dies als root ausführen. In diesem Fall sind Ihre Dateien

/root/.bash_history
/root/.bashrc

Sehen Sie meine ursprüngliche Antwort oben in Bezug auf das Home-Verzeichnis eines Benutzers - es ist nicht immer / home; In diesem Fall lautet das Basisverzeichnis von root /root.

Jeff Schaller
quelle
9

Nach man bash:

Wenn bash als interaktive Anmeldeshell oder als nicht interaktive Shell mit der Option --login aufgerufen wird, werden zuerst Befehle aus der Datei / etc / profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei sucht sie in dieser Reihenfolge nach ~ / .bash_profile, ~ / .bash_login und ~ / .profile und liest und führt Befehle von der ersten Datei aus, die vorhanden und lesbar ist.

~/.bash_profile
    The personal initialization file, executed for login shells

~/.bashrc
    The individual per-interactive-shell startup file

Es gibt auch /etc/bashrc( /etc/bash.bashrcin Debian-basiertem Linux) das enthält System wide functions and aliases. Standardmäßig ist dies auch für nicht interaktive Shells ohne Anmeldung festgelegt.

BEARBEITEN:

Das tildein den Pfaden angegebene home directorydes aktuell angemeldeten Benutzers. Bash kann nur einen der ~/.bash_profile, ~/.bash_login, or ~/.profile(derzeit angemeldeten) Benutzer in dieser Reihenfolge zum Lesen und Ausführen von Befehlen verwenden. (Debian-basierte Betriebssysteme haben normalerweise keine. ~/.bash_profile or ~/.bash_login. Sie verwenden die Datei ~/.profile. In dieser Datei wird erklärt, dass sie gelesen und verwendet wird, es sei denn, sie ~/.bash_profile or ~/.bash_loginwerden erstellt.

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

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

Timothy Martin
quelle
Inwiefern beantwortet dies meine Frage?
1
@BROY Es beantwortet die Frage, die Sie hätten stellen sollen, und nicht die, die Sie gestellt haben.
Shadur
Ich habe einige Leute gesehen, die eine .bash_profile-Datei in Projektverzeichnissen abgelegt haben. Wird das wirklich von bash aufgegriffen? Ich glaube nicht, dass das standardmäßig passieren soll.
Alexander Mills
5

bashrcDer Speicherort Ihrer Datei hängt von der Distribution ab ... Hier ist eine grundlegende Liste für das System bashrc:
/etc/bashrc(Redhat, Fedora usw.)
/etc/bash.bashrc(Debian, Ubuntu, Linux Mint, Backtrack, Kali usw.)
/etc/bash.bashrc.local(Suse, OpenSuse usw.)
Dann gibt es die Privater Einzelbenutzer bashrc, der größtenteils in ~/.bashrcpraktisch jeder Distribution gespeichert ist ... Wenn Sie nicht über eine der aufgelisteten Distributionen oder ein spezielles System verfügen, können Sie bashrcbei Google immer nach dem Speicherort für diese Distribution oder suchen System ...
Grüße,
Interessant ...

Interessant...
quelle
1

Wie bereits erwähnt, finden Sie in /etc/skel/.bashrc ein Skelett von bashrc. Wenn verschiedene Benutzer unterschiedliche Bash-Konfigurationen wünschen, müssen Sie eine .bashrc-Datei in den Basisordner dieses Benutzers einfügen.

Wenn es um .bash_profile und .bash_login geht, muss der Benutzer diese manuell erstellen und über bashrc verknüpfen. bash_profile und bash_login dienen dazu, die verschiedenen Einstellungen, die Sie laden, übersichtlicher zu gestalten. Ich persönlich behalte alle meine Aliase in bash_profile, damit ich nicht in bashrc ein Durcheinander sortieren muss, um eine schnelle Bearbeitung vorzunehmen.

Hier ist ein Beispiel für das, was Sie in Ihrer .bashrc-Datei hätten:

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