参考:《Linux命令 / 编辑器与Shell编程》
################################################
note that :与其他编程语言不同,Bash中的变量没有数据类型的区别,变量中的值都是以字符串的形式保存的,如果要进行数值计算,需要进行特殊转换
Linux Shell下的变量按其使用目的可分为3种类型:
环境变量:用于保存操作系统运行时使用的环境参数
位置变量:Bash将传递给脚本的参数保存在位置变量中,以便于在脚本中引用这些参数
预定义变量:由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等
自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等
#########################################################
保存系统运行情况的环境变量
系统环境变量是用户登陆系统时,由系统自动生成并设置的一组变量。所有的进程 / 脚本都可以引用这些变量,因此环境变量的值通常与系统息息相关。
可使用set命令查看环境变量
# set
1.系统中常见的环境变量
(1)家目录位置变量HOME
HOME变量用于保存当前登陆用户的家目录位置,这个变量的值是由系统用户文件/etc/passwd中的用户家目录字段定义的。查看当前用户的家目录如下:
#使用echo命令查看变量HOME的值
# echo $HOME
(2)系统语言变量LANG
LANG变量用于保存系统当前使用的语言,如果要临时修改当前系统使用的语言,通常可以通过修改该变量的值来实现。查看当前系统使用的语言如下:
#查看变量LANG中保存的系统语言
# en_US.UTF-8表示英语 zh_CN.UTF-8表示简体中文
# echo $LANG
临时修改系统语言可以重新指定此变量的值:
#修改环境变量LANG的值为zh_CN.UTF-8
# LANG=zh_CN.UTF-8
(3)交互程序变量SHELL
SHELL变量用于保存用户当前使用的Shell。可以通过查看该变量值的方法,快速查看当前使用的Shell
#快速查看当前用户使用的Shell
# echo $SHELL
(4)命令搜索路径变量PATH
PATH变量用于保存当前用户使用的命令搜索路径。当用户输入命令时,系统会尝试在该变量保存的目录中查找命令文件
#通过查看变量PATH值的方法查看当前用户的命令搜索路径
# echo $PATH
note that:PATH使用冒号":"将不同的目录分隔开
2.只读环境变量
只读环境变量的值是无法更改的
#使用readonly命令查看只读环境变量
# readonly
3.如何修改环境变量
可以在命令提示符中修改环境变量,但在命令提示符中修改的环境变量将在用户重新登录 / 系统重启后消失,这是可以在配置文件中修改环境变量:
/etc/profile:全局用户配置文件。如果修改了此文件的设置,修改的设置将会影响系统中的所有用户
~/.bash_profile:用户个人配置文件。如果修改了此文件中的变量,修改的设置只会影响单个用户
/etc/bashrc:全局环境变量配置文件。此文件中定义了所有用户的环境变量
~/.bashrc:个人环境变量配置文件。此文件中定义了用户的环境变量
note that:~表示家目录 .bash_profile和.bashrc是隐藏文件(.开头的为隐藏文件) 以上四个文件单独修改一个即可,且有时可能某个文件不存在
如果想让修改后的环境变量立即生效,可以运行命令:
# source xxx #xxx表示你修改的文件
例如 source /etc/profile