Ich bin also ziemlich neu in Linux und habe kürzlich Fedora 19 auf meinem Netbook installiert. Ich möchte ein tieferes Verständnis von Linux und der CLI haben und lese jetzt Learn Linux: The Hard Way .
In Übung 3 gibt der Autor folgende Befehle:
- ls -al
- Kat. Profil
Ich versuche diese Anweisungen zu befolgen, aber ohne Erfolg. In meinem Benutzernamenverzeichnis befindet sich keine .profile-Datei, wie ich aus ls -al ersehen kann. Nach dem, was ich gelernt habe, sind die Dateien .bash_profile und .profile praktisch gleich. Der einzige Unterschied, den ich aus meiner Forschung gezogen habe, ist, dass .bash_profile zuerst überprüft wird.
Was ich nicht verstehe ist, warum es unter Linux mehrere Dateien für dieselbe Funktion gibt, warum der Autor .profile und nicht .bash_profile verwendet (wenn ich das richtig verstehe, wird .profile nicht gelesen, wenn das System zuerst .bash_profile findet). und wie kommt es, dass ich die .profile-Datei nicht auf meinem System habe?
Antworten:
Das
.profile
stammt aus der ursprünglichen Bourne-Shell, bekannt alssh
. Da die GNU-Shellbash
(abhängig von ihren Optionen) eine Obermenge der Bourne-Shell ist, können beide Shells dieselbe Startdatei verwenden. Vorausgesetzt, es werden nursh
Befehle eingegeben.profile
Zum Beispiel
alias
ist ein gültiger eingebauter Befehl vonbash
aber unbekanntsh
. Wenn Sie also nur eine.profile
in Ihrem Home-Verzeichnis hätten und einealias
Erklärung darin ablegensh
würden , würden Sie sich beschweren. Es gibt also eine Bash-spezifische Datei mit Shell-Initialisierungsbefehlen, die Bash genau dann liest, wenn keine.profile
Datei vorhanden ist.Eigentlich ist das in einigen Installationen etwas zu einfach, und ich kenne Fedora nicht. Wird unter bash
/etc/profile
von der Shell vor allen Dateien in Ihrem Home-Verzeichnis gelesen. Wenn es ein systemweites Initialisierungsskript gibt, sagt es oft so etwas wieWarum ist das so? Ein Versuch der Kompatibilität über Jahrzehnte von Shell-Dialekten. Warum ist das Tutorial so geschrieben? Die Bourne-Shell wird nicht mehr oft verwendet und einige Leute wissen nicht einmal, dass es eine andere Bourne-ähnliche Shell als Bash gibt. Selbst wenn die (eingeschränkte) Bourne-Syntax für eine bessere plattformübergreifende Kompatibilität verwendet wird, wird sie häufig von
dash
POSIX ausgeführt oder im POSIX-Kompatibilitätsmodus ausgeführt. In der Tat ist die eigentliche Bourne-Shell-Quelle wahrscheinlich eine Copyright-Komponente von Unix System V, die derzeit Eigentum von Novell zu sein scheint, aber ich habe keine Ahnung, was sie damit machen, wenn überhaupt.Verwenden Sie für den Anfänger einen
$HOME/.profile
oder$HOME/.bash_profile
beide, aber nicht beide, und alles wird gut. Da Sie bereits damit.bash_profile
arbeiten, weil es möglicherweise systemspezifische Dinge enthält, die Ihre Installation benötigt.quelle
alias
Wird von POSIX benötigt, daher gibt es nicht vielesh
, die nichts davon wissen.