标准

根据 POSIX 标准,Shell 分为登录(login)、非登录(non-login)和交互(interactive)、非交互(non- interactive)两个维度的处理。因此 bash 也不例外。

2个维度

1是否为交互模式?

交互模式:就是在终端上执行 bash(shell),shell 等待你的输入来执行实际的命令

非交互模式:是以 shell 脚本的方式执行,这种情况下,shell 不与你进行交互,他直接从脚本读入命令并执行,当读到结尾,shell 也就中止了。

# 可以通过使用 echo $- 检查是否含有"i"标识来判断当前shell是否非为交互模式> echo $-
himBH# 上述命令返回值为 "himBH" 包含有 "i"标识,因此当前shell为--交互模式> ssh xdlmost@192.168.164.205 'echo $-'
hB# 上述命令返回值为 "hB" 不包含有 "i"标识,因此当前shell为--非交互模式

2是否为登录模式?

登录模式:是需要用户名、密码登录后才能进入的shell (或者通--login选项启动的bash)
非登录模式: Shell 表示不需要用户名和密码,比如在登录 Shell 之后再执行的 bash,就产生了一个非登录 Shell (一些图形界面系统,有 terminal,这时,这些终端产生的一个 shell就是非登录 Shell);同时 logout 不能在非登录 Shell 中执行。

# 可以通过 shopt 命令查看 当前shell是否为 登录模式> shopt -p login_shell
shopt -s login_shell# 上述命令的返回值为 "shopt -s login_shell" ,当前shell为登录模式> shopt -p login_shell
shopt -u login_shell# 上述命令的返回值为 "shopt -u login_shell" ,当前shell为非登录模式
# 这个情形是使用图形界面启动Linux,在图形界面中开启Terminal 得到的

四种工作模式

根据上面的两个维度的交叉得到4中工作模式,不同的工作模式所加载的环境变量也有所不同。这也是本来登录测试没有问题的脚本,使用jenkins调用缺不好用的一大问题

工作模式
  交互 非交互
登录

1.本地登录

2.ssh登录

1.ssh远程命令

2.jekins远程命令

非登录 图形界面启动的Linux下启动的Terminal 执行的sh脚本文件

环境变量

根据不同的工作模式他们加载的环境变量也略有不同

常用的常用变有4个,分别是

  • /etc/.bashrc
  • /etc/.bash_profile
  • ~/.bashrc
  • ~/.bash_profile

我们测试一下这几个配置文件的加载顺序,我们可以在每个配置文件的开头添加一个导出的变量,来记录本文件已经被加载了

# 在/etc/.bashrc开头添加
export TEST_BASH_CONFIG=$TEST_BASH_CONFIG:/etc/.bashrc# 在/etc/.bash_profile开头添加
export TEST_BASH_CONFIG=$TEST_BASH_CONFIG:/etc/.bash_profile# 在~/.bashrc开头添加
export TEST_BASH_CONFIG=$TEST_BASH_CONFIG:/home/xdlmost/.bashrc# 在~/.bash_profile开头添加
export TEST_BASH_CONFIG=$TEST_BASH_CONFIG:/home/xdlmost/.bash_profile

添加好了测试用的TEST_BASH_CONFIG变量,可以开始测试了

shell教程(二) 四种工作模式相关推荐

  1. Linux链路聚合,链路聚合四种工作模式

    一.基础知识 链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端 ...

  2. AndroidManifest.xml文件详解(activity)(三)四种工作模式

    android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...

  3. spi四种工作模式时序图_还没学会SPI总线协议?干货都在这里

    SPI总线基本概念 SPI是一种高速.全双工.同步的串行通信总线,全称是Serial Peripheral Interface,使用时在芯片的管脚上只占用三根或者四根线(如果单向传输的话只需三根线就可 ...

  4. 工程监测多通道振弦模拟信号采集仪VTN的四种工作模式

    工程监测多通道振弦模拟信号采集仪VTN的四种工作模式 VTN是多通道振弦.温度.模拟传感信号系列数据采集仪,可对32通道振弦频率.32通道热敏电阻或DS18B20温度传感器.32通道模拟量传感器(电流 ...

  5. 无线网卡的四种工作模式

    无线网卡一般有四种工作模式,即 Managed,Master,Ad-hoc,Monitor. Managed (被管理,即你的无线网卡处理被管理的模式)模式:该模式用于你的无线客户端直接与无线接入点( ...

  6. stm32芯片休眠模式_STM32的运行、睡眠、停止和待机四种工作模式

    01 前言 按功耗由高到低排列,STM32具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中, ...

  7. spi四种工作模式时序图_SPI总线协议及SPI时序图详解

    嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题! SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种 ...

  8. SPI四种工作模式时序图

    1.SPI总线简介 SPI(serial peripheral interface,串行外围设备接口)总线技术是Motorola公司推出的一种同步串行接口.它用于CPU与各种外围器件进行全双工.同步串 ...

  9. 消息队列(四)——rabbitMQ四种工作模式

    RabbitMQ工作模式 模式总结: 1.简单模式helloworld 一个生产者,一个消费者,不需要交换机(使用默认交换机) 2.工作队列模式Work Queue 一个生产者,多个消费者(竞争关系) ...

最新文章

  1. 浏览器中唤起native app || 跳转到应用商城下载(二) 之universal links
  2. CVPR‘22 最新106篇论文分方向整理|包含目标检测、动作识别、图像处理等32个方向
  3. 小程序~WeUI下载使用
  4. vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码
  5. python练习---购物车
  6. 什么?你做的差异基因方法不合适?
  7. linux安装到内存中,Linux安装识别大内存的补丁程序
  8. D-Link 修复多个硬编码密码漏洞
  9. 编译OpenJDK:invalid configuration Files: machine Files not recognized
  10. 页面加载过程中触发的事件
  11. 软件质量保证与测试(一)
  12. 关于国内几大云计算平台
  13. Java实现短信验证码(阿里云)附短信SDK demo下载
  14. Windows自带的远程协助工具(非远程桌面,类比QQ远程桌面)
  15. Blender自动化建模入门
  16. [NowCoder5673E]Enigmatic Partition
  17. 网络安全工程师年薪百万?到底是干什么的?
  18. 全新荣耀手表GS 3正式发布,8通道心率AI引擎精准高效管理健康生活
  19. /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵
  20. 如何使用python下载网站上的视频

热门文章

  1. Leetcode 496:下一个更大元素 I(超详细的解法!!!)
  2. 联想主板9针开关接线图_主进线开关柜断路器到底有那些功能,保护动作值是如何动作,注意细节...
  3. NC14893 栈和排序
  4. 一个学者参加国际会议的感受
  5. 从苏宁电器到卡巴斯基第31篇:难忘的三年硕士时光 VII
  6. P4:编程网络的转发平面
  7. 直线扫描转换-中点算法
  8. win11 电脑无法连接 win10 USB共享打印机
  9. 达梦8数据库 静默安装_centOS7上静默安装达梦数据库
  10. 2018 北京科瑞明软件有限公司 ETL岗位笔试题