Was ist der Unterschied zwischen /etc/bash.bashrc und ~ / .bashrc? Welches sollte ich verwenden?

19294
cfischer

Wann sollte ich jede der beiden .bashrc-Dateien verwenden, um meine Aliase, Aufforderungen usw. festzulegen?

19

3 Antworten auf die Frage

32
Loïc Wolff

/etc/bash.bashrc gilt für alle Benutzer

~/.bashrc Gilt nur für den Benutzer, in dem sich der Basisordner befindet.

In der Antwort von dex heißt es: Verwenden Sie in allen Fällen Ihr lokales ~ / .bashrc, es sei denn, Sie möchten Ihren Willen auf jeden anwenden, der diese Maschine verwendet. dacracot vor 14 Jahren 3
Streng genommen erzwingen Sie nichts in /etc/bash.bashrc, da Benutzer dies immer in ihrem eigenen ~ / .bashrc ändern können Kim vor 14 Jahren 0
... außer wenn jemand beschließt, alle Variablen `readonly` in` / etc / bash.bashrc` zu erstellen: \ grawity vor 14 Jahren 0
Unter Ubuntu muss diese Datei, wie zu Beginn kommentiert, aus der Datei / etc / profile "bezogen" werden. Ich habe am Ende von /etc/bash.bashrc einen Aliasbefehl hinzugefügt und den Befehl "source /etc/bash.bashrc" am Ende der Datei / etc / profile angehängt. Klappt wunderbar. jfmessier vor 14 Jahren 1
2
Felipe Alvarez

Gemäß der GNU Bash-Dokumentation :

Wenn Bash als interaktive Login-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 aus dem ersten vorhandenen Befehl aus, der lesbar ist. Die Option --noprofile kann verwendet werden, wenn die Shell gestartet wird, um dieses Verhalten zu verhindern.

Wird als interaktive Nicht-Login-Shell aufgerufen. Wenn eine interaktive Shell gestartet wird, die keine Login-Shell ist, liest und führt Bash Befehle aus ~ / .bashrc aus, sofern diese Datei vorhanden ist. Dies kann mit der Option --norc verhindert werden. Die Dateioption --rcfile zwingt Bash, Befehle aus der Datei anstelle von ~ / .bashrc zu lesen und auszuführen.

In der Regel enthält Ihr ~ / .bash_profile die Zeile

if [-f ~ / .bashrc]; dann . ~ / .bashrc; fi

nach (oder vor) eventuellen Login-spezifischen Initialisierungen.

Nicht wirklich. Sehen Sie sich diese Datei http://git.savannah.gnu.org/cgit/bash.git/tree/shell.c in der Funktion run_startup_files () an, in der SYS_BASHRC verwendet wird, definiert in http: //git.savannah.gnu. org / cgit / bash.git / tree / config-top.h mloskot vor 11 Jahren 1
1
Debugger

Für Ihre persönlichen Vorlieben und persönlichen Skripts oder Bash-Funktionen sollten Sie .bashrc (Aliase, hinzugefügte Funktionen für Bash ...) verwenden.

In dem Moment, in dem Sie etwas für alle Benutzer (oder die meisten Benutzer) oder für allgemeine Zwecke (Pfad für gemeinsam genutzte ausführbare Dateien, Pfad für Dokumentation ...) freigeben möchten, setzen Sie es in /etc/bash.bashrc ein

Ich habe die meisten Benutzer gesagt, weil wir sogar sagen, Sie geben ein Skript "greetings.sh" an, das "Hello world!"für alle Benutzer gedruckt wird, aber der Benutzer Pepe möchte stattdessen das Skript "greetings.sh" verwenden, das gedruckt wird "Hola el mundo!". Er kann seinen Pfad in seiner .bashrc ändern, um auf sein Skript statt auf Ihr Skript hinzuweisen. Mit anderen Worten, der Benutzer kann seine Sitzung immer in .bashrc an das anpassen, was er will.