GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der Unterschied zwischen ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

Antworten auf die Fragen zu SO und Askubuntu, zusammen mit dem Stöbern (und Lesen der Header von) $HOME und /etc/ , geben eine Reihe von Dateien an, die zum Setzen von Umgebungsvariablen verwendet werden können, darunter:

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.gnomerc
  • ~/.Rprofile
  • /etc/bash_bashrc
  • /etc/profile
  • /etc/screenrc

Ich sammle diese Dateien in /etc/ für alle Benutzer funktionieren, während Dateien in $HOME sind benutzerspezifisch. Ich sammle auch das .profile wird beim Login geladen, wohingegen .bashrc geladen, wenn /bin/bash wird ausgeführt. Ich verstehe auch, dass verschiedene Programme unterschiedliche Einstellungsdateien haben (z. B. .Rprofile für R). Aber ich würde mich über eine Klarstellung freuen:

  • Sind *rc und *profile Dateien grundlegend anders?
  • Welchen Umfang haben solche Dateien (z. B. welche Dateien werden üblicherweise unter Linux verwendet)
  • Gibt es eine Hierarchie (z.B. .bashrc überschreibt Variablen, die in .settings gesetzt sind )
  • Was ist eine gute Referenz für diese Dateiklasse? Für die Optionen in diesen Dateien?

Verknüpfte Fragen

  • „Wie greife ich in emacs-ess auf eine Bash-Umgebungsvariable innerhalb von R zu?“
  • „Unterschied zwischen dem Starten einer Anwendung über eine Tastenkombination und dem Terminal?“

Akzeptierte Antwort:

Die Organisation von Konfigurationsdateien ist viel weniger einheitlich, als Ihre Fragen vermuten lassen. Es gibt keine „Klasse“, es gibt keine „Hierarchie“ und es gibt keinen globalen „Konfigurationszaren“ oder Ausschuss, der eine gemeinsame Syntax oder andere schöne, saubere Verallgemeinerungen wie die, die Sie suchen, erlässt. Es gibt nur eine Vielzahl separater Anwendungen wie R , bash , screen und die GNOME-Desktop-Umgebung, die alle ihre eigenen Vorgehensweisen haben, daher sollten Sie sich die Dokumentation für jedes einzelne Programm ansehen, um spezifische Antworten zu finden Fragen zu einer bestimmten Datei. Wenn es ad-hoc erscheint, liegt das daran, dass die meiste Unix-/Linux-Software da draußen für unterschiedliche Zwecke von verschiedenen Leuten entwickelt wurde, die alle etwas anders mit der Konfiguration umgegangen sind.

Um Ihre anderen Fragen punktuell zu beantworten:

  • *rc und *profile bedeuten nicht viel, daher kann diese Frage nicht wirklich beantwortet werden. „rc“ ist lediglich eine gebräuchliche Abkürzung oder ein Suffix für Konfigurationsdateien. Seine Etymologie reicht bis in die Antike (in Computerjahre) zurück und bedeutet wahrscheinlich Befehle ausführen (von runcom). Nur weil Anwendungen dasselbe Wort verwenden, heißt das nicht, dass sie sich auf Konventionen einigen. „Profil“ ist ein viel selteneres Suffix.

  • Definiere „Geltungsbereich“. Die meisten Anwendungen teilen keine Konfigurationsdateien mit anderen nicht verwandten Anwendungen. Die einzige mögliche Ausnahme ist /etc/profile und .profile , die von mehreren verschiedenen Shells verwendet werden kann (einschließlich mindestens sh und bash ). Jedem laufenden Prozess ist eine sogenannte Umgebung zugeordnet, die Variablen enthalten kann, die das Verhalten des Prozesses beeinflussen können. Im Allgemeinen werden Umgebungsvariablen durch die entsprechenden Shell-Konfigurationsdateien oder vielleicht die Konfigurationsdateien der von Ihnen verwendeten grafischen Desktop-Umgebung gesetzt. Es gibt auch Konfigurationsdateien für „Bibliotheken“, wie .inputrc für readline und .gtkrc* für GTK, die jede Anwendung betrifft, die die Bibliothek verwendet.

  • Nein, es gibt keine globale Hierarchie für Konfigurationsdateien. Siehe auch hier die Dokumentation für das betreffende Programm, zum Beispiel bash Handbuch für bash . Eine allgemeine Konvention, auf die Sie sich normalerweise verlassen können, ist, dass Benutzereinstellungen in $HOME Überschreiben Sie die systemweite Konfiguration in /etc . Dies wird normalerweise erreicht, indem die Benutzerdatei nach der Systemdatei gelesen wird, sodass spätere Einstellungen frühere überschreiben. Dies ist jedoch keine Garantie, und endgültige Antworten finden Sie in der Dokumentation für das jeweilige Programm, das Sie verwenden.

  • Es gibt keine „Klasse“, zumindest keine, die allgemein genug ist, um alle Dateien zu umfassen, die Sie in Ihrer Frage aufgelistet haben, daher ist die Frage nach einer Referenz für eine solche „Klasse“ strittig. Siehe auch hier die Dokumentation des spezifischen Programms, das Sie verwenden.

Verwandte:Ordner mit mv zusammenführen?
Linux
  1. Befehl grpck – Entfernen Sie beschädigte oder doppelte Einträge in den Dateien /etc/group und /etc/gshadow.

  2. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

  3. Unterschied zwischen /etc/crontab und crontab -e

  4. Was ist die Verbindung zwischen den Verzeichnissen /etc/init.d und /etc/rcX.d in Linux?

  5. Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Warum haben die Verzeichnisse /home, /usr, /var usw. alle dieselbe Inode-Nummer (2)?

Unterschied zwischen /etc/hosts und /etc/resolv.conf

So richten Sie /etc/issues ein, um die IP-Adresse für eth0 anzuzeigen