Linux 下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别
by:授客 QQ:1033553122
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变量,环境变量的联系与区别的更多相关文章
- 嵌入式 Linux下永久生效环境变量bashrc
嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...
- Linux下配置Node环境变量及问题详解
这是之前在Linux下配置Node环境变量时踩过的坑,今天又有小伙伴询问这个问题,因此记录下来,不仅是给新童鞋们一些参考,也方便日后查阅 在这之前,相信都已经安装好了,没安装的可以查看博主另一篇文章 ...
- Java java jdk在Linux下安装与环境变量的配置
java jdk在Linux下安装与环境变量的配置 by:授客 QQ:1033553122 linux环境:CentOS-6.0-x86_64-bin-DVD1.iso [root@localhost ...
- Linux下各种常见环境变量的配置
Linux系统下各种环境变量都通过修改/etc/profile文件来实现.由于是系统文件,修改此文件需要root权限.因此实现以下功能都需要用户拥有root权限. 另:不要轻易修改profile文 ...
- 14行脚本配置Linux下一个Java环境变量
供Java人们刚开始学习.多半Java它需要花费大量的精力在开发环境的配置,于Linux下一个,构造Java环境变量,很可能加入这一努力. 为此,我做了一个bash脚本来配置自己主动Java环境变量. ...
- Linux下设置oracle环境变量
Linux设置Oracle环境变量 方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新s ...
- linux下添加PATH环境变量
添加PATH环境变量,第1种方法:[root@lx_web_s1 ~]# export PATH=/usr/local/webserver/mysql/bin:$PATH 再次查看: [root@lx ...
- Linux下配置Java环境变量
今天开始简单的学习了一下在Linux下安装jdk 写下来总结一下以便后来的查找和复习 首先下载Linux版的jdk我这里使用的jdk1.7:http://download.oracle.com/otn ...
- linux下设置phantomjs环境变量
1)vim /etc/profile2)在文件的最后一行,添加安装路径path语句:(注意路径是phantomjs的安装路径)export PATH=${PATH}:/usr/local/src/ph ...
- linux下设置opencv环境变量
一.安装opencv(这里不再讲述) 二.添加库路径(创建opencv.conf文件) 输入命令:vi /etc/ld.so.conf.d/opencv.conf 输入/usr/local/lib,并 ...
随机推荐
- AndroidStudio制作登录和注册功能的实现,界面的布局介绍
前言 大家好,给大家带来AndroidStudio制作登录和注册功能的实现,界面的布局介绍的概述,希望你们喜欢 每日一句: Success is connecting with the world a ...
- Android开发工程师文集-1 小时学会SQLite
前言 大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢 内容 什么是Sqlite: 效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数 ...
- JavaScript中子类调用父类方法的实现
一.前言 最近在项目中,前端框架使用JavaScript面向对象编程,遇到了诸多问题,其中最典型的问题就是子类调用父类(super class)同名方法,也就是如C#中子类中调用父类函数base.** ...
- 微信开发之获取openid及推送模板消息
有很多的朋友再问我怎么获取code,openid之类的问题,在这里我就给大家分享一下. 在做微信支付是需要获取openid的,推送模板消息也是需要openid包括其他一些功能分享等也都是需要的,ope ...
- 【译】使用 ndb 调试 node 应用
原文链接:Debugging Node.js Application Using ndb Google Chrome 实验室发布了一款新的 node debug 工具来提升开发者体验,本文将会全面介绍 ...
- python之排序算法
排序是每个语言都需要学会的,不管是c++.java还是python,套路都是类似的 python中也有自带的排序函数sort,直接使用也可 闲来无事写了几个排序算法,各不相同 1.每次遇到最小的数都交 ...
- 【WebAPI No.5】Core WebAPI中的自定义格式化
介绍 Web API为JSON和XML提供媒体类型格式化程序.框架默认将这些格式化程序插入管道中.客户端可以在HTTP请求的Accept标头中请求JSON或XML. 格式化数据这个东西,其实没有什么最 ...
- OkHttp3 简述
- PHP-CPP开发扩展(五)
PHP-CPP是一个用于开发PHP扩展的C++库.本节讲解如何在C++中实现PHP类. 类和对象 类和对象 怎样在PHP-CPP里写出PHP的类呢?很简单,看下面的例子: main.cpp /** * ...
- Linux 学习手记(1):命令行BASH的基本操作
1. Shell 是什么 Shell(壳)是用户与操作系统底层(通常是内核)之间交互的中介程序,负责将用户指令.操作传递给操作系统底层. Shell一般分为:图形化Shell(GUI).命令行Shel ...