我了解交互式 shell 和非交互式 shell 之间的基本区别。但是,登录 shell 与非登录 shell 的确切区别是什么?
你能举例说明非登录交互式shell 的使用吗?
我找到了三个配置文件。
.xinitrc
.xsession
.xsessionrc
我知道第一个用于使用startx
,第二个和第三个用于使用显示管理器。但是后两者有什么区别呢?
我想知道 linux 操作系统给出的标准环境变量如 PATH、HOME 是如何自动设置的。这些是从哪个文件中读取的。当特定用户登录时,应该有一些文件从中设置这些变量。
如何让 ash 在启动时加载一些环境变量?
只需将它们放在 /etc/profile 中
/etc/profile 仅为登录 shell 读取;使用 docker(使用 alpine>busybox>ash)时经常弹出的非登录 shell 呢?
如果在环境变量 ENV 中指定,则非登录 shell 将读取文件
太好了,我如何确保设置了 ENV?它本身是一个环境变量,默认为空白。
本质上,我正在寻找一些保证 ash 可以读取的总体配置文件。对 busybox 使用的 ash 版本的偏好(BusyBox v1.28.4,如果你想准确的话)。这样的事情存在吗?是的,我知道 docker 中的 ENV 指令,它可用于在构建 docker 镜像时设置 $ENV;我仍然想知道这在 docker 之外是否可行。
作为旁注,谁能解释这种在高山的奇怪行为?
$docker run -it alpine
/ # echo $CHARSET #proof /etc/profile has not run
/ # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/ # env -i sh -c 'echo $PATH'
/sbin:/usr/sbin:/bin:/usr/bin
/ # echo $ENV
/ #
Run Code Online (Sandbox Code Playgroud)
当我们可以显示 /etc/profile 没有时,与为新 …