linux系统中有很多重要的环境变量,我们可以用env命令查看它们。

变量是由固定的“变量名”与用户或系统设置的“变量值”两部分组成,也可以自行修改。

[root@localhost ~]# env
XDG_SESSION_ID=
HOSTNAME=localhost.localdomain
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=
SSH_CLIENT=192.168.157.1
SELINUX_USE_CURRENT_RANGE=
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
SSH_TTY=/dev/pts/
QT_GRAPHICSSYSTEM_CHECKED=
USER=root
LS_COLORS=rs=:di=;:ln=;:mh=:pi=;:so=;:do=;:bd=;;:cd=;;:or=;;:mi=;;;:su=;:sg=;:ca=;:tw=;:ow=;:st=;:ex=;:*.tar=;:*.tgz=;:*.arc=;:*.arj=;:*.taz=;:*.lha=;:*.lz4=;:*.lzh=;:*.lzma=;:*.tlz=;:*.txz=;:*.tzo=;:*.t7z=;:*.zip=;:*.z=;:*.Z=;:*.dz=;:*.gz=;:*.lrz=;:*.lz=;:*.lzo=;:*.xz=;:*.bz2=;:*.bz=;:*.tbz=;:*.tbz2=;:*.tz=;:*.deb=;:*.rpm=;:*.jar=;:*.war=;:*.ear=;:*.sar=;:*.rar=;:*.alz=;:*.ace=;:*.zoo=;:*.cpio=;:*.7z=;:*.rz=;:*.cab=;:*.jpg=;:*.jpeg=;:*.gif=;:*.bmp=;:*.pbm=;:*.pgm=;:*.ppm=;:*.tga=;:*.xbm=;:*.xpm=;:*.tif=;:*.tiff=;:*.png=;:*.svg=;:*.svgz=;:*.mng=;:*.pcx=;:*.mov=;:*.mpg=;:*.mpeg=;:*.m2v=;:*.mkv=;:*.webm=;:*.ogm=;:*.mp4=;:*.m4v=;:*.mp4v=;:*.vob=;:*.qt=;:*.nuv=;:*.wmv=;:*.asf=;:*.rm=;:*.rmvb=;:*.flc=;:*.avi=;:*.fli=;:*.flv=;:*.gl=;:*.dl=;:*.xcf=;:*.xwd=;:*.yuv=;:*.cgm=;:*.emf=;:*.axv=;:*.anx=;:*.ogv=;:*.ogx=;:*.aac=;:*.au=;:*.flac=;:*.mid=;:*.midi=;:*.mka=;:*.mp3=;:*.mpc=;:*.ogg=;:*.ra=;:*.wav=;:*.axa=;:*.oga=;:*.spx=;:*.xspf=;:
NETCAT_HOME=/opt/netcat
MAIL=/var/spool/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/netcat/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-
KDEDIRS=/usr
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=
HOME=/root
LOGNAME=root
QTLIB=/usr/lib64/qt-3.3/lib
SSH_CONNECTION=192.168.157.1 192.168.157.128
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/
QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins
_=/usr/bin/env
OLDPWD=/root/testA
[root@localhost ~]#

-----以下部分可能有误,待修改-----

实例1:将局部变量提升为全局变量

假设需要设置一个变量“WORKDIR”,让每个用户执行"cd $WORKDIR"后都登录到/home/workdir目录中。

定义方法:变量名称=新的值
查看方法:echo $变量名称

创建该目录:

[root@localhost ~]# mkdir /home/workdir

设置变量:

[root@localhost ~]# WORKDIR=/home/workdir

root用户进入该目录

[root@localhost ~]# pwd
/root
[root@localhost ~]# cd $WORKDIR
[root@localhost workdir]# pwd
/home/workdir
[root@localhost workdir]#

切换到普通用户pentest,发现cd $WORKDIR后并没有进入到/home/workdir目录

[root@localhost workdir]# su - pentest
上一次登录:三 9月 :: CST 2016pts/ 上
[pentest@localhost ~]$ cd $WORKDIR
[pentest@localhost ~]$ pwd
/home/pentest
[pentest@localhost ~]$

使用pentest用户查看该变量,发现内容为空值

