Ubuntu环境变量设置
在配置Ubuntu里面的JDK环境变量时,从网上找到的资料各异,在不同的文件里面配置,如/etc/environment、/etc/profile,环境变量设置都是可以的。但是难免会有其它的疑问,不同文件配置有什么不同呢?在网上找了好多资料看了一下,现在将体会以的一点东西列出来。
为了准确性,直接找英文的资料,找到了一个Ubuntu官方的网站关于系统环境变量的一些说明https://help.ubuntu.com/community/EnvironmentVariables。看里面的内容,发现网上的不少应该是直接翻译的这个网页里面的一些内容,只是没有注明而已。
这个网页里面列出了很多有环境变量有关的文件,主要有~/.profile、~/.bash_logout、~/.bash_login、~/.bash_profile、/etc/environment、/etc/profile、/etc/bash.bash.rc。既然知道有这些文件,那就每个文件里面的内容都看看。
1. 用户配置文件
列出用户目录文件所有文件,la (ls -a的快捷键)
里面和环境变量相关的文件有:
- .bash_logout
- .bashrc
- .profile
分别查看一下各个文件里面的内容
1).bash_logout 用户退出登录执行的操作
# ~/.bash_logout: executed by bash(1) when login shell exits.
# when leaving the console clear the screen to increase privacy
2).bashrc 非登录用户shell一些变量的设置
# ~/.bashrc: executed by bash(1) for non-login shells.
3).profile 登录用户shell一些变量的设置
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login exists. 如果~/.bash_profile或~/.bash_login存在时,不会使用这个文件的设置
# the default umask is set in /etc/profile
# include .bashrc if it exists 该文件里面会包含.bashrc文件,如果文件存在
在查看这几个文件里面的内容时,里面有提到bash的一些相关资料,安装一个deb包之后会有bash.pdf 和bashref.pdf文件,官方文档,介绍很清楚,但是都是英文的看起来很费劲,下面附录里面的中文版链接。
2. 系统配置文件
1 /etc/environment文件
这个文件里面设置PATH环境变量
2 /etc/profile
系统级环境变量设置,该文件里面的设置是全局的,包含有/etc/bash.bash.rc文件里面的设置,可以在该文件里面覆写/etc/bash.bash.rc里面的设置
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
# The file bash.bashrc already sets the default PS1.
3 /etc/bash.bash.rc
该文件里面的设置是全局的
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
3. 设置系统环境变量
在官方文档EnvironmentVariables里面已经讲得比较清楚,具体的看Persistent environment variables这一段,不推荐在
~/.profile、~/.bash_profile 、 ~/.bash_login、~/.bashrc、
/etc/profile、/etc/bash.bashrc
这几个文件里面进行修改,所以最好在/etc/environment 这个文件里面时行环境变量的修改。
补充说明:
bash的启动(Invocation)
当bash是作为交互的登录shell启动的,或者是一个非交互的shell但是指定了--login选项,它首先读取并执行/etc/profile中的命令,如果那个文件存在。读取那个文件之后,它以如下的顺序查找:~/.bash_profile → ~/.bash_login → ~/.profile (包含有~/.bashrc),从存在并且可读的第一个文件中读取并执行其中的命令。
当一个登录shell退出时,bash读取并执行文件~/.bash_logout中的命令,当其存在时。
当一个交互的shell但是不是登录shell启动时,bash从文件~/.bashrc中读取并执行命令,当文件存在时。
附录:
官方环境变量说明:https://help.ubuntu.com/community/EnvironmentVariables
Bash.pdf中文版:http://pan.baidu.com/share/link?shareid=284279293&uk=3457029223
bashref.pdf中文版:http://pan.baidu.com/share/link?shareid=293108901&uk=3457029223
Ubuntu环境变量设置的更多相关文章
- zedboard之ubuntu环境变量设置
在Ubuntu中有如下几个文件可以设置环境变量 1./etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. ...
- ubuntu 环境变量设置
一:用于当前终端:在当前终端中输入:export PATH=$PATH:<你的要加入的路径>不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效.export NDK_ ...
- Ubuntu环境变量设置注意点
设置环境变量时,有一点要注意: /etc/bash.bashrc与/etc/profile是有区别的 什么区别呢? 打开一个新的shell时,会读取/etc/bash.bashrc和~/.bashrc ...
- Linux环境变量设置中配置文件分析(/etc/profile,~/.bashrc等)(转)
说明:在研究中发现,对于不同版本的Linux系统有着不同的文件,但是总的入口是不变的/etc/profile,下面只是展示加载顺序的研究过程,所以会有些系统没有这个文件等问题. 一.配置文件与作用域: ...
- Ubuntu 下开发 Android 环境变量设置
-----------------------------------------------------ANDROID_SDK_HOME:/home/cmm/avds PATH:/home/cmm/ ...
- Ubuntu下 jdk环境变量设置
流程 1. 官网下载对应的jdk文件 2. 在根目录 / 下创建一个java目录 mkdir /java 3. 使用mv命令 将下载下来的文件(压缩格式),移动到上一步创建的/java目录下 Ps ...
- Ubuntu环境变量——添加与删除
转自:http://beanocean.diandian.com/post/2013-11-09/40060047963 注: 1.作者的系统是Ubuntu 13.10,在其他linux发行版中环境变 ...
- 【Linux】环境变量设置
在Windows中环境变量设置是非常easy的事情.例如以下图.仅仅要右键我的电脑->高级系统设置->环境变量,选择Path之后,点击"编辑"就能够输入你要加入的内容. ...
- ubuntu环境变量及其配置
Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量.所以管理环境变量的文件也分为系统级和用户级的. ...
随机推荐
- javascript系列之核心知识点(一)
JavaScript. The core. 1.对象 2.原型链 3.构造函数 4.执行上下文堆栈 5.执行上下文 6.变量对象 7.活动对象 8.作用域链 9.闭包 10.this值 11.总结 这 ...
- C---通过指针访问数组
C语言规定:如果指针变量P已指向数组中的一个元素,则P+1指向同一数组中的下一个元素. 引入指针变量后,就可以用俩种方法来访问数组元素了. 如果p的初值为&a[0],则: P+i 和a+i 就 ...
- Android 2.3 版本中链接边框问题解决
在做移动互联网开发的过程中,同样需要考虑到移动终端(如手机.平板)的不同版本浏览器兼容问题,在Android 2.3 版本的默认浏览器中有一个bug-会自动给所有链接文本在点击操作过程中加黄色或绿色边 ...
- JS分析URL字符串,取得参数名,AJAX传参请求代码示例
//当前页面URL中参数分析函数,正则校验 function getQueryString(name) { var reg = new RegExp("(^|&)" + n ...
- POJ 1028 Web Navigation 题解
考查代码能力的题目.也能够说是算法水题,呵呵. 推荐新手练习代码能力. 要添加难度就使用纯C实现一下stack,那么就有点难度了,能够使用数组模拟环形栈.做多了,我就直接使用STL了. #includ ...
- .NET的DTO映射工具AutoMapper
.NET的DTO映射工具AutoMapper 原文:https://github.com/AutoMapper/AutoMapper/wiki/Getting-started 参考:http://ww ...
- js 模拟QQ聊天窗口图片播放效果(带滚轮缩放)
页面效果如下: 完整代码如下: <!DOCTYPE html> <html> <head> <title>Test</title> < ...
- php中的$_GET怎样获取带有井号“#”的參数
<?php echo $_GET['key']; ?> 当url为http://test.com/c.php?key=999时,正常输出:999 当url为http://test.com/ ...
- C#使用Thrift简介,C#客户端和Java服务端相互交互
C#使用Thrift简介,C#客户端和Java服务端相互交互 本文主要介绍两部分内容: C#中使用Thrift简介 用Java创建一个服务端,用C#创建一个客户端通过thrift与其交互. 用纯C#实 ...
- MVC5搜索/查询 流程功能的实现
接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去Controller(控制器)里去搞一个搜索 ...