“导出”命令在哪个系统文件中进行更改?

我使用PPA安装了java-8。 之后我发出命令:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle 

我听说过这个命令会暂时改变。 但经过多次注销和登录后,下面的这些命令仍然有效(我认为由于export ...命令):

 java -version javac -version 

但是当我发出命令:

 export -p 

它显示了一个环境变量列表,但在该列表中,不显示变量JAVA_HOME 。 而且,我想知道命令javajavac仍然有效!

有人能告诉我哪个文件export命令进行了更改? 它们是暂时的还是永久的? 还有什么发生在上面? 请详细说明!

export是一个shell命令。 它会影响当前运行的shell实例。 它不会在任何文件中进行更改。 这些更改是临时的,只有在shell退出之后才会生效。 在shell中设置新变量后,为了使其可用于从其启动的其他程序,您可以exportexport 。 看到:

  • 终端,控制台,Shell和命令行之间有什么区别?
  • `VAR = …`和`export VAR = …`有什么区别?
  • set,export和env之间的区别是什么?我应该在何时使用它们?

javajavac可能有效,因为您使用PPA安装了Java,并且安装会自动将这些命令添加到PATH ( 什么是PATH环境变量以及如何添加它? )。 具体来说,只检查版本不应该需要JAVA_HOME变量。 无论你是否设置它都没有区别。 显然JAVA_HOME被其他应用程序使用 ,而不是Java编译器或JVM。