[pentest@localhost ~]$ echo $WORKDIR

[pentest@localhost ~]$

为什么呢?为什么某个用户设置的环境变量不能被其他用户所使用?

原因就在于变量的作用范围。

export命令就是用于将局部变量提升为全局变量的,格式为:export 变量名[=变量值]

接下来将WORKDIR变量设置为全局变量:

用户要从pentest切回到创建该变量的root用户,然后执行export命令

[pentest@localhost ~]$ su - root
密码:
上一次登录:四 9月 :: CST 2016从 192.168..1pts/ 上
[root@localhost ~]# export WORKDIR

再次切换到pentest用户尝试是否可以访问该变量

[root@localhost ~]# su pentest
[pentest@localhost root]$ id
uid=(pentest) gid=(pentest) 组=(pentest) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[pentest@localhost root]$ cd $WORKDIR
[pentest@localhost workdir]$ pwd
/home/workdir
[pentest@localhost workdir]$

Linux功能-环境变量的更多相关文章

  1. Linux下环境变量设置 (转)

    Linux下环境变量设置 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错 ...

  2. [转帖]linux bash环境变量简单总结

    linux bash环境变量简单总结 来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 需要简单学习一下. 其实 我都是直接放一个 .sh文件到 ...

  3. linux bash环境变量简单总结

    来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 一.环境变量简介 Linux是一个多用户的操作系统.每个用户登录系统后,都会有一个专用的运行环境 ...

  4. Linux中环境变量的设置

    目录 环境变量 Shell定义的环境变量 查看环境变量 Linux下环境变量的设置 环境变量 在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软 ...

  5. Linux中环境变量文件及配置

    Linux中环境变量文件及配置   一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统 ...

  6. Linux SHELL,环境变量

    SHELL: 在计算机科学中,Shell俗称壳(用来区别于核),是指"提供使用者使用界面"的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe.它接收用户命 ...

  7. Linux设置环境变量小结:设置永久变量&临时变量 全局变量&局部变量

    1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容.如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁 ...

  8. Linux中环境变量文件及配置(转载)

    一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...

  9. Linux用户环境变量

    Linux用户环境变量 环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境.在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的.本文主要 ...

随机推荐

  1. java 参数化类型

    package com.gxf.collection; import java.util.LinkedList; public class TestForT<T> { private Li ...

  2. How to check if NSString begins with a certain character

    How to check if NSString begins with a certain character How do you check if an NSString begins with ...

  3. 4月7号周二课堂练习:NABC

    团队项目——7-magic 分析特点:游戏简单容易上手 NABC分析: N(needs需求)现在存在的很多游戏操作比较,游戏规则也比较繁琐,用户很难或者不愿意去玩操作难度比较大的游戏,容易上手的游戏比 ...

  4. 在Action中以Struts2的方式输出JSON数据

    参考地址;http://blog.csdn.net/itdada/article/details/21344985

  5. 或许你不知道(2):LinkedList

    一,基本的存储结构及数据存取 LinkedList与ArrayList同属List的范畴,ArrayList实现了RandomAccess接口,通过索引随机访问效率较高,而LinkedList提供了直 ...

  6. 剔除数组或List中重复的元素

    import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.Lis ...

  7. C#读书笔记之并行任务

    这两天遇到一个多线程任务优化的问题,现在解决了,把心得用例子的形式记下来. 假设有四个任务: 任务1:登陆验证(CheckUser) 任务2:验证成功后从Web服务获取数据(GetDataFromWe ...

  8. [COCI]coci2015/2016 nekameleoni

    题意: 初始数列,每个数都在1~k以内 支持两种操作:1.修改一个数,修改后的数在1~k内                           2.查询一个最短包含1~k的序列的长度 查询100000 ...

  9. Understanding Convolution in Deep Learning

    Understanding Convolution in Deep Learning Convolution is probably the most important concept in dee ...

  10. [工作积累] GCC 4.6 new[] operator内存对齐的BUG

    对于用户没有定义dctor(包括其所有成员)的类来说, new CLASS[n] 可能会直接请求sizeof(CLASS)*n的空间. 而带有dctor的 类, 因为delete[]的时候要逐个调用析 ...