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

by:授客 QQ1033553122

1、  简介

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

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

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

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

注意:

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

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

2、  常用的相关命令

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

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

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

exprot命令:显示(设置)当前导出成用户变量的shell变量(注意:export为bash或类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窗口或重启机器,则刚才的设置失效,,或打开一个新窗口,设置在新窗口中不起作用。

Linux 下Shell变量,环境变量的联系与区别的更多相关文章

  1. 嵌入式 Linux下永久生效环境变量bashrc

    嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...

  2. Linux下配置Node环境变量及问题详解

    这是之前在Linux下配置Node环境变量时踩过的坑,今天又有小伙伴询问这个问题,因此记录下来,不仅是给新童鞋们一些参考,也方便日后查阅 在这之前,相信都已经安装好了,没安装的可以查看博主另一篇文章 ...

  3. Java java jdk在Linux下安装与环境变量的配置

    java jdk在Linux下安装与环境变量的配置 by:授客 QQ:1033553122 linux环境:CentOS-6.0-x86_64-bin-DVD1.iso [root@localhost ...

  4. Linux下各种常见环境变量的配置

      Linux系统下各种环境变量都通过修改/etc/profile文件来实现.由于是系统文件,修改此文件需要root权限.因此实现以下功能都需要用户拥有root权限. 另:不要轻易修改profile文 ...

  5. 14行脚本配置Linux下一个Java环境变量

    供Java人们刚开始学习.多半Java它需要花费大量的精力在开发环境的配置,于Linux下一个,构造Java环境变量,很可能加入这一努力. 为此,我做了一个bash脚本来配置自己主动Java环境变量. ...

  6. Linux下设置oracle环境变量

    Linux设置Oracle环境变量 方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新s ...

  7. linux下添加PATH环境变量

    添加PATH环境变量,第1种方法:[root@lx_web_s1 ~]# export PATH=/usr/local/webserver/mysql/bin:$PATH 再次查看: [root@lx ...

  8. Linux下配置Java环境变量

    今天开始简单的学习了一下在Linux下安装jdk 写下来总结一下以便后来的查找和复习 首先下载Linux版的jdk我这里使用的jdk1.7:http://download.oracle.com/otn ...

  9. linux下设置phantomjs环境变量

    1)vim /etc/profile2)在文件的最后一行,添加安装路径path语句:(注意路径是phantomjs的安装路径)export PATH=${PATH}:/usr/local/src/ph ...

  10. linux下设置opencv环境变量

    一.安装opencv(这里不再讲述) 二.添加库路径(创建opencv.conf文件) 输入命令:vi /etc/ld.so.conf.d/opencv.conf 输入/usr/local/lib,并 ...

随机推荐

  1. MySQL学习笔记2(多表操作)

    外键:使两张表之间存在关联 特点: 1.从表外键的值是对主表主键的引用 2.从表外键类型,必须与主表主键类型一致 示例: 创建两个表并准备数据: USE mybase; CREATE TABLE ca ...

  2. shell 脚本中的当前工作目录等于执行脚本时所在的工作目录

    1. 测试脚本 在当前目录下创建 h1 h2两个文件夹 2. 在脚本所在目录执行脚本 在当前目录下创建了h1 h2两个目录 3. 在其他目录爱=下执行脚本 在其他目录下执行脚本时,在执行脚本所在的目录 ...

  3. Shell - 文本处理

    珠玉在前,不再赘言. 常用命令 LinuxShell文本处理工具集锦 数据工程师常用的Shell命令 文件和目录管理 简明教程 AWK简明教程 SED简明教程 命令详解 linux sort,uniq ...

  4. shiro测试常见错误

    org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.sh ...

  5. redis-cluster无备节点,安装脚本

    #!/bin/bash #安装gcc yum -y install gcc #安装RVM所需的程序包 yum -y install gcc-c++ patch readline readline-de ...

  6. Intellij新安装初始化配置

    自动编译开关 忽略大小写开关 IDEA默认是匹配大小写,此开关如果未关.你输入字符一定要符合大小写.比如你敲string是不会出现代码提示或智能补充.但是,如果你开了这个开关,你无论输入String或 ...

  7. vector、deque、stack、queue、list以及set的使用

    注意:以下测试案例都要加上相应的头文件,必要时要加上algorithm文件. 1.vector 连续存储结构,每个元素在内存上是连续的:支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除 ...

  8. go中的读写锁RWMutex

    读写锁是针对于读写操作的互斥锁. 基本遵循两大原则: 1.可以随便读.多个goroutin同时读. 2.写的时候,啥都不能干.不能读,也不能写. 解释: 在32位的操作系统中,针对int64类型值的读 ...

  9. easyui combobox下拉列表的多选值

    html: <input id="cc" class="easyui-combobox" value="" data-options= ...

  10. Deep learning with Python 学习笔记(8)

    Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...