【问题标题】:How to find shell environment variable如何找到shell环境变量
【发布时间】:2019-03-26 04:26:45
【问题描述】:

有没有找到定义linux环境变量的地方?当我使用以下方式打印环境变量时:

env

输出是:

PATH=/home/local/apache-maven-3.3.9/bin:/home/hldev/software/sbt:/home/local/jdk1.8.0_111/bin:/bin:/home/local/gradle-3.5.1/bin:/home/local/node-v6.9.2/bin:/home/hldev/bin:/home/hldev/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/node-v8.9.4-linux-x64/bin:/home/local/go/bin:/home/local/gradle-5.3/bin

如何找到在哪里定义 /home/local/gradle-3.5.1/bin 并使 /home/local/gradle-5.3/bin 起作用。我在 bash_profile 中定义了 /home/local/gradle-5.3/bin,但我找不到在哪里定义 /home/local/gradle-3.5.1/bin 环境变量。这是我检查过的路径:

/etc/profile
/root/.bash_profile
/home/dolphin/.bashrc
/home/dolphin/.bash_profile

PS:操作系统是:Ubuntu 16.04 LTS

【问题讨论】:

标签: linux


【解决方案1】:

除了使用findgrep 之外,您无能为力来发现每个变量的来源。

知道它确实是一个环境变量,我会尝试将搜索集中在/etc/ 和您的主目录中。将 var 替换为您要搜索的相应变量:

$ grep -r var /etc/*

要打印在您的 shell 中设置的所有环境变量,您可以执行以下操作:

$ printenv | less

寻找环境变量的一些地方:

系统范围

  • /etc/environment:专门用于环境变量
  • /etc/env.d/*:环境变量,拆分成多个文件
  • /etc/profile:各类初始化脚本
  • /etc/profile.d/*:初始化脚本
  • /etc/bashrc/etc/bash.bashrc:用于函数和别名

用户特定

  • ~/.bash_profile: 初始化登录 (bash-)shells
  • ~/.bashrc:所有交互式(bash-)shell 的初始化
  • ~/.profile:用于所有shell
  • ~/.cshrc~/.zshrc~/.tcshrc:非 bash shell 类似

【讨论】:

  • 根据你的提示,我在 ~/.profile 上一一找到了,谢谢。我已经使用了 find 或 grep 命令,但是太慢了。@Paradox
【解决方案2】:

Google 告诉我可能有一个配置文件在:

/etc/profile.d/gradle.sh

【讨论】:

    【解决方案3】:

    在 bash shell 下:

    • 要列出所有环境变量,请使用命令“env”(或“ printenv")。
    • 要引用变量,请使用带有前缀“$”的 $varname(Windows 使用 %varname%)。

    • 要打印特定变量的值,请使用命令“ echo $varname "。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 2020-03-07
      • 2013-04-17
      • 2015-11-08
      • 1970-01-01
      相关资源
      最近更新 更多