it-swarm.com.de

Wo befindet sich die .bashrc-Datei unter Linux?

Ich finde mein .bash_login und .bash_profile nicht

[email protected]:~# 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
[email protected]:~# 

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

Und befinden sich .bashrc und .bash_profile immer im Verzeichnis/home/"user name"?

14
user109285

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

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

/root/.bash_history
/root/.bashrc

Siehe meine ursprüngliche Antwort oben bezüglich des Home-Verzeichnisses eines Benutzers - es ist nicht immer/home; In diesem Fall lautet das Ausgangsverzeichnis von root /root.

15
Jeff Schaller

Laut man bash:

Wenn bash als interaktive Anmelde-Shell 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 vorhandenen und lesbaren aus.

~/.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.bashrc in Debian-basiertem Linux), das System wide functions and aliases Enthält. Standardmäßig ist dies auch für nicht interaktive, nicht angemeldete Shells festgelegt.

EDIT :

Das tilde in den Pfaden gibt den home directory Des aktuell angemeldeten Benutzers an. Bash kann nur einen von ~/.bash_profile, ~/.bash_login, or ~/.profile (Pro aktuell angemeldetem Benutzer) in dieser Reihenfolge zum Lesen und Ausführen von Befehlen verwenden. (Debian-basierte Betriebssysteme haben normalerweise nicht ~/.bash_profile or ~/.bash_login.. Sie verwenden die Datei ~/.profile. Diese Datei erklärt, dass sie gelesen und verwendet wird, sofern nicht ~/.bash_profile or ~/.bash_login Erstellt wird.

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

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

10
Timothy Martin

Der Speicherort Ihrer bashrc -Datei ist distro-abhängig ... 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 den privaten Einzelbenutzer bashrc, der größtenteils in ~/.bashrc für praktisch jede Distribution ... Wenn Sie keine der aufgelisteten Distributionen haben oder kein spezielles System haben, können Sie jederzeit bei Google nach bashrc Speicherort für diese Distribution oder dieses System suchen ...
Grüße,
Interessant...

6
Interesting...

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 Home-Ordner dieses Benutzers legen.

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 sorgen für ein besser organisiertes Gefühl für die verschiedenen Einstellungen, die Sie laden. Ich persönlich behalte alle meine Aliase in bash_profile, damit ich kein Durcheinander in bashrc sortieren muss, um eine schnelle Bearbeitung vorzunehmen.

Hier ist ein Beispiel dafür, was Sie in Ihrer .bashrc-Datei haben würden:

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