Wenn Bash-Terminal startet, möchte ich, dass es einige Aliase automatisch setzt, aber aus irgendeinem Grund nicht richtig funktionieren.Wie wird automatisch ein Alias gesetzt, wenn bash in CentOS startet?
Ich habe eine Bash-Skript .bash_aliases
genannt, und in meiner .bashrc
Datei Ich habe den folgenden Code:
if [ -f .bash_aliases ]; then
echo "bash_aliases file is here"
./.bash_aliases
fi
in der Datei .bash_aliases
ich habe:
"creating alias for baaa"
alias baaa='echo "baaa"'
jetzt, wo ich das starten Terminal, sehe ich:
bash_aliases file is here
creating alias for baaa
Aber wenn ich versuche, die co mmand:
baaa
Ich bekomme das?
bash: baaa: command not found...
Wie macht das irgendeinen Sinn? Jedoch , wenn ich aus dem Terminal zu tun,
[<>@<> ~]$ alias baaa='echo "baaa"'
[<>@<> ~]$ baaa
baaa
, die erwartet wird. Warum funktioniert es nicht, einen Alias in .bash_aliases
Datei zu setzen? Ich stellte sicher, dass die Datei ausführbar war: sudo chmod 777 .bash_aliases
.
Ich benutze CentOS 7.
Wissen Sie, was der 'source' Befehl macht? '.' ist ein Alias für den Befehl' source'. –
Es ist absolut nicht notwendig, die Datei ausführbar zu machen. (Und nimm ** überhaupt ** 'chmod 777' nicht, das jedem Account auf dem System Schreibzugriff gewährt; dies schließt das Einschließen von anonymen Accounts wie' nobody' ein, die unter anderem zum Sandboxing von nicht vertrauenswürdigem Authentifizierungscode verwendet werden). –
Erlauben Sie nur genügend DAC-Berechtigungen für Dateien und Ordner. '777' lädt zu Ärger ein. Siehe [\ [this \]] (http://www.tldp.org/LDP/intro-linux/html/sect_03_04.html). – sjsam