更改登录 shell

更改登录 shell

如果我将我的 shell 更改为chsh我自己编写的 shell,它需要执行哪些脚本?我已经尝试更改为我自己的 shell,令人惊讶的是,它工作正常,没有错误消息。现在这是否意味着登录 shell 自己决定运行哪些脚本,并且没有登录 shell 必须运行的脚本?

我认为.login 或.aliases 或类似程序一直在运行。

答案1

profile文件始终由登录 shell 运行,如果您希望其他脚本由登录 shell 调用,请在profile

答案2

取决于你的外壳的设计。

它符合 POSIX 标准吗?

如果是,则您的 shell 需要ENV在任何交互式会话开始时读取环境变量并读取/执行变量引用的文件的内容ENV。根据标准,无需读取其他文件。就启动时读取文件而言,这是 POSIX 一致性的最低要求。

那么定制怎么样?

问题是,如今大多数 shell 在启动会话时都使用特定文件来读取/获取/执行。不同会话类型的文件有所不同。例如,在启动登录交互会话时bash,获取文件/etc/profile~/.bash_profile~/.bash_login、中的一个~/.profile(按顺序第一个可用)。大多数流行的 shell 也这样做,但这同样是一种设计决策,而不是标准。

相关内容