21

I am looking for a way to customize Ash sessions with my own sets of aliases and whatnots. What is the Ash equivalent of Bash's bashrc files?

18

Ash first reads the following files (if they exist):

  • System: /etc/profile
  • User: ~/.profile
  • 7
    Provided that it is run as the login shell, which isn't the default (e.g. in Alpine Linux / Docker) – Jakub Holý Feb 1 '17 at 10:29
  • 2
    @JakubHolý did you find a way to run profile script for non-login shell? – David Lukac Nov 28 '17 at 13:20
  • @DavidLukac - See my other Answer here for non-login shells. – spechter Jan 22 '18 at 0:21
7

A non-login shell will also read a file if specified in the environment variable ENV.

So if you set that somehow (Maybe in your ~/.profile, or some other 'overarching' environment control), then any future forked shells will run that script. Very handy for non-login cases.

It's hard to find documentation on this, but it is confirmed to work on busybox-w32 (running on Windows). In fact it's hard to find good documentation on the featureset of ash at all.

UPDATE: There are a range of ash variants in the wild. 'ENV' may not work with all of them. There is some info on variants here: https://www.in-ulm.de/~mascheck/various/ash/

There is a suggestion in there that some ash variants may use 'SHINIT' in place of ENV.

  • Not working for me under Alpine 3.7. – knite Jun 14 '18 at 22:50
  • @knite Busybox's Ash (used by Alpine) uses ENV. – kirbyfan64sos Nov 26 '18 at 0:34
  • Has the ENV or SHINIT variable just to be set or to be set to a specific value? I am trying to force docker to read .profile in /root/.profile without explicitly starting with /bin/sh -l – Leon Apr 17 at 21:12
  • @Leon - ENV (or maybe SHINIT) needs to contain the full path of the file to load/source. But this is only for startup of ‘ash’ shell variants - not the common sh or bash shells. – spechter Apr 19 at 5:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.