Shell脚本学习_环境变量深入

目录

1.Shell环境变量深入:自定义系统环境变量

2.Shell环境变量深入:加载流程原理介绍

3.Shell环境变量深入:加载流程测试

4.Shell环境变量深入:识别与切换Shell环境类型


1.Shell环境变量深入:自定义系统环境变量

1、目标:

能够自定义系统级环境变量

2、全局配置文件/etc/profile应用场景:

当前用户进入Shell环境初始化的时候会加载全局配置文件/etc/profile里面的环境变量,供给所有的Shell程序使用。以后只要是所有的Shell程序或命令使用的变量,就可以定义在这个文件中。

3、案例演示:

1.需求:

/etc/profile定义存储自定义系统级环境变量数据

2.创建环境变量步骤:

1.编辑/etc/profile全局配置文件

#增加命令:定义变量VAR1=VAR1并导出为环境变量

#扩展:vim里面的命令模式使用G快速定位到文件末尾,gg快速回到文件开头

2.重载配置文件/etc/profile,因为配置文件修改后要立刻加载里面的数据,语法:

source /etc/profile

3.在Shell环境中读取系统级环境变量VAR1

4.小结:

1.系统级全局配置文件

2.设置环境变量:export var_name=value,注意:环境变量建议变量名全部大写

3.修改了/etc/profile文件后,要立刻加载修改的数据需要重载配置文件:source /etc/profile


2.Shell环境变量深入:加载流程原理介绍

1.目标:

1.能够说出交互式Shell与非交互式Shell

2.能够说出登录Shell与非登录Shell环境

2.Shell工作环境介绍:

用户进入Linux系统就会初始化Shell环境,这个环境会加载全局配置文件和用户个人配置文件中的环境变量,每个脚本文件都有自己的Shell环境

3.Shell工作环境分类:

1、交互式与非交互式shell:

1.交互式Shell

与用户进行交互、互动,效果就是用户输入一个命令,Shell环境立刻反馈响应。

1.非交互式Shell

不需要用户参与就可以执行多个命令,比如一个脚本文件含多个命令,直接执行并给出结果。

2、登录Shell与非登录Shell环境:

1.Shell登录环境:

需要用户名\密码登录的Shell环境

2.Shell非登录环境:

不需要用户名\密码进入的Shell环境或执行脚本文件

注意:不同工作环境加载环境变量的流程不一样

3、环境变量初始化流程:

1.全局配置文件

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

2.个人配置文件

当前用户/.bash_profile

当前用户/.bashrc

环境变量加载初始化过程:

一般情况下都是直接针对全局配置进行操作

4、小结:

1.能够说出交互式Shell与非交互式Shell

交互式:需要用户参与互动的Shell环境,输入一个命令,环境就立刻响应反馈结果

非交互式:只执行命令,不需要用户的参与

2.能够说出登录Shell与非登录Shell环境

Shell登录环境:需要用户名\密码登录的Shell环境。

Shell非登录环境:不需要用户名\密码进入的Shell环境或执行脚本文件。


3.Shell环境变量深入:加载流程测试

1、目标:

1.理解Shell环境变量的加载流程测试

2.能够知道环境变量应该配置在哪里

2、切换Shell环境执行脚本文件介绍:

在执行一个脚本文件时可以指定具体Shell环境进行执行脚本文件,这个就是切换Shell环境执行脚本。

1.Shell登录环境执行脚本文件语法:

sh/bash -l/--login 脚本文件
#含义:先加载Shell登录环境流程初始化环境变量,再执行脚本文件

2.Shell非登录环境变量执行脚本文件语法:

bash #加载Shell非登录环境
sh/bash 脚本文件 #直接执行脚本文件
#含义:先执行加载Shell非登录环境流程初始化环境变量,再执行脚本文件

3、测试案例:

1.需求:

Shell登录环境会运行/etc/profile

Shell非登录环境会运行/.bashrc

在/etc/profile与当前用户/.bashrc文件分别设置环境变量数据,然后在shell脚本文件中输出环境变量数据,最后切换不同环境执行shell脚本文件观察验证上面的流程运行

2.分析:

1.清理工作,清理/etc/profile文件中VAR1环境变量进行删除,并且重载文件 

