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环境安装与配置的概述,希望你们喜欢 AndroidStudio IDE下载 我们选择用Android Studio开发Android的App,Andr ...
- LinkedList 的源码分析
LinkedList是基于双向链表数据结构来存储数据的,以下是对LinkedList 的 属性,构造器 ,add(E e),remove(index),get(Index),set(inde,e)进 ...
- 分布式任务调度系统xxl-job相关问题补充
搭建xxl-job时可能会遇到的问题 邮箱配置不起作用报异常 以163邮箱为例,接收邮件需要开启POP3/STMP服务 光开启服务还不够,需要添加授权码 授权码为手动输入,可以与登录密码不同,所以服务 ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 2.安装配置OpenStack基础服务
节点配置情况说明: 控制节点:controller: IP:192.168.164.128 hostname&hosts:likeadmin 计算加点:Nova: IP:192.168.164 ...
- Swift 里 Dictionary
Dictionary uses two storage schemes: native storage and Cocoa storage. 只看 native storage 的,也就是和 OC 无 ...
- ubuntu 16.04下使用 python pip的安装问题。
ubuntu 16.04使用 pip安装软件时,不知道为什么不能使用sudo pip install XXX 需要使用的是:python -m pip install XXX才可以.
- JavaScript的Date类的函数特殊处理导致的问题
记得以前参加校招的时候,总是有日期相关的面试题,比如计算两个日期之间的间隔天数.以前还觉得这种题就是为了纯粹为了面试的,但工作了之后,还就碰到了跟日期相关的bug.下面是一段js代码,是要把字符串描述 ...
- Mac下搭建react及bable
1.安装node 下载: https://nodejs.org/en/download/ 测试--->返回版本号即为安装成功: $ node -v $ npm -v 2.安装全局create-r ...
- odoo开发笔记 -- 翻译机制及导入.po文件
待补充 http://ju.outofmemory.cn/entry/181972
- interface21 - web - Log4jConfigListener(Log4j加载流程)
前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计 ...