shell编程----环境变量


1. 什么是环境变量?

  环境变量也称为全局变量,可以分为自定义环境变量和bash内置的环境变量,环境变量可以在命令行中设置和创建,用户退出命令行时这些变量值就会丢失,想要永久保存环境变量,可写在文件中。
  全局文件为/etc/profile,对所有用户有效;用户文件为~/.bash_profile仅对指定用户有效。
  用户环境变量配置:.bashrc .bash_profile
  全局环境变量配置:/etc/profile /etc/bashrc(推荐) /etc/profile.d/ (更改完运行source /etc/profile),如果想要在登录后初始化或者显示加载的内容,只需要把脚本文件放在/etc/profile.d文件下即可(不需要加执行权限)
  如果要列出系统中所有的环境变量,可使用env命令
  自定义环境变量:
  如果想设置环境变量,就要给变量赋值后或设置变量时使用export命令,export命令和declare命令的格式:

export 变量名=value
变量名=value;export 变量名
declare -x 变量名=value

  在java环境中,自定义环境变量,通常放在/etc/profile全局环境变量里。
配置java的jdk环境:

1.export JAVA_HOME=/application/jdk
2.export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
3.export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
4.export RESIN_HOME=/application/resin

2. 常用的环境变量

[root@localhost 2-12]# echo $HOME
/root
[root@localhost 2-12]# echo $USER
root
[root@localhost 2-12]# echo $UID
0
[root@localhost 2-12]# echo $PWD
/root/shell/2-12
[root@localhost 2-12]# echo $SHELL
/bin/bash

环境变量知识小结:

  1. 变量名通常要大写
  2. 变量名可以在自身shell以及子shell中使用
  3. 常用export来定义环境变量
  4. 执行env默认可以显示所有的环境变量名称以及对应的值
  5. 输出时用“$变量名”,取消时用“unset变量名”
  6. 如果希望环境变量永久生效,则可以将其放在用户环境变量文件或者全局环境变量文件里。

登录shell读取环境变量文件的流程:
在这里插入图片描述

  用户登录系统后首先会加载/etc/profile全局环境变量文件,加在完成后,执行/etc/profile.d目录下的脚本文件(如:系统字符集设置/etc/sysconfigil8n),然后在运行$HOME/.bash_profile(用户环境变量文件),在这文件里会找$HOME/.bashrc/etc/bashrc(全局环境变量文件)有就执行,没有就不执行。如果希望用户的shell不是登陆时启动的(如:手动敲下bash时启动或者远程ssh链接情况),非登陆shell只会加载$HOME/.bashrc(用户环境变量文件),并会取找/etc/bashrc(全局环境变量文件)。即非登陆shell想读到设置的环境变量,需要将变量设定等写入$HOME/.bashrc/etc/bashrc而不是$HOME/.bash_profile/etc/profile

发布了106 篇原创文章 · 获赞 1 · 访问量 2348

猜你喜欢

转载自blog.csdn.net/weixin_43384009/article/details/104317690