`
56553655
  • 浏览: 197674 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux修改系统环境变量是否需要重启机器

阅读更多

1、总结背景

在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。

2、变量简介

Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

3、定制环境变量

环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell(使用chsh命令)。

根据发行版本的情况,bash有两个基本的系统级配置文件:/etc/bashrc和/etc/profile。这些配置文件包含两组不同的变量:shell变量和环境变量。前者只是在特定的shell中固定(如bash),后者在不同shell中固定。很明显,shell变量是局部的,而环境变量是全局的。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。

注:Linux的环境变量名称一般使用大写字母

4、环境变量设置实例

1.使用命令echo显示环境变量

本例使用echo显示常见的变量HOME

$ echo $HOME

/home/kevin

2.设置一个新的环境变量

$ export MYNAME=”my name is kevin”

$ echo $ MYNAME

my name is Kevin

3.修改已存在的环境变量

接上个示例

$ MYNAME=”change name to jack”

$ echo $MYNAME

change name to jack

4.使用env命令显示所有的环境变量

$ env

HOSTNAME=localhost.localdomain

SHELL=/bin/bash

TERM=xterm

HISTSIZE=1000

SSH_CLIENT=192.168.136.151 1740 22

QTDIR=/usr/lib/qt-3.1

SSH_TTY=/dev/pts/0

……

5.使用set命令显示所有本地定义的Shell变量

$ set

BASH=/bin/bash

BASH_ENV=/root/.bashrc

……

6.使用unset命令来清除环境变量

$ export TEMP_KEVIN=”kevin”     #增加一个环境变量TEMP_KEVIN

$ env | grep TEMP_KEVIN          #查看环境变量TEMP_KEVIN是否生效(存在即生效)

TEMP_KEVIN=kevin #证明环境变量TEMP_KEVIN已经存在

$ unset TEMP_KEVIN            #删除环境变量TEMP_KEVIN

$ env | grep TEMP_KEVIN       #查看环境变量TEMP_KEVIN是否被删除,没有输出显示,证明TEMP_KEVIN被清除了。

7.使用readonly命令设置只读变量

注:如果使用了readonly命令的话,变量就不可以被修改或清除了。

$ export TEMP_KEVIN ="kevin"      #增加一个环境变量TEMP_KEVIN

$ readonly TEMP_KEVIN                  #将环境变量TEMP_KEVIN设为只读

$ env | grep TEMP_KEVIN          #查看环境变量TEMP_KEVIN是否生效

TEMP_KEVIN=kevin        #证明环境变量TEMP_KEVIN已经存在

$ unset TEMP_KEVIN          #会提示此变量只读不能被删除

-bash: unset: TEMP_KEVIN: cannot unset: readonly variable

$ TEMP_KEVIN ="tom"        #修改变量值为tom会提示此变量只读不能被修改

-bash: TEMP_KEVIN: readonly variable

8.通过修改环境变量定义文件来修改环境变量。

需要注意的是,一般情况下,仅修改普通用户环境变量配置文件,避免修改根用户的环境定义文件,因为那样可能会造成潜在的危险。

$ cd ~                                  #到用户根目录下

$ ls -a                                 #查看所有文件,包含隐藏的文件

$ vi .bash_profile                #修改用户环境变量文件

例如:

编辑你的PATH声明,其格式为:

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

你可以自己加上指定的路径,中间用冒号隔开。

环境变量更改后,在用户下次登陆时生效。

如果想立刻生效,则可执行下面的语句:$source .bash_profile

需要注意的是,最好不要把当前路径”./”放到PATH里,这样可能会受到意想不到的攻击。

完成后,可以通过$ echo $PATH查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于shell搜索的路径之外的程序了。

5、学习总结

1.Linux的变量种类

按变量的生存周期来划分,Linux变量可分为两类:

1.     永久的:需要修改配置文件,变量永久生效。

2.     临时的:使用export命令行声明即可,变量在关闭shell时失效。

2.设置变量的三种方法

1.     在/etc/profile文件中添加变量【对所有用户生效(永久的)】

用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量

# vi /etc/profile

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

2.     在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑guok用户目录(/home/guok)下的.bash_profile

$ vi /home/guok/.bash.profile

添加如下内容:

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

3.     直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

链接:http://www.6666-6666.com/p/post/29.html

分享到:
评论

相关推荐

    噢易机房BOSS系统介绍PPT

    win2003,XP,Linux等操作系统,从而达到一间机房多种实验环境。 单系统多频道功能可以为不同专业的课堂创造一个最优的系统环境,授权的教师可以在真实操作系统 上轻松扩展出多频道(操作系统环境),频道不占用...

    MQ服务消息队列介绍

    比如我的MQ客户端被Suse Linux下的root用户使用,那么,我们就需要在MQ的服务端(也就是Windows xp系统中添加名为"root"的用户)所在的计算机系统中添加名为"root"的用户。具体步骤如下: 点击"开始"-&gt;"控制面板"-...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在系统需要挂上大量NFS文件系统时可以加快加载的速度。 -f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。 -t vfstype:显示被加载文件系统的类型。 -n:...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    10.6 Linux下常见的性能分析工具 10.6.1 vmstat命令 10.6.2 sar命令 10.6.3 iostat命令 10.6.4 free命令 10.6.5 uptime命令 10.6.6 netstat命令 10.6.7 top命令 10.7 基于Web应用的性能分析及优化...

    cmd操作命令和linux命令大全收集

    CMD命令:开始-&gt;运行-&gt;键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 ...set 指定环境变量名称=要指派给变量的字符 设置环境变量 set 显示当前所有的环境变量...

    Hi3518_SDK中文资料

    1、开启Linux下的网络 # 设置网络 ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx; ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx; route add default gw xx.xx.xx.xx # 然后ping一下其他机器,如无意外,网络将...

    hadoop-2.4.1安装软件包以及教程jdk.zip

    伪分布式需要修改5个配置文件 3.1配置hadoop 第一个:hadoop-env.sh vim hadoop-env.sh #第27行 export JAVA_HOME=/usr/java/jdk1.7.0_65 第二个:core-site.xml &lt;!-- 指定HADOOP所使用的文件系统...

    网管教程 从入门到精通软件篇.txt

    Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

    MySQL5.1参考手册官方简体中文版

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MySQL 5.1参考手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MySQL 5.1参考手册 (中文版)

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    mysql官方中文参考手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MYSQL中文手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发...

    MySQL 5.1参考手册中文版

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发...

    MySQL 5.1中文手冊

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MySQL 5.1官方简体中文参考手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 2/24 页)2006-11-02 19:12:13 MySQL 5.1 Reference Manual 2.7. 在...

    mysql5.1中文手册

    在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3...

Global site tag (gtag.js) - Google Analytics