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. JavaScript实现单张图片上传功能

    前台jsp代码 <%@ page language="java" pageEncoding="UTF-8" contentType="text/ ...

  2. 解决eclipse中启动服务内存溢出问题

    在eclipse中双击tomcat进入参数配置页面,点击Open Launch configuration---Arguments,在VM Arguments的末尾加 -Xms1024M -Xmx20 ...

  3. Android核心技术Intent和数据存储篇

    女孩:上海站到了? 男孩:嗯呢?走向世界~ 女孩:Intent核心技术和数据存储技术? 男孩:对,今日就讲这个~ Intent是各个组件之间用来进行通信的,Intent的翻译为"意图&quo ...

  4. Shell-16--函数

    函数的定义和调用放在一起(同一个shell)的好处是不会存在路径的问题:如果功能复杂,则应分开

  5. Linux开机执行指定shell

    目的:希望linux在开机或重启后第一时间启动部分服务或者执行特定脚本 1.需要在/etc/init.d/目录下建立对应的shell脚本,示例如下: 开机启动docker-compose中的所有容器 ...

  6. 【Spark调优】Shuffle原理理解与参数调优

    [生产实践经验] 生产实践中的切身体会是:影响Spark性能的大BOSS就是shuffle,抓住并解决shuffle这个主要原因,事半功倍. [Shuffle原理学习笔记] 1.未经优化的HashSh ...

  7. 课程三(Structuring Machine Learning Projects),第二周(ML strategy(2)) —— 1.Machine learning Flight simulator:Autonomous driving (case study)

    [中文翻译] 为了帮助您练习机器学习的策略, 在本周我们将介绍另一个场景, 并询问您将如何行动.我们认为, 这个工作在一个机器学习项目的 "模拟器" 将给一个任务, 告诉你一个机器 ...

  8. HP服务器设置iLO步凑

    HP服务器设置iLO步凑 1.开机出现界面—按下F11进入Boot Menu: 2.选择Generic USB Boot回车: 3.选择System Configuration回车: 4.选择iLO ...

  9. OPC安装-配置(http://www.mabotech.com)

    1.使用opc,需要在机器上安装OPC运行环境.opc运行环境包含:opc_aeps.dll.opccomn_ps.dll.opcdaauto.dll.OpcEnum.exe.opcproxy.dll ...

  10. 使用crypt配置Basic Auth登录认证

    简介 Basic Auth用于服务端简单的登录认证,通常使用服务器Nginx.Apache本身即可完成.比如我们要限定某个域名或者页面必须输入用户名.密码才能登录,但又不想使用后端开发语言,此时Bas ...