如何找到 Linux 中定义环境变量的位置
How do I find where the environment variables are defined in Linux
刚开始学习hadoop(CentOS7),请教一个关于环境变量的问题:
在我的虚拟机中,rxie 是登录用户:
HADOOP_CONF_DIR = /opt/hadoop/hadoop-2.7.2/etc/rxie
没有/opt/hadoop/hadoop-2.7.2/etc/rxie的路径
应该是 /opt/hadoop/hadoop-2.7.2/etc/hadoop
我正在尝试找出变量的定义位置,以便我可以更正它。
这是我想出的:
bash-4.2# grep -r HADOOP_CONF_DIR ~/.*
/root/./.bashrc:export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
请注意 HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 是正确的。
我没看到错误的 HADOOP_CONF_DIR 定义在哪里?
如有高人指教并提供解决方案,将不胜感激。
运行 如下:
PS4='+ $BASH_SOURCE:$LINENO:' BASH_XTRACEFD=7 bash -xlic "" 7>trace.out
完成后,运行:
grep HADOOP_CONF_DIR trace.out
每次设置 HADOOP_CONF_DIR
时输出都会显示,设置它的文件,以及该文件中的行号。
例子
让我们以我的 .bashrc
文件中的内容为例:
$ grep HISTFILESIZE trace.out
++ /home/john1024/.bashrc:193:export HISTFILESIZE=20000
这表明 ~/.bashrc
的第 193 行设置了 HISTFILESIZE
。
工作原理
此命令启动 bash
登录 shell 并打开诊断。 PS4
变量设置诊断输出的前缀,以便它包含文件名和行号。有关详细信息,请参阅 here。
其他方法
虽然不太靠谱,但也可以试试:
grep HADOOP_CONF_DIR ~/.bashrc ~/.bash_profile ~/.profile /etc/profile.d/* /etc/profile /etc/bashrc
刚开始学习hadoop(CentOS7),请教一个关于环境变量的问题:
在我的虚拟机中,rxie 是登录用户: HADOOP_CONF_DIR = /opt/hadoop/hadoop-2.7.2/etc/rxie
没有/opt/hadoop/hadoop-2.7.2/etc/rxie的路径 应该是 /opt/hadoop/hadoop-2.7.2/etc/hadoop
我正在尝试找出变量的定义位置,以便我可以更正它。 这是我想出的:
bash-4.2# grep -r HADOOP_CONF_DIR ~/.*
/root/./.bashrc:export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
请注意 HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 是正确的。
我没看到错误的 HADOOP_CONF_DIR 定义在哪里?
如有高人指教并提供解决方案,将不胜感激。
运行 如下:
PS4='+ $BASH_SOURCE:$LINENO:' BASH_XTRACEFD=7 bash -xlic "" 7>trace.out
完成后,运行:
grep HADOOP_CONF_DIR trace.out
每次设置 HADOOP_CONF_DIR
时输出都会显示,设置它的文件,以及该文件中的行号。
例子
让我们以我的 .bashrc
文件中的内容为例:
$ grep HISTFILESIZE trace.out
++ /home/john1024/.bashrc:193:export HISTFILESIZE=20000
这表明 ~/.bashrc
的第 193 行设置了 HISTFILESIZE
。
工作原理
此命令启动 bash
登录 shell 并打开诊断。 PS4
变量设置诊断输出的前缀,以便它包含文件名和行号。有关详细信息,请参阅 here。
其他方法
虽然不太靠谱,但也可以试试:
grep HADOOP_CONF_DIR ~/.bashrc ~/.bash_profile ~/.profile /etc/profile.d/* /etc/profile /etc/bashrc