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