Perfil de Ash / arquivo de configuração

26

Estou procurando uma maneira de personalizar as sessões do Ash com meus próprios conjuntos de aliases e outros itens. Qual é o equivalente do Ash nos bashrcarquivos do Bash ?

reg
fonte

Respostas:

21

O Ash lê primeiro os seguintes arquivos (se existirem):

  • Sistema: /etc/profile
  • Do utilizador: ~/.profile
reg
fonte
8
Desde que seja executado como o shell de login, o que não é o padrão (por exemplo, em Alpine Linux / Docker)
Jakub Holý
2
@ JakubHolý, você encontrou uma maneira de executar o script de perfil para o shell que não é de login?
precisa
@DavidLukac - Veja minha outra resposta aqui para shells que não são de login.
spechter
8

Um shell sem logon também lerá um arquivo se especificado na variável de ambiente ENV.

Portanto, se você definir isso de alguma forma (talvez em seu perfil ~ / .prof, ou em algum outro controle de ambiente "abrangente"), quaisquer futuros shells bifurcados executarão esse script. Muito útil para casos sem login.

É difícil encontrar documentação sobre isso, mas está confirmado que ele funciona no busybox-w32 (executando no Windows). De fato, é difícil encontrar boa documentação sobre o conjunto de recursos do ash.

ATUALIZAÇÃO: Há uma variedade de variantes de cinzas na natureza. 'ENV' pode não funcionar com todos eles. Há algumas informações sobre variantes aqui: https://www.in-ulm.de/~mascheck/various/ash/

Há uma sugestão de que algumas variantes de cinzas possam usar 'SHINIT' no lugar de ENV.

espectro
fonte
Não está funcionando para mim no Alpine 3.7.
Knite
A Ash do Busybox da @knite (usada pela Alpine) usa ENV .
kirbyfan64sos
A variável ENV ou SHINIT deve ser definida ou definida para um valor específico? Estou tentando forçar o estivador a ler .profile em /root/.profile sem iniciar explicitamente com / bin / sh -l
Leon
@Leon - ENV (ou talvez SHINIT) precisa conter o caminho completo do arquivo a ser carregado / fonte. Mas isso é apenas para a inicialização de variantes de shell 'ash' - não as conchas comuns sh ou bash.
spechter 19/04