登录/非登录、交互/非交互式shell

登录与非登录shell的:

区分:是否需要输入用户名密码。

转换:

非登录可以转换成登录 使用--login

考虑转换情况,相对科学的区分:既不使用密码,也不使用--login转换的是非登录,其他都是登录。

登录与非登录运行shell的区别:

对于Bash来说,登录shell会首先读取和执行/etc/profile全局配置文件中的命令,然后依次查找~/.bash_profile、~/.bash_login 和 ~/.profile这三个配置文件,读取和执行这三个中的第一个存在且可读的文件中命令。除非被“–noprofile”选项禁止了。

在非登录shell里,只读取 ~/.bashrc (和 /etc/bash.bashrc、/etc/bashrc )文件,不同的发行版里面可能有所不同。


交互式与非交互式shell:

区分:是否与用户进行交互(在终端上执行,shell等待你的输入,并且立即执行你提交的命令。

交互式与非交互式shell运行时的区别:

交互式shell下打开进程时,会启用工作控制job control(会影响到其子进程进程组的编号,作业控制模式下被shell打开的进程,进程组号为进程号),否则不会启用(其打开的进程组号继承父进程的进程组,既运行脚本的非交互式shell进程)。这是linux在作业控制中的设计,我准备另起文章探讨。在shell脚本中,使用set -m可以改变脚本的运行模式开启工作控制。


是否登录与是否交互是两个维度的概念,两两组合的四种情况均会出现:

1、登录交互式  最常见的登录系统后进行操作使用的shell。

2、非登录非交互式  常见的shell脚本的运行方式。

3、非登录交互式   在shell中使用bash调出shell、在系统中打开命令行工具等。

4、登录非交互式   强制使用登录方式打开的shell脚本。可以改变脚本访问的全局文件,在不少情况下也需要使用(远程使用非登录shell调用脚本但需要登录的全局环境时适用)。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值