2.编辑/etc/profile,增加环境变量VAR1=VAR1

3.编辑/root/.bashrc,增加环境变量VAR2=VAR2

4.创建demo1.sh文件,读取环境变量数据进行打印

#输出环境变量VAR1
#输出环境变量VAR2
5.以Shell非登录环境执行demo1.sh脚本文件,观察只会输出VAR2,不会输出VAR1

6.以Shell登录环境执行demo1.sh脚本文件,观察会输出VAR1和VAR2

4、小结:

1.Shel环境变量初始化加载原理过程:

1.shell登录环境初始化过程:

/etc/profile--》/etc/profile.d/*.sh--》~/.bash_profile--》~/.bashrc.》/etc/bashrc

2.shell非登录环境初始化过程:

~/.bashrc--》/etc/bashrc--》/etc/profile.d/*sh

2.那么以到底将环境变量定义到哪里呢?/etc/profile与/etc/bashrc的区别?

需要登录的执行的shel脚本读取的环境变量配置在:/etc/profile、/当前用户/.bash profile不需要登录的用户执行的shell脚本读取的环境变量配置在:/当前用户/.bashrc、/etc/bashrc


4.Shell环境变量深入:识别与切换Shell环境类型

1、目标:

理解如何识别Shell登录环境与非登录环境。

2、语法:

echo $0  #识别环境语法

-bash为登录环境、bash为非登录环境。 

3、切换环境方式1:

语法1:

su 用户名 --login
或
su 用户名 -l
#切换到指定用户,加载Shell登录环境变量

 

语法2:

su 用户名
#切换到指定用户,加载Shell非登录环境变量

4、切换环境方式2:

语法1:

bash #加载Shell非登录环境

语法2:

bash -l Shell脚本文件 / bash --login Shell脚本文件
sh -l Shell脚本文件  /  sh --login Shell脚本文件
#先加载Shell登录环境,任何运行指定的Shell脚本文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

旧衣回收小程序开发,轻松回收旧衣物

随着环保理念的增强,回收市场得到了快速发展,吸引了不少年轻人进入到市场中创业。除了传统的废品回收外,旧衣回收也受到了大众的重视,市场规模迅速扩大,大众浪费的衣物也获得了归处。 目前旧衣回收的方式主要是线上与…

makefile与进度条

Linux项目自动化构建工具-make/makefile make是一个命令, makefile是一个文件,保存依赖关系和依赖方法。‘ touch Makefile/makefile mybin:mytest.c//依赖关系 目标文件:依赖文件列表 文件列表的文件之间以空格分隔 gcc -o mybin mytest.…

Shell脚本学习_字符串变量

目录 1.Shell字符串变量:格式介绍 2.Shell字符串变量:拼接 3.Shell字符串变量:字符串截取 4.Shell索引数组变量:定义-获取-拼接-删除 1.Shell字符串变量:格式介绍 1、目标: 能够使用字符串的三种方式 …

linux系统——ping命令

ping命令可以用来判断对远端ip的连通性,可以加域名也可以加公共ip地址 这里发送出56字节,返回64字节

ctfshow-web入门-命令执行(web41_exp与分析)

过滤不严,命令执行 preg_match(/[0-9]|[a-z]|\^|\|\~|\$|\[|\]|\{|\}|\&|\-/i, $c) 过滤掉了数字、字母以及一些符号,之前接触过的无字母 rce 是取反编码再取反,采用不可见字符去绕过正则,但是这里取反符号被过滤掉了&#x…

Kali linux学习入门

Kali linux学习入门 文章目录 Kali linux学习入门Kali Linux简介Kali Linux工具篇Kali Docker安装Docker 更换国内镜像源Kali 安装 docker compose Kali Linux文档篇Kali Linux 社区篇 Kali Linux简介 Kali Linux是专门用于渗透测试linux操作系统,它由BackTrack发展…

软件游戏找不到d3dx9_43.dll怎么办,三分钟教你解决此问题

在现代科技发展的时代,电脑已经成为我们生活中不可或缺的一部分。然而,在使用电脑的过程中,我们可能会遇到一些问题,其中之一就是电脑缺失d3dx943.dll文件。这个问题可能会影响到我们的正常使用,因此了解其原因和解决方…

接口(API)开发,测试工具-apifox

前言 为什么需要接口(API)? 因为不同的平台或系统可能使用不同的技术栈、编程语言或数据格式。API提供了一个标准化的方式,使得这些不同的系统可以相互交换数据和功能调用,实现互操作性 在开发日常的项目交互中,不…

PyCharm中 Fitten Code插件的使用说明一

一. 简介 Fitten Code插件是是一款由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间,另外还可以对话聊天,解决您编程碰到的问题。 前一篇文章学习了 PyCharm…

小白教程--- kali(po解)WIFI密码 (图文教程)

kali学得好,牢饭少不了!!! 原理: 模拟WiFi的已连接设备,强制让其下线重连,获取其握手包,使用密码字典(宝丽)婆洁。 环境(准备工作)&a…

深度解析:ChatGPT全面测评——功能、性能与用户体验全景剖析

从去年底至今,由 OpenAI 发布的大规模语言模型 ChatGPT 引发了几乎所有科技领域从业者的高度关注。据瑞银集团的报告显示,自 2023 年 1 月起,仅两个月内,ChatGPT 的月活用户数便超过了 1 亿。 ChatGPT 被誉为“最强 AI”&#xff…

操作系统总结

进程和线程的区别 本质区别: 进程是资源调度以及分配的基本单位。线程是 CPU 调度的基本单位。 所属关系:一个线程属于一个进程,一个进程可以拥有多个线程。地址空间: 进程有独立的虚拟地址空间。线程没有独立的虚拟地址空间&…

Day53 动态规划part12

LC309买卖股票的最佳时机含冷冻期 与LC122类似,都是可无限次购买股票,只不过引入了冷冻期的概念dp[i][0] 第i天持有股票收益;dp[i][1] 第i天不持有股票收益;情况一:第i天是冷静期,不能以dp[i-1][1]购买股票,所以以dp[…

性能测试 —— Jmeter对数据库压力测试

Jmeter先要和数据库建立连接,sql语句是在Jmeter中写的,但是语句的执行是在数据库里执行的,数据库再将执行结果返回给Jmeter。 在做jmeter数据库压力测试之前,要先检查是否有mysql-connector-java-5.1.39-bin.jar的这个包&#xf…

flink读取hive写入http接口

目录 0、创建hive数据 1、pom.xml 2、flink代码 3、sink 4、提交任务jar 5、flink-conf.yaml 6、数据接收 flink-1.17.2jdk1.8hive-3.1.3hadoop3.3.6passwordhttp0、创建hive数据 /cluster/hive/bin/beeline !connect jdbc:hive2://ip:10000 create database demo; d…

python 多任务之多进程

多任务 优势 多个任务同时执行可以大大提高程序执行效率,可以充分利用CPU资源,提高程序的执行效率 概念 是指在同一时间内执行多个任务 多进程 概念 进程(process)是资源分配的最小单位,他是操作系统进行资源分配…

鸿蒙北向开发 IDE DevEco Studio 3.1 傻瓜式安装闭坑指南

首先下载 安装IDE 本体程序 DevEco Studio 下载链接 当前最新版本是3.1.1,下载windows版本的 下载下来后是一个压缩包, 解压解锁包后会出现一个exe安装程序 双击运行安装程序 一路 next ( 这里涉及安装文件目录,我因为C盘够大所以全部默认了,各位根据自己情况选择自己的文件…

前端工程化:基于Vue.js 3.0的设计与实践

这里写目录标题 《前端工程化:基于Vue.js 3.0的设计与实践》书籍引言本书概述主要内容作者简介为什么选择这本书?结语 《前端工程化:基于Vue.js 3.0的设计与实践》书籍 够买连接—>https://item.jd.com/13952512.html 引言 在前端技术日…

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑: 页面发送ajax请求,将分页查询参数(page,pageSize, name)提交到服务端,获取分页数据; 页面发送请求,请求服务端进行图片下载,用于页面图片展示。 开发菜品信息分页查询功能&a…

数字人的技术实现方案比较

数字人的实现方案通常包括以下几个关键技术领域,数字人的实现是一个跨学科的领域,涉及到计算机图形学、人工智能、机器学习、自然语言处理等多个技术领域,随着技术的不断进步,数字人的能力和应用范围将不断扩大。北京木奇移动技术…