灰资料/配置文件


26

我正在寻找一种使用我自己的aliases和whatnots 定制Ash会话的方法。Bash bashrc文件的Ash等同于什么?

Answers:


21

Ash首先读取以下文件(如果存在):

  • 系统: /etc/profile
  • 用户: ~/.profile

8
前提条件是它作为登录shell运行,这不是默认值(例如,在Alpine Linux / Docker中)
JakubHolý17年

2
@JakubHolý您找到了一种运行非登录Shell的配置文件脚本的方法吗?
David Lukac

@DavidLukac-有关非登录外壳,请参阅我的其他答案。
Spechter

8

如果在环境变量ENV中指定,则非登录外壳程序还将读取文件。

因此,如果您以某种方式进行设置(也许在您的〜/ .profile中,或在其他“总体”环境控件中),那么将来任何分叉的shell都将运行该脚本。对于非登录情况非常方便。

很难找到关于它的文档,但是已经确认可以在busybox-w32(在Windows上运行)上工作。实际上,很难找到有关ash功能集的良好文档。

更新:野外有一系列的灰变种。“ ENV”可能不适用于所有这些。这里有一些有关变体的信息:https : //www.in-ulm.de/~mascheck/various/ash/

有一个建议是,某些灰分变体可以使用“ SHINIT”代替ENV。


在Alpine 3.7下无法为我工作。
knite

@knite Busybox的Ash(由Alpine使用)使用ENV
kirbyfan64sos

ENV或SHINIT变量是仅要设置还是要设置为特定值?我试图强迫docker读取/root/.profile中的.profile,而无需显式以/ bin / sh -l开头
Leon

@Leon-ENV(或SHINIT)需要包含要加载/源文件的完整路径。但这仅用于启动“ ash” shell变体,而不是普通的sh或bash shell。
Spechter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.