shell环境变量以及set,env,export的区别

一.shell环境变量的分类以及set env export的区别:

 

set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样

env:显示(设置)用户变量变量

export:显示(设置)当前导出成用户变量的shell变量。

 

举个例子来讲:

  

[c-sharp] view plaincopy
  1. [oracle@zhou3 ~]$ aaa=bbb --shell变量设定     
  2. [oracle@zhou3 ~]$ echo $aaa      
  3. bbb     
  4. [oracle@zhou3 ~]$ env| grep aaa --设置完当前用户变量并没有     
  5. [oracle@zhou3 ~]$ set| grep aaa  --shell变量有     
  6. aaa=bbb     
  7. [oracle@zhou3 ~]$ export| grep aaa --这个指的export也没导出,导出变量也没有     
  8. [oracle@zhou3 ~]$ export aaa   --那么用export 导出一下     
  9. [oracle@zhou3 ~]$ env| grep aaa  --发现用户变量内存在了     
  10. aaa=bbb  

 

总结:linux 分 shell变量(set),用户变量(env), shell变量包含用户变量,export是一种命令工具,是显示那些通过export命令把shell变量中包含的用户变量导入给用户变量的那些变量.

 

二:使用unset命令来清除环境变量,注意set env  export设置的变量,都可以用unset来清除的

[c-sharp] view plaincopy
  1. 清除环境变量的值用unset命令。如果未指定值,则该变量值将被 设为NULL。示  
  2. 例如下:    
  3. $ export TEST="Test..." #增加一个环境变量TEST    
  4. $ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了    
  5. TEST=Test...    
  6. $ unset $TEST #删除环境变量TEST    
  7. $ env|grep TEST #此命令没有输出,证明环境变量TEST已经不存在了  

 

三:使用readonly命令设置只读变量

[c-sharp] view plaincopy
  1. 使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:  
  2. $ export TEST="Test..." #增加一个环境变量TEST  
  3. readonly TEST #将环境变量TEST设为只读  
  4. $ unset TEST #会发现此变量不能被删除  
  5. -bash: unset: TEST: cannot unset: readonly variable  
  6. $ TEST="New" #会发现此也变量不能被修改  
  7. -bash: TEST: readonly variable  

 

四:最根本的设置、更改变量的配置文件 ~/.bash_profile   ~/.bashrc   ~/.bash_logout

~/.bash_profile  用户登录时被读取,其中包含的命令被执行

~/.bashrc  启动新的shell时被读取,并执行

~/.bash_logout  shell 登录退出时被读取

 

此外,shell(这里指bash)的初始化过程是这样的:

1.bash 检查文件/etc/profile 是否存在

2. 如果存在,bash 就读取该文件,否则,跳过

3.bash 检查主目录下的文件.bash_profile 是否存在。

4. 如果存在,bash 就读取該文件,否则,跳过

5.bash 检查主目录下的.bash_login 是否存在。

6. 如果存在,bash 就读取该文件,否则,跳过

7.bash 检查主目录下的文件.profile 是否存在

8. 如果存在, bash 就读取该文件,否则,跳过。

这些步骤都执行完后,就出现提示符了, ksh 默认提示符是 $.

 

 

五:常见的shell变量

PATH 这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如ls、rc-update或者emerge) 不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。  
ROOTPATH 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。  
LDPATH 这个变量包含了一系列用冒号隔开的目录,动态链接器将在这些目录里查找库文件。 
MANPATH 这个变量包含了一系列用冒号隔开的目录,命令man会在这些目录里搜索man页面。  
INFODIR 这个变量包含了一系列用冒号隔开的目录,命令info将在这些目录里搜索info页面。  
PAGER 这个变量包含了浏览文件内容的程序的路径(例如less或者more)。  
EDITOR 这个变量包含了修改文件内容的程序(文件编辑器)的路径(比如nano或者vi)。  
KDEDIRS 这个变量包含了一系列用冒号隔开的目录,里面放的是KDE相关的资料。 
CONFIG_PROTECT 这个变量包含了一系列用空格隔开的目录,它们在更新的时候会被Portage保护起来。 
CONFIG_PROTECT_MASK 这个变量包含了一系列用空格隔开的目录,它们在更新的时候不会被Portage保护起来。

 

 

PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:是指当前用户的邮件存放目录。
SHELL:是指当前用户用的是哪种Shell。
HISTSIZE:是指保存历史命令记录的条数
LOGNAME:是指当前用户的登录名。 
HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 
PS1:是基本提示符,对于root用户是#,对于普通用户是$。
PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。 
# PS1=" Hello,My NewPrompt :) "

 

 

声明:本文档可以随意更改,但必须署名原作者

作者:凤凰舞者 qq:578989855

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

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

相关文章

linux 字符串截取_linux下可执行文件分析

一 背景也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可执行文件。二 常用二进制文件静态分…

Objective-C 的OOP(下)-类(static)方法、实例方法、overwrite(覆写)、属性(property)...

先来定义一个Human父类 定义部分&#xff1a; 1234567891011121314151617181920 //// Human.h// OOP//// Created by jimmy.yang on 11-2-9.// Copyright 2011 __MyCompanyName__. All rights reserved.// #import <Foundation/Foundation.h> interface Human : NS…

介绍最全的LVS负载均衡技术

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率&#xff0c;将请求均衡地转移到不同的服务器上执行&#xff0c;且调度器自动屏蔽掉服务器的故障&#xff0c;从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透…

linux 版本_Linux动态库版本号作用机制

熟悉linux的都知道&#xff0c;linux的动态库如果有版本号的话&#xff0c;一般是libsample.so.x.y.z这样的名字。x.y.z对应的就是major.minor.release(即主.次.发布)版本号Major&#xff1a;大版本更新&#xff0c;前后都不兼容(比如移除api&#xff0c;又新增api)Minor&#…

