Ash Profil / Konfigurationsdatei

26

Ich suche nach einer Möglichkeit, Ash-Sitzungen mit meinen eigenen Sätzen von aliasEs und Dingsbums anzupassen. Was ist das Asche-Äquivalent von Bashs bashrcDateien?

reg
quelle

Antworten:

21

Ash liest zuerst die folgenden Dateien (falls vorhanden):

  • System: /etc/profile
  • Benutzer: ~/.profile
reg
quelle
8
Vorausgesetzt, es wird als Anmeldeshell ausgeführt, was nicht die Standardeinstellung ist (z. B. in Alpine Linux / Docker)
Jakub Holý
2
@ JakubHolý haben Sie eine Möglichkeit gefunden, ein Profilskript für eine nicht angemeldete Shell auszuführen?
David Lukac
@DavidLukac - Siehe meine andere Antwort hier für nicht angemeldete Shells.
Spechter
8

Eine Shell ohne Anmeldung liest auch eine Datei, wenn dies in der Umgebungsvariablen ENV angegeben ist.

Wenn Sie das also irgendwie einstellen (vielleicht in Ihrem ~ / .profile oder in einer anderen "übergreifenden" Umgebungssteuerung), werden alle zukünftigen Forked-Shells dieses Skript ausführen. Sehr praktisch für Nicht-Login-Fälle.

Es ist schwierig, eine Dokumentation zu diesem Thema zu finden, aber es wurde bestätigt, dass es auf busybox-w32 (unter Windows) funktioniert. Tatsächlich ist es schwierig, überhaupt eine gute Dokumentation zum Featureset von ash zu finden.

UPDATE: Es gibt eine Reihe von Aschevarianten in freier Wildbahn. 'ENV' funktioniert möglicherweise nicht mit allen. Hier gibt es einige Infos zu Varianten: https://www.in-ulm.de/~mascheck/various/ash/

Es gibt einen Vorschlag, dass einige Aschevarianten 'SHINIT' anstelle von ENV verwenden könnten.

Spechter
quelle
Ich arbeite nicht unter Alpine 3.7.
Knite
@knite Busybox's Ash (von Alpine verwendet) verwendet ENV .
kirbyfan64sos
Muss die Variable ENV oder SHINIT nur gesetzt oder auf einen bestimmten Wert gesetzt werden? Ich versuche, Docker zu zwingen, .profile in /root/.profile zu lesen, ohne explizit mit / bin / sh -l
Leon,
@Leon - ENV (oder SHINIT) muss den vollständigen Pfad der zu ladenden / zu quellenden Datei enthalten. Dies ist jedoch nur für das Starten von 'ash'-Shell-Varianten gedacht - nicht für die üblichen sh- oder bash-Shells.
Spechter