Shell 变量简介
1. 概述
- 概述
- 知识点又稀又碎, 面试一问就流泪
- 简单介绍下 shell 下的变量及其基本操作
2. 环境
- 操作系统
- CentOS Linux release 7.5
- 用户
- root 用户
- 约定
- 使用 > 作为 命令提示符, 不是命令的一部分, 需要注意
- 所有命令不保证 可以无脑复制执行, 使用前需要理解
- '#' 表示注释
2. 变量分类
概述
- 变量按照 作用域 和 用户 两个维度的划分不同类型
- 一上来就大摆概念, 是我很不喜欢的一种描述方式, 但是目前我也没啥更好的
作用域
- 局部变量
- 常见于 shell 脚本中
- 出现在 函数 里
- 仅在函数中生效, 出了函数就无效了
- 全局变量
- 在当前 shell 里生效
- 环境变量
- 在当前 shell 及其 子 shell 里生效
- 局部变量
用户
- 当前用户
- 所有用户
3. 基本操作
- 概述
- 讲述基本操作
1. 设置变量
- 概述
- 设置变量
- 确认成功
1. 查看变量, 确认变量没有被设置
命令
# 1. 首先确认一下, 这个变量有没有被设置
## 1. 假设变量名为 key01
## 2. shell 里用可以用 $<name> 或者 ${<变量名>} 来对变量取值, 我倾向于 第二种, 比较有 仪式感, 当然也有别的好处, 想起来再说
> echo ${key01}
# 2. 如果没有设定变量, 会返回一个 空行
2. 设置变量
命令
# 1. 既然变量没有被设置, 我们来设置变量
> key01 = 'var01'
# 2. 成功后没有任何返回值
3. 查看变量
命令
# 1. 第二步设置的变量, 在当前 shell 里, 可以使用了
# 2. 这里设置的, 是一个 全局变量
> echo ${key01}
var01
# 3. 如果之前设置成功, 会直接返回 之前设置的变量值
2. 查看变量
- 开始都查看了, 为啥这下又要查看
- 开始只是查询单个变量, 这次能查一堆
- 后面有惊喜
1. 使用 set 命令, 查看 变量
命令
# 1. grep 是用来过滤的, 这个暂时不讲
# 2. 执行命令后, 返回一个值, 就是之前设置的 全局变量
> set | grep key01
key01=var01
2. 使用 env 命令, 查看 变量
命令
# 1. 这里就没有找出来 key01
# 2. 这是为啥呢?
> env | grep key01
3. 命令区别
- 全局变量
- 直接配置的变量, 是全局变量
- 生效的范围, 只有当前 shell 终端
- 不信你换个别的 shell 终端, 用 set 也找不到
- set 与 env
- set 可以查询 所有变量
- env 只能查询 环境变量
3. 环境变量
1. 环境变量
- 环境变量
- 作用域, 是当前 shell 终端, 与所有的 子终端
- 不信你配置个 环境变量, 再别的 shell 终端看看
- 啥, 不会啊...对哦, 还没说这个, 马上说
- 作用域, 是当前 shell 终端, 与所有的 子终端
2. 配置环境变量
命令
# 1. 将已经配置好的 key01 全局变量, 配置为 环境变量
> export key01
# 2. 验证, 找到结果, 验证通过
> env | grep key01
key01=var01
4. 用户 与 全局环境变量
- 概述
- 已经学会了配置 环境变量
- 但也有些问题
- 配置后只能对 执行命令的 shell 生效
- 新开窗口就失效了
- 如果有需要, 每次都要重新配置
- 配置后只能对 执行命令的 shell 生效
- 解决方案
- 可以通过 配置文件 配置 环境变量
- 可以对 单个用户 或者 全局用户 配置
1. 用户维度
命令
# 1. 打开配置文件 ~/.bash_profile
# 2. 在 文本中加入配置 环境变量 的命令
key01=var01
export key01
# 3. 最后执行 source 命令, 让 修改生效
> source ~/.bash_profile
# 4. 生效之后, 可以查看到该环境变量
## 1. 只要以该用户登录, 新的 shell 终端也会有
2. 全局维度
命令
# 1. 思路相同
# 2. 配置文件: /etc/profile
5. 最后: 取消变量
命令
# 1. 如果你不想要之前的变量了, 也没问题
> unset key01
# 2. 取消之后, 就找不到了
ps
- ref
Shell 变量简介的更多相关文章
- shell(shell变量、条件表达式、流程控制)
本章内容: 变量 运算 if语句 for语句 while语句 break.continue 实例 shell变量 1.shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数 ...
- (一)Linux Shell编程——简介、变量、字符串、数组
1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...
- shell脚本编程之变量简介及脚本执行过程
脚本变量简介 变量类型:字符型.数值型.真.假:事先确定数据的存放格式和长度: 变量存放在内存空间: 编译型语言,没有额外的处理逻辑,属于强类型语言: 脚本型语言,可以有解释器控制:所以,可以是弱类型 ...
- Linux shell中一些参数与变量简介
linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图. 多看几次,多用几次,应该 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- Linux Shell——bash shell 脚本简介
bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash s ...
- Linux 下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1. 简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...
- 鸟哥的私房菜:Bash shell(一)-Bash shell功能简介
Bash shell系列里,由变量谈起,先讲到环境变量的功能与修改的问题, 然后会继续提到历史指令的运用.接下来,就会谈一下『数据流重导向』这个重要概念, 最后就是管线命令的利用! 一 Bash s ...
- shell重温---基础篇(shell变量&字符串以及git GUI运行shell脚本方式)
既然是基础篇那肯定是需要对shell的各种需要注意的基本点进行说明了.接下来就是show time... shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁.所以呢,他既是一 ...
随机推荐
- 使用 Nginx 对 ASP.NETCore网站 或 Docker 等进行反向代理,宝塔面板对 ASP.NET Core 反向代理
1,Nginx 的 配置文件 Nginx 可以配置反向代理.负载均匀等, 其默认配置文件名为 nginx.conf . 一般存放于 /你的安装目录/nginx/conf 下 Nginx 加载配置信息 ...
- ios 性能优化概述
在开发IOS程序的时候,不止是简简单单的把代码堆砌起来,或者说有一个比较好的架构,程序就ok的.还需要在程序性能上进行优化.所谓优化,并非只是简单的优化几个算法,让程序看起来跑的更快.优化是有目标的, ...
- 设置python的默认编码方式为utf-8
在python的Lib\site-packages文件夹下新建一个sitecustomize.py,然后通过sys.getdefaultencoding()获取当前的默认编码 内容为:
- virtualbox+vagrant学习-4-Vagrantfile-7-WinRM Settings
WinRM Settings 配置命名空间config.winrm config.winrm配置与如何通过winrm配置vagrant访问你的Windows客户相关.与大多数vagrant设置一样,默 ...
- shell脚本执行
方法一:切换到shell脚本所在的目录执行shell脚本: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应 ...
- 编程中关于对时区的理解(语言PHP)
时间戳 首先来说说time()返回的时间戳,时间戳则是自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数. 格林威治 由于地球圆的,因此每个时区的时间 ...
- windows下使用docker(一)—— 安装
1.下载地址:https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 2.安装 按照安装向导安装 ...
- NMON监控linux性能
NMON监控linux性能 一.下载nmon压缩包,下载地址:http://download.csdn.net/download/fhqsse220/6699865 二.安装方法: 1.将nmon_l ...
- HDU 1874畅通工程续(迪杰斯特拉算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) ...
- nRF5 SDK for Mesh(五) Light switch demo 点灯例子
Light switch demo 灯开demo Purpose This demo project consists of four sub examples - The light swit ...