信息系统项目管理系列之九:项目质量管理

信息系统项目管理系列之九&#xff1a;项目质量管理 信息系统项目管理系列之九&#xff1a; 项目质量管理 发布日期&#xff1a;2011年4月9日 星期六 作者:EricHu 说明&#xff1a;本文属作者的读书笔记。 勤能补拙、笨鸟先飞。 本篇主要内容如下&#xff1a; 项目质量管…

arcgis在面内创建随机点

在数据管理工具下选择要素类&#xff0c;在要素类下选择创建随机点

python tkinter listbox_Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中

Python : 3.7.0OS : Ubuntu 18.04.1 LTSIDE : PyCharm 2018.2.4Conda : 4.5.11typesetting : Markdowncode"""Author : 行初心Date : 18-10-1Blog : www.cnblogs.com/xingchuxinGitee : gitee.com/zhichengjiu"""from tkinter import *def main(…

Apple`s Steve Jobs Has Reshaped(重塑) the Tech World: 10 Ways He Did It

A new book is in the works that promises to shed(除掉, 使脱落, 使流出, 使清晰) more light on Apple. Dubbed(命名的, 配音的, 译制的) “iSteve: The Book of Jobs,” the book, which is written by Walter Isaacson, is an authorized biography of Apple co-founder S…

python中osgeo库使用教程链接

1. 地理数据处理软件包GDAL简介 2. GDAL python教程&#xff08;1&#xff09;——用OGR读写矢量数据 3. GDAL python教程&#xff08;2&#xff09;——几何形状geometry与投影projection4. GDAL python教程&#xff08;3&#xff09;——过滤器&#xff0c;简单的空间分析&…

TrueFFS原理

TrueFFS原理 引用TrueFFS原理及其在CF卡上的实现的部分内容 “1、Wear-Leveling 闪速存储器不能无限次重复使用。它的每个扇区的擦除次数虽然很大&#xff0c;但却有限&#xff1b;因此&#xff0c;随着使用次数的加长&#xff0c;它最终会变成只读状态&#xff0c;所以应该尽…

winform 判断控件有没有被遮挡_编程入门基础之 winform(2)

在编程入门1中&#xff0c;我们通过WINFORM等控件画出了登录界面&#xff0c;我们今天写登录界面的登录按钮事件。装修预算小程序登录按钮事件在上图中&#xff0c;我们看到了&#xff0c;有几个判断 &#xff0c;在C#中&#xff0c;if ,else是作为条件判断语句来使用。条件判断…

利用python读取点矢量对应栅格值

每行代码都有详细注解 所需库 # GDAL是栅格和矢量地理空间数据格式的转换器库 # 旧版本加载库的方法 #import gdal,gdalconst # from 语句让你从模块中导入一个指定的部分到当前命名空间中 # GDAL数据驱动,与OGR数据驱动类似 gdal是读取栅格数据 ogr是读取矢量数据 # 查看支持…

在CF卡上实现TrueFFS

CF卡是一种基于Flash技术的容量大、携带方便的存储介质&#xff0c;已在嵌入式系统等领域得到广泛的应用&#xff1b;但是&#xff0c;有限的擦写次数极大地限制了CF卡的使用寿命。TrueFFS通过一系列算法&#xff0c;能够延长CF卡的使用寿命&#xff0c;提高CF卡的使用效率。文…

python中安装opencv一直说不是内部或外部文件_Window系统下Python如何安装OpenCV库

关于OpenCV简介OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ruby、MATLAB等语言的接口&#xff0c;实现了图…

解决input设置背景后,在ie7下浏览内容过长背景跟着滚动

先发发牢骚&#xff0c;万恶的IE啊。这么点问题害我走弯路&#xff0c;浪费时间&#xff0c;浪费生命。本以为加上background-attachment:fixed;问题就没了&#xff0c;结果问题依然存在&#xff0c;查资料说好像是ie bug。无语&#xff0c;天杀的IE&#xff0c;谁叫人家IE是老…

python打开文件中文名_windows下Python打开包含中文路径名文件

windows使用gbx(gb2312,gbk,gb18030我也不知道是哪个)对文件名及文件路径进行编码保存。打开文件的函数中使用诸如open(filename.encode(‘gbk‘))可以很好的解决。#coding:utf8if __name__ ‘__main__‘:srcfile r"D:/测试路径/测试文件.txt"f open(srcfile.deco…

利用python读取栅格数据

代码具有详细说明注释 所需库 #gdalconst中的常量都加了前缀&#xff0c;力图与其他的module冲突最小 from osgeo import gdal,gdalconst from osgeo import gdal_array as ga # 用于引入一个模块的同时为该模块取一个别名 from osgeo.gdalconst import GA_ReadOnly# 开始对栅…

uC/GUI 在Cortex-M3 内核上的移植

屈环宇--嘉兴学院一、简介是一种专为嵌入式系统设计的图形界面支持系统。它的代码全部由标准C编写&#xff0c;模块化的设计&#xff0c;具有很强的可移植性。uC/GUI 适应大多数的黑白或彩色LCD 的应用&#xff0c;还提供一个可扩展的2D 图形库及占用极少RAM 的窗口管理体系。二…

从零开始破解WEP、WPA无线网络

以前出差时在机场用过无线网络&#xff0c;小区内是否也有无线网络呢&#xff1f;随便一搜&#xff0c;果然有几个无线网络信号&#xff0c;于是打起了免费蹭网的主意&#xff0c;但信号最好的几个网络的WEP或WPA密码成为了一个门坎&#xff0c;于是在公司上网查到相关资料&…