Linux中环境变量文件及配置

 

一、环境变量文件介绍

转自:http://blog.csdn.net/cscmaker/article/details/7261921

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。
所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]:

1.系统级:
(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件。
(2)/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。

2.用户级(这些文件处于家目录下):
(1)~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方
(2)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率肯定有影响。
~/.bash_profile or ~./bash_login:这里没有引用作者的,下面会提到
~/.pam_environment:用户级的环境变量设置文件,没有做测试,不知道管不管用。

通过上面的文件介绍,就能明白我们需要设置环境变量的时候,需要修改什么文件,要想对所有的用户生效,那就需要设置系统级的环境变量。反之,需要修改用户级的文件(最好是修改.profile文件,理由上面已经讲了)。

另外,我使用的是Ubuntu10.04,之前在查找资料设置用户级环境变量的时候,有资料说要修改~.bash_profile文件,但是在ubuntu10.04系统中是没有该文件。经查找,在ubuntu官网[2]上找到了这个文件的说明:

~/.bash_profile or ~./bash_login - If one of these file exist, bash executes it rather then "~/.profile" when it is started as a login shell. (Bash will prefer "~/.bash_profile" to "~/.bash_login"). However, these files won't influence a graphical session by default.

意思应该是说当这个文件存在时,在登录shell时会读取./bash_profile文件,而不是.profile文件。我认为该文件实现的目的 跟.profile文件是一样的,当查找的资料中需要你修改.bash_profile文件,但却你没有该文件的时候,也可以修改.profile来完成 实现。

[1]http://cab402.appspot.com/2010/05/1/UbuntuEnvironmentVariablesSet.html

[2]https://help.ubuntu.com/community/EnvironmentVariables

二、配置环境变量实战

1.配置java环境变量

(1)首先在官方网站上下载jdk安装文件,我下载的为:jdk-7u5-linux-i586.tar.gz,当然也可以下载.bin格式的文件,但是这种文件与本文介绍的tar格式的文件在解压缩方面有所不同,这里不再详细介绍;

(2)解压缩该文件,解压后的文件名为:jdk1.7.0_05;将其拷贝到一个文件目录,我放入的是:/home/stopit/software目录,所以当前jdk路径为/home/stopit/software/jdk1.7.0_05,这里将/home/stopit/software/jdk1.7.0_05用xxx替代;

(3)根据上文介绍的几个linux环境变量文件,我们选择profile文件写入我们的环境变量;使用 suodo gedit /etc/proifle  命令打开该文件,并输入以下命令:

#修改java运行环境
export JAVA_HOME="xxx"
export PATH="$PATH:$JAVA_HOME/bin"
export JRE_HOME="$JAVA_HOME/jre"
export CLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib"

(4)修改完成后,使用source /etc/profile 命令进行更新;

(5)下面这几步比较重要,因为在许多linux系统中都预装了openjdk,所以即使上面进行了这些设置,系统默认的还不是我们要设置的内容;如果要真正使用我们自己的jdk,还需要一下步骤:

sudo update-alternatives --install /usr/bin/java java xxx/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac xxx/bin/javac 300

(这里的300只是标识一下,没什么意义,只是下一步要用到)

sudo update-alternatives --config java

执行这步会列出系统上的所有已安装的java,然后自己选择,即选最后为300的那个

sudo update-alternatives --config javac

同上

注意:有些文章上说仅仅使用一下语句即可:
sudo update-alternatives –config java,笔者没有尝试过!

(6)大功告成,使用java -version 命令来查看我们的java环境变量,显示如下内容:

java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) Server VM (build 23.1-b03, mixed mode)

2.配置tomcat环境变量

(1)从官方网站上下载tomcat软件包。

http://tomcat.apache.org/

点击左侧的 download的一个版本,我选择的是 tomcat6.x,你可以根据自己的实际情况进行选择安装,点击超连接,选择 Binary Distributions 下的tar.gz (pgp, md5) 压缩包,进行下载

(2)下载到本地后,进行解压

#tar zxvf apach-tomcat-6.0.16.tar.gz

#mv apach-tomcat-6.0.16 /usr/local

(3)进行tomcat环境的配置(前提需要安装jdk)

sudo geidt /etc/profile

输入以下内容

export TOMCAT_HOME=xx

xx同上,为你的tomcat安装路径

保存退出

(4)# source /etc/profile //让当前配置立即生效

(5)启动tomcat服务器,运行如下内容

sudo xx/bin/startup.sh

注:(不可手动双击文件下的startup.sh执行),暂时不知是否可行

我的电脑上会出现如下内容:

Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.16

Using CATALINA_HOME: /usr/local/apache-tomcat-6.0.16

Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.16/temp

Using JRE_HOME: /usr/local/jdk1.6.0_04

(6)在浏览器中输入http://localhost:8080/就可以看到tomcat的log了

tomcat的安装到此结束。

(7)如果遇到问题可参考:http://forum.ubuntu.org.cn/viewtopic.php?t=183813

(8)后续配置:

——停止Tomcat服务 
$sudo /opt/tomcat/bin/shutdown.sh

——获得MySQL的JDBC,在Firefox浏览器的地址栏中输入http: //dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.10.tar.gz/from/http: //mysql.cbn.net.id/以得到该软件。

——安装JDBC 
$tar -zxvf mysql-connector-java-3.1.10.tar.gz 
$sudo cp mysql-connector-java-3.1.10/mysql-connector-java-3.1.10-bin*.jar /usr/lib/j2sdk1.5-sun/lib

——配置Tomcat的端口

Ubuntu自带的Tomcat打开的是8180端口,既不符合常规,也不利于使用。我们可以做一些简单的修改,让Tomcat使用其他的端口进行服务。在Terminal中,输入
sudo gedit /usr/share/tomcat5/conf/server.xml

