shell教程(二) 四种工作模式
标准
根据 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教程(二) 四种工作模式相关推荐
- Linux链路聚合,链路聚合四种工作模式
一.基础知识 链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端 ...
- AndroidManifest.xml文件详解(activity)(三)四种工作模式
android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...
- spi四种工作模式时序图_还没学会SPI总线协议?干货都在这里
SPI总线基本概念 SPI是一种高速.全双工.同步的串行通信总线,全称是Serial Peripheral Interface,使用时在芯片的管脚上只占用三根或者四根线(如果单向传输的话只需三根线就可 ...
- 工程监测多通道振弦模拟信号采集仪VTN的四种工作模式
工程监测多通道振弦模拟信号采集仪VTN的四种工作模式 VTN是多通道振弦.温度.模拟传感信号系列数据采集仪,可对32通道振弦频率.32通道热敏电阻或DS18B20温度传感器.32通道模拟量传感器(电流 ...
- 无线网卡的四种工作模式
无线网卡一般有四种工作模式,即 Managed,Master,Ad-hoc,Monitor. Managed (被管理,即你的无线网卡处理被管理的模式)模式:该模式用于你的无线客户端直接与无线接入点( ...
- stm32芯片休眠模式_STM32的运行、睡眠、停止和待机四种工作模式
01 前言 按功耗由高到低排列,STM32具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中, ...
- spi四种工作模式时序图_SPI总线协议及SPI时序图详解
嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题! SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种 ...
- SPI四种工作模式时序图
1.SPI总线简介 SPI(serial peripheral interface,串行外围设备接口)总线技术是Motorola公司推出的一种同步串行接口.它用于CPU与各种外围器件进行全双工.同步串 ...
- 消息队列(四)——rabbitMQ四种工作模式
RabbitMQ工作模式 模式总结: 1.简单模式helloworld 一个生产者,一个消费者,不需要交换机(使用默认交换机) 2.工作队列模式Work Queue 一个生产者,多个消费者(竞争关系) ...
最新文章
- 视频 + PPT | 用户中台建设实践解析
- vscode设置键盘快捷键
- 在VS2008中使用Qt编程
- spring(11)使用对象-关系映射持久化数据
- selenium自动化测试_49自动化测试中最常见的Selenium异常
- 这是一个非常不错的mkv编辑制作的软件!
- 小顶堆数据结构C/C++代码实现
- centos7新机器需要安装的。。。。。。
- 8部门联合约谈滴滴、高德等10家交通运输新业态平台公司
- KubeEdge 1.2.0 部署
- 3d人脸识别算法opencv_用Opencv打造自己的人脸识别
- python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦
- ci源码解析之CodeIgniter.php
- 将mov格式转换成mp4的方法及设置
- 记录一下wandb的用法
- win7计算机隐藏文件,Win7怎么设置隐藏文件夹和取消隐藏?-win7显示隐藏文件
- 一篇文章带你了解——巨量引擎平台广告审核规则
- 爬虫基础:HTTP基本原理
- LOJ 3124 「CTS2019 | CTSC2019」氪金手游——概率+树形DP
- 案例07:纹理金字塔
热门文章
- 单元格里的字怎样居中_excel表格内的文字怎么才能居中
- UIP协议栈笔记·二
- nginx证书报错: error:2006D080:BIO routines:BIO_new_file:no such file
- Linux笔记(1)
- as死机了怎么办_电脑老出现Dllc:windowssystem32asadhip.dll而且老死机怎么处理、高手求救...
- 伪原创-伪原创软件-免费伪原创软件
- matlab 跳频序列,一种新的混沌宽间隔跳频序列的构造方法及其Matlab仿真分析
- sos.exe 病毒与sos.exe专杀工具
- DPDK技术系统学习一(接收,发送,arp,icmp功能测试)
- RevitBIM数据库V6.0版插件-橄榄山+住建部BIM数据库: