Profil Ash / plik konfiguracyjny

26

Szukam sposobu na spersonalizowanie sesji Ash z własnymi zestawami aliases i tym podobne. Jaki jest odpowiednik bashrcplików Ash Bash ?

reg
źródło

Odpowiedzi:

21

Ash najpierw czyta następujące pliki (jeśli istnieją):

  • System: /etc/profile
  • Użytkownik: ~/.profile
reg
źródło
8
Pod warunkiem, że jest uruchamiany jako powłoka logowania, która nie jest domyślna (np. W Alpine Linux / Docker)
Jakub Holý
2
@ JakubHolý, czy znalazłeś sposób na uruchomienie skryptu profilu dla powłoki niezalogowanej?
David Lukac
@DavidLukac - Zobacz moją inną odpowiedź tutaj, aby uzyskać powłoki niezalogowane.
spechter
8

Powłoka niezalogowana odczyta również plik, jeśli jest określony w zmiennej środowiskowej ENV.

Jeśli więc jakoś to ustawisz (być może w twoim ~ / .profile, lub w innej „nadrzędnej” kontroli środowiska), to wszelkie przyszłe rozwidlone powłoki uruchomią ten skrypt. Bardzo przydatny w przypadkach niezalogowanych.

Trudno znaleźć dokumentację na ten temat, ale potwierdzono, że działa na busybox-w32 (działającym w systemie Windows). W rzeczywistości trudno w ogóle znaleźć dobrą dokumentację dotyczącą zestawu funkcji popiołu.

AKTUALIZACJA: Istnieje wiele wariantów popiołu na wolności. „ENV” może nie działać z wszystkimi z nich. Tutaj jest kilka informacji na temat wariantów: https://www.in-ulm.de/~mascheck/various/ash/

Istnieje sugestia, że ​​niektóre warianty popiołu mogą używać „SHINIT” zamiast ENV.

spechter
źródło
Nie działa dla mnie pod Alpine 3.7.
knite
@ Ash Ash Busybox (używany przez Alpine) używa ENV .
kirbyfan64sos
Czy zmienną ENV lub SHINIT należy tylko ustawić, czy ustawić na określoną wartość? Próbuję zmusić dokera do odczytu pliku .profile w katalogu /root/.profile bez jawnego rozpoczynania się od / bin / sh -l
Leon,
@Leon - ENV (a może SHINIT) musi zawierać pełną ścieżkę pliku do załadowania / źródła. Ale dotyczy to tylko uruchamiania wariantów powłoki „jesionowej” - nie zwykłych pocisków sh lub bash.
spechter