文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Shell编程之更改与查看常用环境变量

2024-12-03 03:20

关注

本文转载自微信公众号「Linux常用命令」,作者妖生。转载本文请联系Linux常用命令公众号。

面试官:与哪些环境变量相关Shell命令?

答:export、declare、source、env、set/unset。

面试官:它们分别有什么作用?

答:……

正文

export的作用就是设置全局变量,可以在整个Shell环境中被引用。

没有使用export设置的变量,只能在自己的Shell脚本中起作用。我们也可以直接使用【export】命令来查看可以被全局使用的环境变量。

示例如下:

  1. [root@linuxido ~]# export       ##  查看所有export设置的环境变量  
  2. declare -x CLASSPATH=".:/usr/local/java/jdk1.8.0_131/lib:/usr/local/java/jdk1.8.0_131/jre/lib:" 
  3. declare -x DISPLAY="localhost:10.0" 
  4. declare -x GEM_HOME="/usr/local/rvm/gems/ruby-2.7.0" 
  5. ……      ##  declare 设置环境变量 

我们可以看到【declare -x】也等同于【export】,所以定义环境变量的方式基本上有三种,示例如下:

  1. export JAVA_HOME=/usr/local/java/jdk1.8.0_131   ## 1、【export 变量名=变量值】 
  2.  
  3. PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin   ## 2、先设置【变量名=变量值】 
  4. export PATH                             ## 再设置【export 变量名】 
  5.  
  6. declare -x DISPLAY="localhost:10.0"         ## 3、【declare –x 变量名=变量值】 

一般在使用export定义过全局变量后,都会使用【source】刷新文件中定义的环境变量,使其档次生效(使用点【.】可达到同样效果)如刷新系统全局变量【source /etc/profile】或刷新用户全局变量【. ~/.bash_profile】。

不用source刷新变量的话则要重新登录才能生效。

env也可以查看环境变量,不同于export,它只查看用户的环境变量。

示例如下:

  1. [root@linuxido ~]# env  ## 查看用户环境变量 
  2. …… 
  3. HOME=/root 
  4. LOGNAME=root 
  5. …… 

【set】也可以显示本地用户变量,但是不只是本地用户变量,还包括Shell特有的变量,如BASH_ALIASES 、BASH_ARGC。示例如下:

  1. [root@linuxido ~]# set  
  2. BASH=/bin/bash 
  3. BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath 
  4. BASH_ALIASES=() 
  5. BASH_ARGC=() 
  6. BASH_ARGV=() 
  7. …… 

set还有个作用是可以调试脚本,即在Shell中注明【set -x】,详见10.4.2章节。

使用【export】可以临时设置一个环境变量,示例如下:

  1. [root@linuxido ~]# export LINUX_HOME=linuxido.com   ##  export设置临时变量 
  2. [root@linuxido ~]# echo $LINUX_HOME             ##  打印临时变量值 
  3. linuxido.com 

临时消除一个环境变量,使用【unset】,示例如下:

  1. [root@linuxido /shell]# echo $LINUX_HOME    ##  查看临时变量 
  2. linuxido.com 
  3. [root@linuxido /shell]# unset LINUX_HOME    ##  unset取消临时变量 
  4. [root@linuxido /shell]# echo $LINUX_HOME    ##  临时变量已经没有值了 
  5.  
  6. [root@linuxido /shell]## 

附录:常用环境变量

在bashrc、profile等环境变量设置文件中,设置了一堆我们常用的环境变量,示例如下:

  1. [root@ linuxido ~]# echo $SHELL ##  查看当前Shell变量 
  2. /bin/bash 
  3. [root@linuxido ~]# echo $PS1        ##  查看PS1环境变量 
  4. [\u@\h \w]\$\$ 
  5. [root@dihuiyuan logs]# echo $PS2    ##  多行命令提示符,也可以更改此变量值为-> 
  6. >           ##  一个非常长的命令可以通过在末尾加“\”使其分行显示 
  7. [root@dihuiyuan logs]# echo $PS3    ##  默认为空,select循环语句的默认提示 
  8.  
  9. [root@dihuiyuan logs]# echo $PS4    ## bash -x或set -x,调试脚本时输出的命令提示符 
  10. [root@linuxido ~]# echo $HOME   ## 查看用户家目录 
  11. /root 
  12. [root@linuxido ~]# echo $USER   ## 查看用户 
  13. root 
  14. [root@linuxido ~]# echo $LANG   ## 查看是否中文环境 
  15. zh_CN.UTF-8 
  16. [root@linuxido ~]# echo $HISTSIZE   ## 查看历史命令条数 
  17. 1000 
  18. [root@linuxido ~]# echo $PATH   ## 查看系统环境PATH 
  19. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin…… 

当然,这仅仅是冰山一角,有兴趣的可以查阅相关文件或文档。

 

来源:Linux常用命令内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