Perfil de Ash / archivo de configuración

26

Estoy buscando una manera de personalizar las sesiones de Ash con mis propios conjuntos de aliases y otras cosas. ¿Cuál es el equivalente de Ash de los bashrcarchivos de Bash ?

reg
fuente

Respuestas:

21

Ash primero lee los siguientes archivos (si existen):

  • Sistema: /etc/profile
  • Usuario: ~/.profile
reg
fuente
8
Siempre que se ejecute como el shell de inicio de sesión, que no es el predeterminado (por ejemplo, en Alpine Linux / Docker)
Jakub Holý
2
@ JakubHolý, ¿encontró una manera de ejecutar el script de perfil para el shell sin inicio de sesión?
David Lukac
@DavidLukac - Vea mi otra respuesta aquí para shells sin inicio de sesión.
Spechter
8

Un shell sin inicio de sesión también leerá un archivo si se especifica en la variable de entorno ENV.

Entonces, si configura eso de alguna manera (tal vez en su ~ / .profile, o algún otro control de entorno 'general'), entonces cualquier shells bifurcados futuros ejecutarán ese script. Muy útil para casos sin inicio de sesión.

Es difícil encontrar documentación sobre esto, pero se confirma que funciona en busybox-w32 (que se ejecuta en Windows). De hecho, es difícil encontrar buena documentación sobre el conjunto de características de ash.

ACTUALIZACIÓN: Hay una variedad de variantes de cenizas en la naturaleza. 'ENV' puede no funcionar con todos ellos. Aquí hay información sobre variantes: https://www.in-ulm.de/~mascheck/various/ash/

Hay una sugerencia de que algunas variantes de ceniza pueden usar 'SHINIT' en lugar de ENV.

Spechter
fuente
No funciona para mí en Alpine 3.7.
Knite
La ceniza de @knite Busybox (utilizada por Alpine) usa ENV .
kirbyfan64sos
¿La variable ENV o SHINIT solo se debe establecer o establecer en un valor específico? Estoy tratando de forzar a Docker a leer .profile en /root/.profile sin comenzar explícitamente con / bin / sh -l
Leon
@Leon: ENV (o tal vez SHINIT) necesita contener la ruta completa del archivo para cargar / fuente. Pero esto es solo para el inicio de las variantes de shell 'ash', no los shesh comunes o bash shells.
Spechter