zoukankan      html  css  js  c++  java
  • Linux 下Shell变量,环境变量的联系与区别

    LinuxShell变量,环境变量的联系与区别

    by:授客 QQ1033553122

    1、  简介

    linux下的变量可分成两种:Shell变量和环境变量。

    Shell变量,又称本地变量,包括私有变量以及用户变量,不同类的shell有不同的私有变量,bash,ksh,csh等,每种shell的私有变量都不一样

     

    环境变量,又称用户变量,与shell无关

     

    常规定义变量的方法:变量名=变量值

    注意:

    1.变量名和=号之间不能有空格,否则shell会把变量名当成命令

    2.变量名称一般使用大写字母

     

    2、  常用的相关命令

    env命令:显示当前用户的环境变量

    set命令:不加参数,显示当前shell所有本地设置的Shell变量,否则设置shell变量

    unset命令:unsetshell内建指令,删除变量或函数。

    exprot命令:显示(设置)当前导出成用户变量的shell变量(注意:exportbash或类bash私有的命令)

    echo $变量名:查看变量值(其中,$变量:引用变量的意思)

     

    3、  示例

    a)   使用env命令显示当前用户的所有环境变量

    [laiyu@localhost ~]$ env

    HOSTNAME=localhost.localdomain

    SHELL=/bin/bash

    TERM=xterm

    HISTSIZE=1000

    USER=laiyu

    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;...

    MAIL=/var/spool/mail/laiyu

    PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/laiyu/bin

    PWD=/home/laiyu

    LANG=en_US.UTF-8

    ...

    HOME=/home/laiyu

    LOGNAME=laiyu

    ...

    _=/bin/env

     

    b)   使用set命令显示当前shell所有本地Shell变量

    [root@localhost ~]# set | more

    BASH=/bin/bash

    ...

    BASH_CMDS=()

    ...

     

    c)   使用unset命令来清除变量(不管是shell变量还是环境变量)

    [laiyu@localhost ~]$ export TEST=test #增加一个环境变量TEST

    [laiyu@localhost ~]$ env | grep TEST  #查看增加的变量

    TEST=test

    [laiyu@localhost ~]$ unset $TEST #删除环境变量TEST(这里TEST前有无美元符都一样)

    [laiyu@localhost ~]$ env | grep TEST #输出为空

    注意:unset只能删除非只读变量

     

    d)   使用echo命令显示环境变量(HOME变量为例)

    [root@localhost ~]# echo $HOME

    /root

     

    e)   使用export命令将shell变量导出为用户变量,并显示

    列出所有的Shell赋予程序的环境变量

    [root@localhost ~]# export -p #等同export

    ...

    declare -x HOME="/root"

    declare -x HOSTNAME="localhost.localdomain"

    declare -x LANG="en_US.UTF-8"

    declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

    declare -x LOGNAME="root"

    declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin/:/usr/local/tsung/bin"

    ...

     

    shell变量导出为用户变量

    [root@localhost ~]# SHOUKE=ishouke  #定义shell变量

    [root@localhost ~]# echo $SHOUKE 

    ishouke

    #查看当前用户的用户变量是否存在SHOUKE变量,结果是不存在

    [root@localhost ~]# env | grep SHOUKE

    #查看当前shell的本地变量是否存在SHOUKE变量,结果是不存在

    [root@localhost ~]# set | grep SHOUKE

    SHOUKE=ishouke

    #查看Shell赋予程序的环境变量中是否存在SHOUKE变量,结果不存在

    [root@localhost ~]# export | grep SHOUKE

     

    #导出shell变量为用户变量

    [root@localhost ~]# export SHOUKE

    [root@localhost ~]# env | grep SHOUKE

    SHOUKE=ishouke

    [root@localhost ~]#

    --------------------------------------

    也可以如下方式使用export

    [root@localhost ~]# export SHOUKE=ishouke

    [root@localhost ~]# env | grep SHOUKE

    SHOUKE=ishouke

    [root@localhost ~]#

     

    注意:以上的设置仅在当前打开的shell窗口或或其子shell窗口中起作用,临时的,关闭当前shell窗口或重启机器,则刚才的设置失效,,或打开一个新窗口,设置在新窗口中不起作用。

     

  • 相关阅读:
    Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
    Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
    Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
    Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
    Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
    IDEA 内网手动添加oracle,mysql等数据源,以及server returns invalid timezone错误配置
    eclipse maven设置
    IntelliJ IDE 常用配置
    eclipse maven 常见问题解决方案
    Maven 安装和配置
  • 原文地址:https://www.cnblogs.com/shouke/p/10158123.html
Copyright © 2011-2022 走看看