首页 > 其他分享 >bash的四种模式

bash的四种模式

时间:2022-08-22 18:37:49浏览次数:100  
标签:non shell 模式 bash login interactive 四种 加载

记录下今天在工作遇到的问题。
大致的问题是我以某种方式通过ssh登陆到服务器上执行一些指令,导致指令运行结果不符合预期。
导致问题的根本原因是bash的四种模式,bash在不同的模式下会加载不同的环境变量

1. interactive + login shell

交互式、登陆的shell。交互式指用户一条一条地向shell输入命令,shell输出执行结果。非交互式与之相反。
login shell指打开一个新的shell需要输入用户名和密码。non-login shell与之相反。
该模式下shell首先会加载/etc/profile全局环境变量,然后再按照顺序尝试加载 /.bash_profile、/.bash_login、~/.profile三个用户环境变量,如果有一个加载成功后面的就不再加载。

2. interactive + non-login shell

这种情况通常是,在interactive login shell下打开了一个新的shell。
该模式下shell加载 /bash/bashrc(/bash/bash.bashrc)、~/.bashrc

3. non-interactive + login shell

当使用bash执行shell脚本的时候就属于non-interactive。shell命令有一个参数[--login],如果bash使用[--login]参数执行shell脚本打开一个新的shell就属于这种情况。
该模式加载配置文件与 1 相同。

4. non-interactive + non-login shell

创建这种模式的shell,有两种常见的方法

  1. ssh命令下有一个参数[command],可以通过[--help]查看到。
    例如,ssh user@addr [command],就属于这种模式。

  2. bash *.sh
    该模式会通过BASH_ENV的值去寻找环境变量,BASH_ENV的值就是环境变量的文件名。可以通过设置BASH_ENV的值查找环境变量。

写在最后
参考[https://feihu.me/blog/2014/env-problem-when-ssh-executing-command-on-remote/#加载配置文件]

标签:non,shell,模式,bash,login,interactive,四种,加载
From: https://www.cnblogs.com/HanYG/p/16613828.html

相关文章

  • 【设计模式】24.行为型模式-备忘录(Memento)
    一、描述定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复至原来保存的状态。理解:当需要保存某个对象的操......
  • MySQL数据库的四种隔离级别
    一、首先介绍几个概念:1,脏读:又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改但是还未提交,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改并提交,这就导致了......
  • PerfView专题 (第八篇):洞察 C# 内存泄漏之寻找静态变量名和GC模式
    一:背景这篇我们来聊一下PerfView在协助WinDbg分析Dump过程中的两个超实用技巧,可能会帮助我们快速定位最后的问题,主要有如下两块:洞察内存泄漏中的静态大集合变量......
  • mysql6/视图/触发器/事务/四种隔离级别/事务日志/mvcc/内置函数/存储过程/索引/索引的
    视图触发器事务事务处理四种隔离级别事务日志MVCC内置函数存储过程索引索引的意义慢查询优化查询索引模拟视图1.什么是视图?视图是类似于临时表,由sql......
  • VIM编辑器—指令模式命令总结
    一、简介在一般模式当中,输入『:/?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符......
  • 2022-08-21-设计模式之桥接模式
    java设计模式之桥接模式-学习整理23种设计模式---桥接模式什么是桥接模式?桥接模式的定义是?生活当中涉及到桥接模式的实例:桥接模式的结构及主要角色:咖啡案例实现(组......
  • es6 class类内部的方法自动开启了严格模式
    -今天看到react类组件内部的方法中this为undefined,原因是class类内部的方法,自动开启了局部严格模式,不是babel的问题特此实验一下://类内部的方法,自动开启了局部严格模......
  • VIM编辑器—普通模式命令总结
    一、简介以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档......
  • VIM编辑器—命令模式命令总结
    一、简介在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i,I,o,O,a,A』等任何一个字母之后才会进入编辑模式。注意了!通常在L......
  • 2022-08-21-设计模式之观察者模式
    java设计模式之观察者模式-学习整理23种设计模式---观察者模式什么是观察者模式?定义是什么?观察者模式包含的角色有什么?四个核心的角色:抽象观察者,具体观察者;抽象被观察......