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