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的区别

    原文连接:http://www.linuxidc.com/Linux/2011-08/40478.htm 一.shell环境变量的分类以及set env export的区别: set:显示(设置)sh ...

  2. Linux set命令参数及与env, export的区别

    原文连接:http://blog.csdn.net/bytxl/article/details/24983423 linux  set 命令 功能说明:设置shell. 语 法:set [+-abCd ...

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

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

  4. set, setenv, export的区别

    set, setenv, export的区别 写在前头,首先要认识何为环境变量 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文 ...

  5. 变量相关命令(env,export,set,read, array, declare)

    http://blogold.chinaunix.net/u3/93184/showart_1868073.html 查询变量:env,export,set env 是 environment (环境 ...

  6. SVN中检出(check out) 和 导出(export) 的区别

    SVN是常用的一种常见的版本控制软件.SVN中检出(check out) 和 导出(export) 的区别主要有如下几条: check out跟check in对应,export跟import对应. ...

  7. docker save 与 docker export 的区别

    缘起 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. docker save和docker export都能导出镜像包,咋看起来区别似乎不大.本文就 ...

  8. Linux - #!/bin/bash 和 #!/usr/bin/env bash 的区别

    起因 为什么会想到写 #!/bin/bash 和 #!/usr/bin/env bash 的区别呢?还要从一次装插件的过程说起. 由于刚开始接触 Shell Script 不久,对一些语法用法等还不是 ...

  9. docker save与docker export的区别

    http://cnodejs.org/topic/59a2304f7aeedce818249eeb 缘起 docker save和docker export都能导出镜像包,咋看起来区别似乎不大.本文就 ...

最新文章

  1. 直接依赖,间接依赖,可选依赖,排除依赖,依赖冲突
  2. 无法挂载 NTFS格式的分区:mount: unknown filesystem type ‘ntfs’
  3. CentOS 6.7 如何启用中文输入法
  4. HDU 2516 取石子游戏 斐波纳契博弈
  5. [CF/AT]各大网站网赛 体验部部长第一季度工作报告
  6. NanUI文档 - 如何实现C#与Javascript的相互通信
  7. 教你怎样做好计划 将愿望慢慢实现
  8. 使用jmeter 上传文件
  9. 纯前端控件集 WijmoJS 2018V2发布,提供可视化设计器,在React、Vue和Angular中的更易用...
  10. 可通过http获取远端服务信息_(二)NebuLogMvcSample如何获取应用日志并定制输出...
  11. L1-017 到底有多二 (15 分) C语言
  12. TortoiseSVN常见用法
  13. 游戏鼠标的dpi测试软件,鼠标dpi查看_自己就可以测试鼠标的DPI
  14. Android push到/system/app下,导致找不到so文件,抛出java.lang.UnsatisfiedLinkError的原因分析和解决方案
  15. 面向对象:找个温暖的人一起慢慢变老
  16. 一键解锁,2022阿里顶会创新技术前沿进展
  17. 微信web开发者工具 linux,Linux微信web开发者工具
  18. cos和sin的使用
  19. 第一届PyCon China小记
  20. 计算机公式与函数试题,计算机国考样题EXCEL之公式与函数的应用一

热门文章

  1. AXI_Lite 总线详解
  2. 武汉市洪山区高新技术企业认定奖励标准及申请材料、条件、要求
  3. docker nginx部署.net core后端站点和angular前端站点
  4. Ubuntu系统下卸载命令apt-get remove/purge/autoremove/clean/autoclean的区别
  5. 【英语阅读】纽约时报 | 乔布斯是对的:手机和iPad杀死了个人电脑
  6. windows安装kerberos,及通常问题解决
  7. 【ML4CO论文精读】具有离散拆分送货和取货的车辆路径问题的禁忌搜索算法(Meng Qiu, 2018)
  8. 设置了监视哨的顺序查找算法效率高?你确定吗?
  9. 全栈合一:万物互联下的智能安全运维
  10. [AV1] AV1 Encoder代码流程图