Wo befindet sich die .bashrc-Datei unter Linux?

Ich finde meine .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?

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

Antwort

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 Bei der Eingabeaufforderung # gehe ich davon aus, dass Sie dies als Root ausführen. In diesem Fall lauten 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 ist das Home-Verzeichnis von root /root .

Antwort

Gemäß man bash:

Wenn bash aufgerufen wird Als interaktive Anmeldeshell oder als nicht interaktive Shell mit der Option –login werden zuerst Befehle aus der Datei / etc / profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei wird in dieser Reihenfolge nach ~ / .bash_profile, ~ / .bash_login und ~ / .profile gesucht und Befehle von der ersten vorhandenen und lesbaren gelesen und ausgeführt.

~/.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.

BEARBEITEN:

Die tilde in den Pfaden gibt die home directory des aktuell angemeldeten Benutzers an. Bash kann nur einen der ~/.bash_profile, ~/.bash_login, or ~/.profile (pro aktuell angemeldeten 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, es sei denn ~/.bash_profile or ~/.bash_login werden 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.

Kommentare

  • Auf welche Weise beantwortet dies meine Frage?
  • @BROY Es beantwortet die Frage, die Sie hätten stellen sollen und nicht die, die Sie gestellt haben.
  • Ich habe einige Leute gesehen, die eine .bash_profile-Datei in Projektverzeichnisse abgelegt haben. Wird das wirklich von bash erfasst? Ich glaube nicht, dass '

Antwort

Ihre bashrc ist von der Distribution 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 oder ein spezielles System haben, können Sie immer nach bashrc Standort auf Google für diese Distribution oder dieses System …
Grüße,
Interessant …

Antwort

Wie bereits erwähnt, finden Sie in /etc/skel/.bashrc ein Bashrc-Skelett. Wenn verschiedene Benutzer unterschiedliche Bash-Konfigurationen wünschen, müssen Sie eine .bashrc-Datei in den Home-Ordner 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 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 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.