Shell 启动脚本 — flowblok 的博客

主要观点:

  • 最初写博客时旨在描述当时典型系统的工作情况,但 bash 启动脚本的操作依赖于操作系统发行版添加的补丁、编译时选项以及 bash 认为是否由 sshd 或 rshd 调用等,建议读者自行测试。
  • 常规 shell 用户的家目录中通常有.bash_profile 或.bashrc 脚本,用于设置环境变量、别名等。
  • 为处理 bash 和 zsh 相关事宜,定义了新的 dotfile 文件夹,分别用于不同类型的 shell。
  • 环境变量相关设置应放在 login 文件,别名或终端特定环境变量设置应放在 interactive 文件。
  • 介绍了各种 shell 启动文件的执行情况及特殊情况,包括非登录非交互式 shell 等,还提供了相关实现的存储库及图表。

关键信息:

  • 有不同类型的 shell,如非交互式 shell、非登录 shell 等,其启动文件执行顺序不同。
  • 定义了.bash/、.zsh/、.sh/和.shell/等文件夹用于存放不同类型的启动文件。
  • 不同类型的环境变量设置应放在不同的文件中,避免常见的危险设置。
  • 介绍了各种 shell 启动文件的实际执行情况与 man 页描述的差异。

重要细节:

  • 常规用户家目录中的.bash_profile 或.bashrc 脚本的作用。
  • 新定义的 dotfile 文件夹及其包含的文件类型。
  • 不同 shell 启动文件的执行顺序,如 env -> login(登录 shell)-> interactive(交互 shell)-> logout(登录 shell 结束时执行)。
  • 非登录非交互式 shell 运行 plain POSIX shell 时的特殊情况。
  • bash 远程 shell 模式的检测及路径差异。
  • 提供了包含实现和图表的存储库链接,欢迎提交 pull request 或评论。
阅读 14
0 条评论