set:显示当前shell变量,用户变量包含当前用户

env:显示用户变量

export:显示当前导出成用户变量的shell变量

举例来说:

root@kali:~#
aaa=bbb            设置一个变量,此时设置的变量为shell变量

root@kali:~# echo $aaa          显示刚刚设置的变量

bbb

root@kali:~# set|grep aaa      显示并搜索当前的shell变量。找到刚刚设置的aaa变量

aaa=bbb

root@kali:~# env |grep aaa    显示并搜索当前登录用户的变量,由于aaa是shell变量。所以搜索不到

root@kali:~# export aaa         将aaa这个shell变量导出成用户变量

root@kali:~# env |grep aaa    这个时候搜索用户变量就能够搜索出aaa

aaa=bbb

root@kali:~#

每一个shell都有自己特有的变量,这和用户变量是不同的。当前用户变量和你用什么shell无关。无论你用什么shell都是存在的。比方HOME,SHELL等这些变量,但shell也有自己的变量,不同的shell是不同的,比方BASH_ARGC。
BASH等。这些变量仅仅有set才会显示,是bash特有的。export不加參数的时候,显示哪些变量被导出成了用户变量,由于一个shell自己的变量能够通过export “导出”变成一个用户变量。

清除环境变量用unset命令。set env  export设置的变量,都能够用unset来清除

另外,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 默认提示符是 $.

參考引用

http://www.opsers.org/base/set-env-and-export-the-difference-between-the-three-command.html

http://blog.csdn.net/longxibendi/article/details/6125075

http://www.linuxeden.com/html/sysadmin/20080424/56879.html

set、env、export差分的更多相关文章

  1. shell变量/环境变量和set/env/export用法_转

    转自:shell环境变量以及set,env,export的区别 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量,包括的私有变量以及用户变量.不 ...

  2. set env export区别

    set env export区别 set,env和export这三个命令都可以用来显示shell变量,区别[root@localhost root]# aaa=bbb[root@localhost r ...

  3. set,env,export,set -x,set -e;

    set 用来显示本地变量 env 用来显示环境变量 export 用来显示和设置环境变量 set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成 ...

  4. bash中的set, env, export unset的区别

    参考这篇文章很好 参考这篇文章2 -------------------------- == set显示的是当前shell的变量, 不同的shell, 它的私有变量是不同的 env是显示用户的变量, ...

  5. Linux set env export declare unset

    http://www.it165.net/os/html/201405/8390.html env /etc/profile 环境变量 系统提供 可改 set /etc/bashrc及用户自定义的变量 ...

  6. set,env,export,source,exec傻傻分不清楚?

    https://segmentfault.com/a/1190000013356532

  7. linux下的set, export, env的区别

    set和export的区别 set可以用来显示所有变量的值,而export能将一个变量导出,在其子shell或子进程也可见 export和env的区别 两者的作用是一样的,只是env是一个外部工具 基 ...

  8. env

    shell环境变量以及set,env,export的区别 原文链接 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量 包括的私有变量以及用户变量 ...

  9. Oracle数据库升级(10.2.0.4->11.2.0.4)

    环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzha ...

随机推荐

  1. Processing_百度百科

    Processing_百度百科 Processing

  2. Swift - 图像控件(UIImageView)的用法

    1,使用图像控件显示图片 1 2 3 var imageView=UIImageView(image:UIImage(named:"icon")) imageView.frame= ...

  3. 编写自己的单点登录(SSO)服务

    王昱 yuwang881@gmail.com   博客地址http://yuwang881.blog.sohu.com 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统其中.本文从 ...

  4. 14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器

    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器 当InnoDB 被开发, 内分配齐 提供了与操作系统和运行库往往缺乏 ...

  5. Java模拟POST表单提交HttpClient操作

    public static void Login() { String url = "http://www.***.com/login"; PostMethod postMetho ...

  6. Servlet API中文版

    基本类和接口 一.javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理 ...

  7. linux 下opensplice的简易安装

    http://www.prismtech.com/opensplice/opensplice-dds-community/software-downloads 下载对应我选择的是: OpenSplic ...

  8. Twenty Newsgroups Classification实例任务之TrainNaiveBayesJob(一)

    接着上篇blog,继续看log里面的信息如下: + echo 'Training Naive Bayes model' Training Naive Bayes model + ./bin/mahou ...

  9. Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET

    Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET Python -- 堆数据结构 heapq 分类: Python 2012-09 ...

  10. (step5.1.2)hdu 1305(Immediate Decodability——字典树)

    题目大意:输入一系列的字符串,判断这些字符串中是否存在其中的一个字符串是另外一个字符串的前缀.. 如果是,输出Set .. is not immediately decodable 否则输出Set . ...