Ich habe dies als letzte Zeile in meinem .profile:
alias gl="cd /home/jrenner/glances/glances"
Doch auch nach dem Neustart wird der Befehl bei der Eingabe von gl nicht gefunden. Was ist los? Ich bin als der richtige Benutzer angemeldet.
command-line
bash
alias
.profile
Talloaktrees
quelle
quelle
gl
? Das Terminal? Die GUI?.profile
in keinem von mir versuchten Kontext funktionieren: Textkonsolenanmeldungen, grafische Terminals oder irgendetwas anderes, obwohl Umgebungsvariablen aus derselben Datei funktionieren.Antworten:
Ich bin mir ziemlich sicher, dass die Idee von lpanebr funktionieren wird, aber hier ist eine elegantere Lösung. Führen Sie diesen Alias-Befehl in
.bashrc
aus. So mache ich das, oder einige Leute ziehen es vor, eine Alias-Datei hinzuzufügen. Nennen Sie es.alias
oder was auch immer und fügen.alias
Sie es hinzu.bashrc
Ich wünschte, ich könnte wie @lpanelbr formatieren. Ich frage mich, ob es ein Wiki gibt.
quelle
.bashrc
, während.profile
nicht? Gibt es auch einen Grund, warum Sie die Alias-Datei.allias
nicht benannt haben.alias
?Es gibt zwei verwandte Gründe, warum Aliase nicht immer funktionieren, wenn sie in die
.profile
Datei eingefügt werden. Das erste ist, dass die.profile
(oder.bash_profile
) Datei nur für eine Anmeldeshell ausgeführt wird. Wenn Sie bash in einem Terminalfenster unter X starten, führt Ihr Terminalemulator (z. B. gnome-termanl) bash wahrscheinlich nicht als Login-Shell aus. [Die meisten haben die Möglichkeit, dies zu ändern, wenn Sie möchten, aber die Standardeinstellung (für gnome-termal sowieso) besteht darin, es nicht als Login-Shell auszuführen.]Die Shell ist eine interaktive Shell und
.bashrc
wird daher ausgeführt.Normalerweise wurde Bash jedoch als Anmeldeshell ausgeführt, als die X-Sitzung gestartet wurde. Wenn also Alias-Befehle enthalten
.profile
sind, wurden diese zusammen mit dem Festlegen von Umgebungsvariablen wie PATH usw. ausgeführt. Wenn ein Terminalfenster geöffnet wird, wird eine neue Instanz von bash ausgeführt, um zur Eingabe aufzufordern und Befehle in diesem Terminalfenster auszuführen. Im Gegensatz zu Umgebungsvariablen können Aliase nicht von einer Bash-Instanz in eine neue exportiert werden, die von ihr gestartet wurde. Die Aliase werden also nicht an die neue Shell weitergegeben.Versuchen Sie dieses Experiment, um dies zu sehen:
Beachten Sie, dass
.bashrc
bash nicht ausgeführt wird, wenn es als Anmeldeshell gestartet wird. Das Platzieren Ihrer Aliase dort funktioniert also nicht immer, es sei denn, Ihre.bashrc
stammen von Ihnen.profile
, was eine sehr verbreitete Praxis ist.quelle
source .bashrc
wurde.bash_profile
der in .bashrc festgelegte Alias aktiviert.Wenn Sie bash (
echo $SHELL
) als Shell-Interpreter verwenden, ist es meiner Meinung nach am besten (oder vielleicht der einzige Weg), wenn Sie Ihre eigene CD-Funktion definieren.Bearbeiten Sie Ihre
.bashrc
Datei und fügen Sie am Ende Folgendes hinzu:Sie können es auch so erweitern:
und wechseln Sie direkt in ein Unterverzeichnis und listen Sie dessen Inhalt auf.
quelle
alias
in die.profile
Datei eingefügte Direktive fehlschlägt.Dies war ein Problem mit meinem Server. Simple
source .profile
hat aus irgendeinem Grund nicht funktioniertquelle