Linux Shell中的变量-环境变量

时间:2022-12-12 23:34:07

参考:《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