登录式 shell 和非登录式 shell

登录 shell 的途径

了解两种方式之间的区别,就要先了解 shell 的配置文件:

bash 的配置文件:

  • ~/.bash_profile
  • ~/.bashrc
  • /etc/profile
  • /etc/profile.d/*.sh
  • /etc/bashrc
  • 全局配置文件
  • 个人配置文件

由上可知,bash 的配置文件分别为 profile 类文件和 bashrc 类文件:

  1. 设定环境变量。
  2. 运行命令或脚本(登录时运行的脚本)。

profile 类文件作用:
bashrc 类文件配置作用:

  • 设定本地变量。
  • 定义命令别名

了解以上配置文件后,则:

  • 登录式 shell 读取配置 文件过程:

/etc/profile–>/etc/profile.d/*.sh–>~/.bash_profile –>~/.bashrc–>/etc/bashrc

  • 非登录式 shell 读取配置 文件过程:

~/.bashrc–>/etc/bashrc–>/etc/prodile.d/*.sh

image.png

而登录式 shell 和非登录式 shell 的运行形式如下:

登录式 shell:

  • 正常通过某终端登录的 shell。
  • su - username。
  • su -l username。

非登录式 shell:

  • su username。
  • 图形终端下打开的命令窗口。
  • 自动执行的 shell 脚本。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容