Antworten:
Wenn Sie möchten, dass es global ist, ändern Sie es
/etc/profile
oder fügen Sie ein Skript hinzu
/etc/profile.d
Wenn Sie möchten, dass es benutzerspezifisch ist, ändern Sie es
/home/$USER/.profile
/usr/local/bin/pihole -cBefehl für die automatische Anmeldung eines bestimmten Benutzers auszuführen . Diese Zeile wurde hinzugefügt zu /home/$USER/.profile- nichts passiert. Wenn ich ein Skript hinzufüge, /etc/profile.dfunktioniert es, aber es ist global und wird ausgeführt, selbst wenn ich eine SSH-Sitzung öffne (was nicht das ist, was ich will). Das Hinzufügen zu .bashrcfunktioniert auch, wird aber jedes Mal ausgeführt, wenn ich eine neue Shell öffne (was nicht das ist, was ich will). Frage: Warum würde das Hinzufügen zu /home/$USER/.profilenicht funktionieren ???
Fügen Sie einfach das Bash-Skript zu den Startanwendungen hinzu.
Geben Sie im Befehlsfeld ein
bash /full/path/to/bash/script.sh/
Wenn Sie bashspezifischer sein möchten, können Sie Ihren Code auch in ~ / .bash_profile oder ~ / .bash_login schreiben.
Und Sie können jedes Skript darin zum Beispiel beziehen:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
/etc/profileoder $HOME/.profileoder$HOME/.bash_profile
Ich würde dringend empfehlen, nicht zu verwenden, /etc/profile.d/yourscript.shwenn es Ausgabe erzeugt. Wenn Sie eine nicht interaktive Sitzung verwenden, erhalten Sie eine $TERM is not setNachricht. Dies macht sich bei Verwendung des ssh-Protokolls wie scp bemerkbar. Normalerweise keine große Sache, aber Veeam mag es nicht und wird eine Warnung auslösen. Ich weiß, dass Veeam hier nicht das Thema ist, aber es ist erwähnenswert, dass nicht alle Anwendungen die $TERM is not setWarnung ordnungsgemäß ignorieren .
Kurz gesagt, wenn das Skript eine Ausgabe generiert, platzieren Sie diese an den in der ersten Zeile angegebenen Stellen. Wenn Sie jedoch die Umgebung ändern und Ihr Skript keine Ausgabe generiert, verwenden Sie Letzteres.
.shwenn Sie Ihr Skript in setzen/etc/profile.d/.chmode +x /etc/profile.d/myscript.shnatürlich auch.