标准

根据 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. 视频 + PPT | 用户中台建设实践解析
  2. vscode设置键盘快捷键
  3. 在VS2008中使用Qt编程
  4. spring(11)使用对象-关系映射持久化数据
  5. selenium自动化测试_49自动化测试中最常见的Selenium异常
  6. 这是一个非常不错的mkv编辑制作的软件!
  7. 小顶堆数据结构C/C++代码实现
  8. centos7新机器需要安装的。。。。。。
  9. 8部门联合约谈滴滴、高德等10家交通运输新业态平台公司
  10. KubeEdge 1.2.0 部署
  11. 3d人脸识别算法opencv_用Opencv打造自己的人脸识别
  12. python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦
  13. ci源码解析之CodeIgniter.php
  14. 将mov格式转换成mp4的方法及设置
  15. 记录一下wandb的用法
  16. win7计算机隐藏文件,Win7怎么设置隐藏文件夹和取消隐藏?-win7显示隐藏文件
  17. 一篇文章带你了解——巨量引擎平台广告审核规则
  18. 爬虫基础:HTTP基本原理
  19. LOJ 3124 「CTS2019 | CTSC2019」氪金手游——概率+树形DP
  20. 案例07:纹理金字塔

热门文章

  1. 单元格里的字怎样居中_excel表格内的文字怎么才能居中
  2. UIP协议栈笔记·二
  3. nginx证书报错: error:2006D080:BIO routines:BIO_new_file:no such file
  4. Linux笔记(1)
  5. as死机了怎么办_电脑老出现Dllc:windowssystem32asadhip.dll而且老死机怎么处理、高手求救...
  6. 伪原创-伪原创软件-免费伪原创软件
  7. matlab 跳频序列,一种新的混沌宽间隔跳频序列的构造方法及其Matlab仿真分析
  8. sos.exe 病毒与sos.exe专杀工具
  9. DPDK技术系统学习一(接收,发送,arp,icmp功能测试)
  10. RevitBIM数据库V6.0版插件-橄榄山+住建部BIM数据库: