无论如何,有没有找到在哪里定义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
我如何在bash_profile中定义
/home/local/gradle-3.5.1/bin
,但找不到在何处定义/home/local/gradle-5.3/bin
环境变量。这是我检查区域的路径:/etc/profile
/root/.bash_profile
/home/dolphin/.bashrc
/home/dolphin/.bash_profile
PS:操作系统是:Ubuntu 16.04 LTS
最佳答案
除了使用find
和grep
之外,您无法做很多事情来发现每个变量的来源。
知道它确实是一个环境变量,我将尝试将搜索集中在/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-)shell的初始化~/.bashrc
:所有交互式(bash)shell的初始化~/.profile
:用于所有外壳~/.cshrc
,~/.zshrc
,~/.tcshrc
:与非bash外壳类似