Linux 环境变量及注意事项

一、登式 Shell 和 非登式 Shell

首先要了解,什么是登陆式 Shell 和非登陆式 Shell

  • 登陆式 Shell:采用用户名密码登陆,例如:在 Hadoop102 上用 lpy 用户登陆
  • 非登录式 Shell:采用 ssh 登陆,例如:在 hadoop102 上输入命令:ssh hadoop103 登陆 hadoop103

二、Linux 环境变量

      /etc/profile 文件:用来设置系统环境参数,比如 $PATH. 这里面的环境变量是对系统内所有用户生效。使用 bash 命令,需要source  /etc/profile 一下。

      ~/.bashrc文件:针对某一个特定的用户,环境变量的设置只对该用户自己有效。使用bash命令,只要以该用户身份运行命令行就会读取该文件

注意:

  • 登陆式 Shell:会自动加载 /etc/profile
  • 非登陆式 Shell:不会自动加载/etc/profile,会自动加载~/.bashrc
  • cd 到根目录,然后输入:ls -al 即可找到 .bashrc 文件

.bashrc 文件内容如下:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

里面是一个 if 判断语句,意思是如果 /etc/bashrc 是个文件,则执行这个文件

/etc/bashrc 文件部分内容如下:

... ...
... ...
... ...

for i in /etc/profile.d/*.sh; do
      if [ -r "$i" ]; then
          if [ "$PS1" ]; then
              . "$i"
          else
              . "$i" >/dev/null 2>&1
          fi
      fi
 done

       文件内容很多,我们只需要看最后这一段即可,这里是个 for 循环遍历了一下 /etc/profile.d/ 文件夹下的所有带 .sh 后缀的文件,然后对每个文件进行相应的执行。

        意思就是: /etc/profile.d/ 文件夹下所有有读权限的 .sh 后缀的文件都会执行

三、环境变量配置方案

  • /etc/prodile.d/ 目录下新建一个 env.sh(名字自己取,但必须带.sh后缀),然后把环境变量添加进去即可,例如:
    #JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    export PATH=$PATH:$JAVA_HOME/bin
    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-2.7.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
  • 如果非要在/etc/profile里配置环境变量,那就把每个节点 /etc/profile 里面环境变量追加到 ~/.bashrc 目录:cat /etc/profile >> ~/.bashrc

猜你喜欢

转载自blog.csdn.net/S_Alics/article/details/108534224