Sollte .bashrc nicht jedes Mal ausgeführt werden, wenn ich mich anmelde?

Sollte .bashrc nicht jedes Mal ausgeführt werden, wenn ich mich anmelde?

Ich bin relativ neu bei Ubuntu, also verzeihen Sie mir, wenn ich mich komisch ausdrücke... Ich möchte eigentlich nur meinen ls-Befehl ändern inls --color=always -ragX

Das ist gelöst... Alias ​​reicht. Um das nun bei jedem Login auszuführen (per SSH von Putty in die Kommandozeile), habe ich .bashrcin meinem Home-Verzeichnis Folgendes erstellt und eingegeben:

alias ls='ls --color=always -ragX'

gespeichert, beendet und wieder aufgerufen

getipptvi

sieht aus, als würde die .bashrcDatei nicht ausgeführt? Und jetzt?

Antwort1

Sehenhttps://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files

Wenn Bash aufgerufen wird alsinteraktive AnmeldungShell oder als nicht interaktive Shell mit der Option --login liest und führt es zuerst Befehle aus der Datei aus /etc/profile, wenn diese Datei existiert. Nach dem Lesen dieser Datei sucht es in dieser Reihenfolge nach ~/.bash_profile, ~/.bash_login, und und ~/.profileliest und führt Befehle aus der ersten Datei aus, die existiert und lesbar ist. Die Option --noprofile kann beim Starten der Shell verwendet werden, um dieses Verhalten zu unterbinden.

Beachten Sie, dass das ~/.bashrcoben Genannte nicht erwähnt wird.

Wenn eininteraktivSchale, diekein LoginShell gestartet wird, liest und führt Bash Befehle aus ~/.bashrc, wenn diese Datei existiert. Dies kann durch die Verwendung der Option --norc verhindert werden. Die Dateioption --rcfile zwingt Bash, Befehle aus der Datei statt aus ~/.bashrc zu lesen und auszuführen.

Überprüfen Sie die Einstellungen Ihrer Terminalanwendung, um zu sehen, ob eine Anmelde-Shell gestartet wird oder nicht.

Alternativ können Sie dies zu Ihrem~/.bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

Antwort2

Einige Dinge sind zu beachten:

  1. .bashrc-Dateien werden nicht „ausgeführt“. Wenn Sie also in einer Liste von Prozessen nachsehen, werden Sie sie nirgends sehen, und das ist in Ordnung.

  2. bash liest die bashrc-Datei beim Start. Wenn Sie also Änderungen an Ihrer bashrc-Datei vornehmen, werden diese erst wirksam, wenn Sie bash das nächste Mal ausführen. Wenn Sie Änderungen an Ihrer bashrc-Datei testen, können Sie die Änderungen ganz einfach sehen, indem Sie bash erneut ausführen (öffnen Sie beispielsweise das Terminal und geben Sie dann „bash“ ein). Die Änderungen werden auch übernommen, wenn Sie sich von Ubuntu abmelden und dann wieder anmelden (das Sperren Ihres Bildschirms oder das Wechseln in den Standby-Modus funktioniert nicht, aber das Abmelden oder Neustarten funktioniert).

  3. Ihre .bashrc-Datei muss sich in Ihrem Home-Verzeichnis befinden. Sie können dies überprüfen, indem Sie die Datei wie folgt bearbeiten, vi ~/.bashrcanstatt nurvi .bashrc

Antwort3

Wie Muru bereits sagte, sollte sich standardmäßig (nach der ersten Anmeldung) eine .bashrc-Datei in Ihrem Home-Verzeichnis /home/IhrAnmeldename befinden

Um Ihre vorhandene Bashrc zu schützen, erstellen Sie bitte mit dem folgenden Befehl eine Kopie.

cp ~/.bashrc ~/mybashrc.backup

Anschließend können Sie die Standard-.bashrc-Datei wiederherstellen. Entfernen Sie dazu zunächst die vorhandene und kopieren Sie sie dann aus der systemweiten bashrc-Datei. Falls noch nicht geschehen, legen Sie die richtigen Berechtigungen für die Datei fest.

rm ~/.bashrc
cat /etc/bash.bashrc > ~/.bashrc
chmod 644 ~/.bashrc

Nehmen Sie anschließend Ihre Änderungen an der .bashrc-Datei in Ihrem Home-Konto vor. Wenn Sie fertig sind, müssen Sie sich nicht abmelden, anmelden oder neu starten. Laden Sie die bashrc einfach mit dem folgenden Befehl neu

source ~/.bashrc

Das sollte es schaffen....

Antwort4

In Ubuntu funktioniert die Bash-Anmeldung genauso wie in anderen Distributionen.

Sobald Sie den Alias ​​in Ihrer .bashrc-Datei hinzugefügt haben, wie Sie es mit folgendem getan haben:

alias ls='ls --color=always -ragX'

Damit ls bei jeder Anmeldung automatisch ausgeführt wird, können Sie es einfach zur letzten Zeile Ihrer .bashrcDatei hinzufügen.

lsWenn Sie die Ausgabe von oder beim Anmelden nicht sehen, ls --color=always -ragXliegt wahrscheinlich ein Fehler in Ihrer .bashrcDatei vor.

verwandte Informationen