在配置文件中查找
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector" port="8180"

并把其中的8180替换成需要的端口。一般情况下,可以替换成80或者是8080。如果设置成80,那么在浏览器中直接输入http://localhost就可以访问到Tomcat的页面。 重新启动Tomcat生效。

——设置Tomcat管理员帐号

Tomcat的用户帐号信息都保存在tomcat-users.xml的文件中,运行
sudo gedit /usr/share/tomcat5/conf/tomcat-users.xml

在</tomcat-users>的标签前添加一行
<user username="用户名" password="密码" roles="admin,manager"/>

保存并关闭。重新运行tomcat即可输入该用户名和密码,登录Tomcat的管理页面。

——安装最新版本的Tomcat

我们接下来介绍直接从Apache Tomcat的主页上下载并使用最新版本5.5.17的Tomcat软件,该方法方便快捷而且并不影响系统的稳定性。

从tomcat的官方下载页面http://tomcat.apache.org/download-55.cgi

下载Binary->Core分类中的zip或者tar.gz包后,本地解压缩并将新生成的目录重命名为tomcat,以方便使用。将这个文件夹移动至某路径PATH/。 参考以上设置环境变量和端口设置等步骤,大功告成! 直接运行

PS,开始的时候用apt-get安装tomcat5.5,总是出现无法安装成功,在shutdown时,出来java异常,最后实在没有办法了,用
sudo apt-get remove tomcat5.5
把它给卸载了.重新下载安装,不用apt-get

Linux中环境变量文件及配置的更多相关文章

  1. Linux中环境变量文件及配置(转载)

    一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...

  2. Linux中环境变量文件

    一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...

  3. Linux中环境变量文件profile、bashrc、bash_profile之间的区别和联系

    /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. 英文描述为: # /etc/pr ...

  4. Linux中环境变量中文件执行顺序

        Linux 的变量可分为两类:环境变量和本地变量   环境变量:或者称为全局变量,存在于所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux 的环境变量具有 ...

  5. Linux中环境变量的设置

    目录 环境变量 Shell定义的环境变量 查看环境变量 Linux下环境变量的设置 环境变量 在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软 ...

  6. linux中环境变量设置

    Linux下环境变量设置的三种方法: 如想将一个路径加入到$PATH中,可以像下面这样做: 只对当前的shell 起作用的环境变量 1.控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用 ...

  7. Linux中环境变量到底写在哪个文件中?解析login shell 和 no-login shell

    login shell:取得bash 时需要完整的登入流程,就称为login shell.举例来说,同tty1~tty6登入时, 需要输入用户名和密码,此时取得的bash就称为login shell ...

  8. Linux中环境变量相关文件的区别

    Linux下各种不同环境变量相关文件的作用: 1. /etc/environment  设置整个系统的环境,系统启动时,该文件被执行. 2. /etc/profile     设置所有用户的环境,当用 ...

  9. linux 中环境变量配置错误导致部分命令不能使用包括vi

    1,使用 /bin/vi  /etc/profile 可以打开环境变量 2,修改正确后,重启

随机推荐

  1. C++ 画星号图形——空心三角形(星号左对齐)(核心代码介绍)

    //输出一个由星号组成的三角形(星号左对齐) int a;//控制组成三角形的星号的行数 cout<<"请输入要组成三解形的星号的行数n(n>=2):\n"; c ...

  2. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-3 底层驱动之LED_蜂鸣器

    视频简介: 该视频介绍iCore3应用开发平台出厂源代码中GPIO的配置方法 及如何点亮LED和驱动蜂鸣器发声. 源视频包下载地址: http://pan.baidu.com/s/1nvpYMff   ...

  3. HTML5 history新特性pushState、replaceState

    DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,让你可以在用户的访问记录中前进和后退. 从HTML5开始,我们可以开始操作这个历史记录堆栈. 1.Histo ...

  4. 第一个Spring Boot Web程序

    需要的环境和工具: 1.Eclipse2.Java环境(JDK 1.7或以上版本)3.Maven 3.0+(Eclipse已经内置了) 写个Hello Spring: 1.新建一个Maven项目,项目 ...

  5. Matlab中常用机器学习函数

    更多内容请参考http://cn.mathworks.com/help/stats/index.html?s_cid=doc_ftr. Naive Bayes(朴素贝叶斯) Factor = Naiv ...

  6. Spark会把数据都载入到内存么

    转载自:https://www.iteblog.com/archives/1648 前言: 很多初学者其实对于Spark的编程模式还是RDD这个概念理解不到位,就会产生一些误解.比如,很多时候我们常常 ...

  7. 两个有意思的模式在ECMAScript中的实现

    简介 本篇文章对设计模式进行了筛选, 只列举两个有意思(坑)的设计实现, 如有错误愿闻其详. 构造函数 ECMAScript中的构造函数和其他语言的有那么点特别之处,可以认为, 一个函数, 如果被以n ...

  8. Unix时间戳

    Unix时间戳 http://www.linuxidc.com/Linux/2016-01/127572.htm 这里的时间戳,指的就是Unix时间戳(Unix timestamp).它也被称为Uni ...

  9. iOS10 - 访问系统通讯录新方法

    所需框架 #import <ContactsUI/ContactsUI.h> 遵循代理 CNContactPickerDelegate 调用通讯录 如果在iOS10的机器上调用以前的ABP ...

  10. 分析App应用市场, App应用有哪些类型

    随着移动互联网的流行,APP应用也是异常火爆,App应用市场就如破冰的泉水在我们的生活中到处渗透,对于App开发的的状况来分析,企业在寻找技术人员开发一款专业的App软件的时候,必须先了解用户的需求与 ...