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

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

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

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

Linux命令之非交互SSH密码验证-sshpass

ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码。 它允许你用 -p 参数指定明文密码,然后直接登...
  • u011453631
  • u011453631
  • 2014年02月26日 18:21
  • 18293

python之SSH(交互式和非交互式)

python中有一个paramiko,功能强大,用来做SSH比较方便 先上代码 import paramikoclass SSHConnection(object): def __init__...
  • u012322855
  • u012322855
  • 2017年09月04日 19:13
  • 1247

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

交互式shell和非交互式shell、登录shell和非登录shell的区别。 首先,这是两个不同的维度来划分的,一个是是否交互式,另一个是是否登录。 交互式shell和非交互式shell 交互...
  • yangzishiw
  • yangzishiw
  • 2016年10月28日 15:34
  • 469

登入shell和非登入shell的区别

使用启动脚本,可以让自定义的环境一劳永逸。          这些脚本在shell被创建时运行          根据shell是登入shell还是非登入shell,所运行的启动脚本也会不一样    ...
  • linwaterbin
  • linwaterbin
  • 2012年11月19日 23:32
  • 2550

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

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

关于登陆shell和非登陆shell的区别

问题描述:       实验室有一台用于Linux教学用的机器,为每一个学生在上面建了一个用户,作为上课用的。而我呢,正在做VLSI实验。因为那台机器持久开着,所以我为了方便就在上面也建了一个用...
  • q472599451
  • q472599451
  • 2012年08月14日 13:42
  • 2592

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

登录与非登录shell的区别: 直观区分方式:是否需要输入用户名密码。 转换: 非登录可以转换成登录 使用--login 考虑转换情况,相对科学的区分:既不使用密码,也不使用--login转换的是非登...
  • yaoxiaoyang
  • yaoxiaoyang
  • 2017年01月03日 23:02
  • 549

ssh自动输入密码登录服务器/ssh免输入密码登录/非交互ssh 密码验证

原文链接:http://hi.baidu.com/sdusoul/item/6a69b6953853e630326eeb21 由于经常需要登录一些远程的服务器,每次都需要将密码重输一遍,如下...
  • SCHOLAR_II
  • SCHOLAR_II
  • 2014年05月05日 10:41
  • 1820

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

线上的memcached又挂了,仍然没有得到core文件。排查原因,同事发现启动memcached的脚本存在可疑问题。 问题一:没有设置memcached工作目录,有可能core dump时没有工作目...
  • wang_xijue
  • wang_xijue
  • 2015年07月09日 17:56
  • 1441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:登录/非登录、交互/非交互式shell
举报原因:
原因补充:

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