Bis zu dem Datum, an dem ich meine Umgebungsvariablen in der bash.bashrc
Datei festgelegt habe. Kürzlich wurde mir gesagt, dass ich die /etc/environment
Datei verwenden soll. Nun, beide funktionieren gut.
Also, was ist der Unterschied zwischen ihnen?
Ich habe dies gegoogelt und festgestellt, dass "bashrc für bestimmte Benutzer und Umgebungen systemweit verwendet wird". Was ist hier mit systemweit gemeint? /etc/bash.bashrc
Ich denke auch, dass Änderungen systemweit angewendet werden. Korrigiere mich, wenn ich falsch liege. Jede Art von Hilfe wird geschätzt.
quelle
Die
/etc/environment
Datei legt das variable System für jeden Benutzer beim Booten fest. Befehle im/etc/bash.bashrc
are werden ausgeführt, wenn diebash
Shell von einem Benutzer geöffnet wird. Die Variablen würden also nicht gesetzt, wenn einebash
Shell nicht mindestens einmal geöffnet würde.quelle
Und wenn Sie nach " systemweit " fragen :
Konfigurationsdateien im
/etc
Verzeichnis gelten für alle Benutzer im System. Denn/etc/bash.bashrc
das würde für alle und alles bedeuten, was die "Borne Again SHell" aka Bash auf dieser Maschine verwendet. Auch wenn Sie der einzige Mensch sind, der es verwendet, kann es sein, dass "technische Benutzer" betroffen sind (werfen Sie einfach einen Blick in das/etc/passwd
und überprüfen Sie, wie oft der Begriff "/ bin / bash" dort angegeben ist - oder verwenden Siegrep bash /etc/passwd | wc -l
, was Ihnen geben sollte Diese Zahl direkt (dh alle Zeilen mit der Zeichenfolge "bash" aus der Datei "/ etc / passwd" "greifen" und die Ergebnisse ("|") an den Befehl "wc" (word count) senden, um die Zeilen zu zählen ("-l").Für Ihren Benutzer ist es daher viel sicherer,
~/.bashrc
stattdessen Änderungen vorzunehmen (dh die Datei ".bashrc" - mit einem vorangestellten Punkt, ja - in Ihrem Home-Verzeichnis, z. B./home/ankur/.bashrc
), die dann nur Ihren Benutzer betreffen und alles andere in Ruhe lassen . Dateien in/etc
sollten nur geändert werden, wenn systemweite Änderungen tatsächlich beabsichtigt sind.Außerdem: Beide Konfigurationen werden verwendet, wenn sie existieren. Zuerst wird die systemweite Datei (hier
/etc/bash.bashrc
:) gelesen und "bezogen" (die Einstellungen beziehen sich auf die aktuelle Sitzung), dann werden die Benutzer gleich/home/username/.bashrc
behandelt und können somit Einstellungen aus der globalen heraus hinzufügen oder sogar ändern / überschreiben/etc/bash.bashrc
Datei.quelle
Abgesehen von der systemweiten und benutzerweiten Diskussion besteht ein wesentlicher Unterschied darin, dass es
/etc/environment
sich nicht um ein anderes Skript handelt~/.bashrc
.Sie können die Referenzierung von Variablen nicht aufheben
/etc/environment
, da deren Variablenzuordnung den Zeilenwert buchstäblich annimmt (wie bereits von roadmr erwähnt).Ubuntu wird Sie sperren , wenn Sie die Schraube nach oben
$PATH
innen ,/etc/environment
indem Sie versuchen neue Wege anzuhängenWenn Ihre Ubuntu Gnome- oder Unity-Anmeldeseite Sie nicht ohne Beschwerde über ein falsches Passwort einlässt. Und Sie haben vor kurzem geändert
/etc/environment
, es ist höchstwahrscheinlich der Fall.Ein Update ist die virtuelle Konsole anmelden CTRL+ ALT+ F1Login - Konsole manuell überprüfen
$PATH
und fix/etc/environment
Datei.Nach diesem ,
/etc/environment
wird durch PAM Stapel geladen, die durch die Linie Umgebungsvariable Linie auffüllt.quelle
Der Unterschied zwischen den beiden besteht darin, dass die
/etc/enivironment
Datei für alle Benutzer funktioniert, während die Datei bash.bashrc insbesondere nur für diesen Benutzer funktioniert. Und wenn Sie irgendetwas an der/etc/environment
Datei falsch machen, können die Folgen schwerwiegend sein, während Sie die Änderungen in der Datei bash.bashrc einfach rückgängig machen können, indem Sie den Inhalt der Datei / etc / environment kopieren. Die erste Präferenz ist jedoch diebash.bashrc
Datei und dann die Datei / etc / environment. Wenn Sie Änderungen an derbash.bashrc
Datei vornehmen, gibt das Terminal nicht zuerst der lokalen Benutzerdatei (dhbash.bashrc
) und dann der Hauptdatei (dh/etc/environment
) den Vorzug .quelle