导图社区 《Linux命令行与shell脚本编程大全》-第6章-使用Linux环境变量
这是一篇关于使用Linux环境变量的思维导图,主要内容包括:数组变量,定位系统环境变量,设置PATH环境变量,默认的shell环境变量,设置用户定义变量,基本概念。
说明,元素、元素的属性、属性的值使用文字的颜色进行区分。黑色文字表示元素的名称、元素节点下的属性用红色文字表示、属性下的蓝色节点表示该属性可取的值。很精简,也很抽象,理解了就可以查的很快。
这是一篇关于docker的思维导图,主要内容包括:volume,plugin,network,container,image。
这是一篇关于Python基础的思维导图,主要内容包括:11-测试代码,10-文件和异常,9-类,8-函数,7-用户输入和while,6-字典,5-if语句,4-操作列表,3-列表简介,2-变量及数据类型,1-起步。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
使用Linux环境变量
基本概念
用来存储shell会话和环境信息的变量。 以便程序或脚本访问他们。
全局环境变量
对于shell会话和所有生成的子shell都是可见的
可以使用printenv或者env查看全局变量
使用printenv [varname]打印指定的[varname]环境变量的值
也可以使用echo $[varname]显示[varname]的值
引用一个环境变量时,前面要加美元符$
可以引用全局变量作为参数
局部环境变量
只对创建它们的shell可见
Linux没有只显示局部变量的命令
set命令可以显示为特定进程设置的所有环境变量
设置用户定义变量
设置局部用户定义变量
[varname]=[value]:创建一个变量名为[varname]的环境变量,值为[value]
变量名=值之间没有空格
命令中有了空格则shell在空格处拆分成多个命令
局部变量在子shell中不可用
局部变量只在创建它的shell中可用
变量值是字符串且含有空格时,要使用引号将字符串界定字符串的首尾
用户自己创建的局部变量或脚本使用小写,以区分bash shell的环境变量
设置全局环境变量
第一步:创建一个局部变量
[varname]=[value]
第二部:将创建好的局部变量导出到全局环境中
export [varname]
echo $[varname]
通过[varname]=[value]可修改变量值
在子shell中对全局变量的修改仅在子shell中生效
子shell无法使用export [varname]改变父shell中全局变量的值
删除环境变量
unset [varname]删除已经存在的环境变量
子进程中删除了全局变量,只对子进程有效
子shell中删除全局变量无法反映到父shell中
默认的shell环境变量
兼容Bourne的变量
CDPATH
HOME
IFS
MAIL
PATH
PS1
PS2
...
bash shell环境变量
BASH
BASHPID
EUID
FUNCNAME
COLUMNS
HOSTNAME
LANG
PWD
SHLVL
UID
TIMEFORMAT
设置PATH环境变量
PATH定义了查找命令和程序的目录
PATH=$PATH:[direction]给环境变量PATH添加查找目录
定位系统环境变量
登录shell
/etc/profile
迭代/etc/profile.d/目录下的所有文件
主启动文件,登录linux就会执行其中命令
$HOME
$HOME下的启动文件都起着同一个作用:提供一个用户专属的启动文件来定义用户所用到的环境变量。 大多数发行版只用到一到两个文件,而且shell会以下列顺序运行第一个被找到的文件,其余则被忽略 $HOME/.bash_profile -> $HOME/.bash_login -> $HOME/.profile
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
$HOME/.bashrc
交互式shell进程
不在登录时启的bash shell被称为交互式shell
如在CLI中输入bash启动的shell
交互式shell不会访问/etc/profile文件,只会检查$HOME/.bashrc文件
查看/etc/目录下通用的bashrc文件
为用户提供一个定制自己的命令别名和私有脚本函数的地方
非交互式shell
没有命令行提示符,系统执行脚本时用的就是这种shell
当shell启动一个非交互shell进程时,会执行环境变量BASH_ENV所指定的文件
环境变量持久化
在/etc/profile.d/目录中创建一个以.sh结尾的文件
个人用户永久性bash shell变量存储在$HOME/.bashrc中
如果设置了BASH_ENV变量,则应将非交互shell的用户变量放在其他地方
数组变量
定义
[arrayname]=(element1 element2 element3 ...)
用小括号将数组元素括起来与数组名用等号连接,就定义了一个数组变量
引用
${arrayname[i]}
${arrayname[*]}
数组的索引是从0开始的
删除
unset删除数组变量中的某个值
unset arrayname[i]
第i个元素位置将会是空的
输出还会连贯输出,看起来第i个位置已经没了
unset删除整个数组
unset [arrayname]