Linux 环境变量配置

 

From:https://www.linuxidc.com/Linux/2015-08/121192.htm

.bash_profile和.bashrc的区别(如何设置生效):https://www.cnblogs.com/persist/p/5197561.html

 

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。

1. 系统级:

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

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

 

 

Linux的变量种类

 

按变量的生存周期来划分,Linux变量可分为两类: 
        1.  永久的:需要修改配置文件,变量永久生效。 
        2.  临时的:使用 export 命令 声明即可,变量在关闭shell时失效。

 

 

设置变量的三种方法

 

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 文件中增加变量(或者在用户家目录下的  .bashrc增加变量),增加的变量仅会对当前用户有效,并且是 “永久的”。 
例如:编辑 guok 用户目录 (/home/guok) 下的 .bash_profile 
$ vi /home/guok/.bash.profile 
添加如下内容: 
export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib 
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

 

.bash_profile 和 .bashrc 的区别:

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从 /etc/profile.d 目录的配置文件中搜集 shell 的设置。
/etc/bashrc:为每一个运行 bash shell 的用户执行此文件。当 bash shell 被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的 .bashrc 文件。
~/.bashrc:该文件包含专用于你的 bash shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该该文件被读取.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

另外,/etc/profile 中设定的变量(全局)的可以作用于任何用户,而 ~/.bashrc 等中设定的变量(局部)只能继承 /etc/profile 中的变量,他们是"父子"关系.

 

~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常 .bash_profile  会调用 .bashrc  

设置生效:可以重启生效,也可以使用命令:source 

        alias php=/var/eyouim/pub/php/bin/php
        source /etc/profile

 

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

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

查看是否已经设好,可用命令export查看:  
[root@localhost bin]# export 

设置一个新的环境变量hello 
$ export HELLO="Hello!" 
$ echo $HELLO 

 

环境变量的查看

1 使用 echo 命令查看单个环境变量。例如: echo $PATH  或者  $ echo $HOME 
2 使用 env 命令查看所有环境变量。例如:env 
3 使用 set 命令查看所有本地定义的Shell变量 。例如:set

 

使用unset删除指定的环境变量

set 命令可以设置某个环境变量的值。unset命令可以清除环境变量的值。如果未指定值,则该变量值将被设为NULL。

示例如下: 

        $ export TEST="Test..." # 增加一个环境变量TEST 
        $ env | grep TEST            # 此命令有输入,证明环境变量TEST已经存在了 
         TEST=Test... 
         unset  TEST                  # 删除环境变量TEST 
         $ env|grep TEST           # 此命令没有输出,证明环境变量TEST已经删除

 

使用readonly命令设置只读变量 

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

$ export TEST="Test..."           #增加一个环境变量TEST 
$ readonly TEST                     #将环境变量TEST设为只读 
$ unset TEST                          #会发现此变量不能被删除 
-bash: unset: TEST: cannot unset: readonly variable 
$ TEST="New"                      #会发现此也变量不能被修改 
-bash: TEST: readonly variable 
环境变量的设置位于/etc/profile文件 
如果需要增加新的环境变量可以添加下属行 
export path=$path:/path1:/path2:/pahtN

 

常用的环境变量

PATH     决定了shell将到哪些目录中寻找命令或程序 
HOME   当前用户主目录 
HISTSIZE     历史记录数 
LOGNAME    当前用户的登录名 
HOSTNAME 指主机的名称 
SHELL           当前用户Shell类型 
LANGUGE  语言相关的环境变量,多语言可以修改此环境变量 
MAIL         当前用户的邮件存放目录 
PS1           基本提示符,对于root用户是#,对于普通用户是$

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Effective Java~36. 用EnumSet 代替位域

如果枚举类型的元素主要用于集合中,一般来说使用 int 枚举模式(条目 34),下面将 2 的不同倍数赋值给每个常量: // Bit field enumeration constants - OBSOLETE! public class Text {public static final int STYLE_B…

在ACCESS中使用Group By语句

这样写不行,认为金额是一个变量 SELECT 编号, sum(本金) AS 金额 FROM sk GROUP BY 编号 ORDER BY 金额 只有这样 select * from (SELECT 编号, sum(本金) AS 金额 FROM sk GROUP BY 编号) ORDER BY 金额转载于:https://www.cnblogs.com/vincentfeng/archive/2009/1…

AI综述专栏 | 朱松纯教授浅谈人工智能:现状、任务、构架与统一

作者:朱松纯来源:人工智能前沿讲习班导读本文作者:朱松纯,加州大学洛杉矶分校UCLA统计学和计算机科学教授,视觉、认知、学习与自主机器人中心主任。文章前四节浅显探讨什么是人工智能和当前所处的历史时期,…

linux的grub损坏,如何利用Grub命令启动损坏的Linux系统?

能你的电脑因为某些原因损坏不能自动启动了。当然原因很多,可能的现象也很多。这里说一下这种情况下的处理方法,即:屏幕上提示 “ grub> ” ,但你的硬盘上数据没有丢失,各分区都是好的。这种情况是你的 grub 信息损…

.net打包自动安装数据库

一).创建部署项目 1. 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 2. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入 setup1。 3. 单击“确…

Effective Java~37. 用EnumMap 代替序数索引

