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

原创 2017年01月03日 23:02:04

登录与非登录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调用脚本但需要登录的全局环境时适用)。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux下使用SSH非交互式远程执行命令脚本

原创文章,转载请注明— 作者: 黄文海 出处: http://viscent.iteye.com/      http://blog.viscenthuang.info       非交互式在远...

bash 深入理解:交互式shell和非交互式shell、登录shell和非登录shell的区别

摘要:在进行环境变量设置和命令别名的设置的时候,常常会接触到四个概念:交互式bash、非交互式bash、login bash和no login bash。本文主要来澄清这四个概念。 本文来源:ba...

bash学习之一:登陆、非登陆shell,交互、非交互shell,以及它们的startup文件

家目录下的配置文件.bashrc中rc的含义是resource configuration什么是登陆shell?什么是非登陆shell?登陆shell是指:(1)用户登陆时,输入用户名和密码后启动的s...

MAC下终极 Shell——ZSH

原文地址:http://zhuanlan.zhihu.com/mactalk/19556676 在开始今天的 MacTalk 之前,先问两个问题吧: 1、相对于其他系统,Mac 的主要优势是什么?...

Linux Shell Bash 交互与非交互式脚本

http://blog.163.com/howl_prowler/blog/static/266197152009524105126976/

交互式shell和非交互式shell、登录shell和非登录shell的区别

也算写过一些Bash脚本的人了,不过对与这几个概念,还不是很清楚,于是恶补了一下。 交互式shell和非交互式shell、登录shell和非登录shell的区别。 首先,这是两个不同的维度来划分的...

交互式SHELL和非交互式SHELL、登录SHELL和非登录SHELL的区别

曾经写过“交互式shell和非交互式shell、登录shell和非登录shell的区别”,但那时理解相对更浅一些,现在多了一点认识,把这篇文章稍微完善一下吧。 交互式shell和非交互式shel...
  • wisgood
  • wisgood
  • 2016年07月27日 11:05
  • 2985

/etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的区别

线上的memcached又挂了,仍然没有得到core文件。排查原因,同事发现启动memcached的脚本存在可疑问题。 问题一:没有设置memcached工作目录,有可能core dump时没有工作目...

OpenGL ES之GLSurfaceView学习二:非交互式的实例

使用GLSurfaceView开发3D应用时,如果是非交互式的应用,可以直接使用GLSurfaceView。如果需要交互式的行为,则需要继承GLSurfaceView并重写一些方法。交互式应用示例见下...

非交互式分区 (用脚本自动分区)

用脚本自动分区
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:登录/非登录、交互/非交互式shell
举报原因:
原因补充:

(最多只允许输入30个字)