Ich habe in drei Profilskripte ein Echo eingefügt, das den Dateinamen anzeigt, sodass ich die Reihenfolge sehen kann, in der sie ausgeführt werden.
Wenn ich mich anmelde, sehe ich.
/etc/profile
/etc/profile.d/color-ls
~/.bashrc
/etc/bashrc
$ alias ls
alias ls='ls --ignore=*.pyc --color'
Doch wenn ich eine Bildschirmsitzung starte, sehe ich
~/.bashrc
/etc/bashrc
/etc/profile.d/color-ls
$ alias ls
alias ls='ls --color=tty'
Der Alias, den ich in ~/.bashrc eingerichtet habe, wird von color-ls überschrieben, aber nur innerhalb des Bildschirms. Gibt es eine Möglichkeit, dieses lästige Verhalten zu umgehen?
Antwort1
Lesen Sie zuerstMann bash(Abschnitt „Anrufung“) darüber, wannwelche Dateitatsächlich genutzt wird.
Ihre kleine „Spur“ zeigt Ihnen, dass Ihre~/.bashrc
stetsQuellen /etc/bashrc
, die dann aufrufen color-ls
... odernicht, abhängig vom Code, /etc/bashrc
wie es scheint.
Es gibt also zwei Möglichkeiten, das Problem zu lösen:
- Prüfen Sie, unter welchen Umständen
/etc/bashrc
von einer Beschaffung Abstand genommen wirdcolor-ls
. - Richten Sie Ihre Aliase nach Ihren
~/.bashrc
Prozessen ein/etc/bashrc
.