有时可能会看到使用 ordinal 方法(条目 35)来索引到数组或列表的代码。 例如,考虑一下这个简单的类来代表一种植物: class Plant {enum LifeCycle { ANNUAL, PERENNIAL, BIENNIAL }final String name;final LifeCycle lifeCycle;…

Python操作MSSQL

Python连接SQL Server数据库 - pymssql使用基础:https://www.cnblogs.com/baiyangcao/p/pymssql_basic.html 廖雪峰官网 之 Python 访问数据库(SQLLite / MySQL / SQLAlchemy) pymssql examples :http://pymssql.org/en/stable/p…

联想linux笔记本评测,联想(lenovo)G460AL-ITH Linux笔记本电脑接口评测-ZOL中关村在线...

模具和外观的“革新”让我们见识到不一样的联想G460,而在整机的接口扩展能力方面依旧主打实用性。机身左侧从左至右依次是安全锁孔、散热孔、RJ-45以太网接口、VGA视频输出接口、USB2.0接口、e-SATA接口(兼容USB2.0)、Express Card卡槽和HDMI高清视频输出接口。与前…

联合国召开会议讨论“杀手机器人”问题

来源:中国科学报 作者:赵熙熙来自29个国家的57位科学家日前呼吁联合抵制一所韩国大学,因为设立在该校的一个新的中心旨在利用人工智能强化国家安全。人工智能科学家表示,该大学正在开发自主武器,又称“杀手机器人”&a…

Effective Java~38. 用接口模拟可扩展的enum

使用枚举类型有一个很好的方法来实现这种效果。基本思想是利用枚举类型可以通过为 opcode 类型定义一个接口,并实现任意接口。 // Emulated extensible enum using an interface public interface Operation {double apply(double x, double y); } public enum Ba…

C语言的叙述大小写字母e1相同,第1、2章C语言基础练习题

第1章 C语言基础 第2章 顺序结构 练习题 学号: 姓名:单选:1. 当代电子计算机能够自动地处理指定的问题是因为( )。A. 计算机是电动的B. 有解决该问题的计算机程序 C. 事先存储了解决该问题的程序 D. 以上都不是2. C语言源程序的基本单位是( )…

咱也开始玩z-blog了

目前来讲,国内的个人网站基本上用wordPress于z-blog的比较多,wordPress用PHP开发的,z-blog用的是asp,鉴于PHP空间相对asp对一些,维护起来也比asp麻烦一点,众多个人站长中,相信看得懂一点asp的比…

Python 执行 shell命令 的几个方法小结

参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令的相关 模块 和 函数 有: os.systemos.spawnos.popen --- 废弃popen2.* --- 废弃commands.* --- 废弃&#x…

linux离线安装docker,centos离线安装docker

1.下载依赖包提取码: 3tus2. 先安装如下rpm依赖文件audit-libs-python-2.8.4-4.el7.x86_64.rpmcheckpolicy-2.5-8.el7.x86_64.rpmlibcgroup-0.41-20.el7.x86_64.rpmlibseccomp-2.3.1-3.el7.x86_64.rpmlibsemanage-python-2.5-14.el7.x86_64.rpmpolicycoreutils-2.5-29.el7.x86…

Effective Java~42. Lambda 优于匿名类

在 Java 8 中,添加了函数式接口, lambda 表达式和方法引用,以便更容易地创建函数对象。下面是一段代码片段,按照字符串长度顺序对列表进行排序,使用匿名类创建排序的比较方法 (强制排序顺序)&am…

Python 远程部署利器 Fabric2 模块

fabric 官网英文文档:http://www.fabfile.org/ 《Python自动化运维技术与最佳实践》 如何用 Fabric 实现无密码输入提示的远程自动部署: fabric实现远程操作和部署: 简介 Fabric 是一个 Python 的库,同时它也是一个命令行工具。…

【转】近期Coolite控件的技术点总结

1。Coolite下如何自定义控件样式表Code1<style type"text/css"> 2 .x-grid3-td-fullName .x-grid3-cell-inner {}{ 3 font-family:tahoma, verdana; 4 display:block; 5 font-weight:normal; 6 font-style…

Anaconda 完全入门指南

From&#xff1a;https://www.jianshu.com/p/eaee1fadc1e9 Anaconda官网&#xff1a;https://www.anaconda.com/ Anaconda 官网 文档&#xff1a;http://docs.anaconda.com/anaconda/user-guide Anaconda介绍、安装及使用教程&#xff1a;https://zhuanlan.zhihu.com/p/32925…

Effective Java~43. 方法引用优于Lambda

Java 提供了一种生成函数对象的方法&#xff0c;比 lambda 还要简洁&#xff0c;那就是&#xff1a;方法引用&#xff08; method references&#xff09;。下面是一段程序代码片段&#xff0c;它维护一个从任意键到整数值的映射。如果将该值解释为键的实例个数&#xff0c;则该…

linux资源使用统计指南,指南:工作量分析文档

指南&#xff1a;工作量分析文档工作量分析文档工作量分析文档用于在不同的性能测试中确定要使用的变量并定义变量值&#xff0c;利用这些性能测试可以模拟主角特征、最终用户业务功能(用例)、负载和容量。主题软件质量要从不同的维度来进行评估&#xff0c;其中包括可靠性、功…