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. dmucs与distcc

    之前配置distcc没有考虑负载均衡这一项,现在考虑使用dmucs实现distcc的负载均衡 官方手册 http://dmucs.sourceforge.net/ 使用官方手册编译会报错,等解决问题后 ...

  2. 如何将后台传来的json反序列化为前端具体对象

    //jQuery方式 var obj = $.parseJSON(json); ....   //eval var obj = eval("("+json+")" ...

  3. 【转】eclipse下使用hibernate tools实现hibernate逆向工程

    一.基本环境 Eclipse 3.6 AppFuse Struts2 2.1.0 JBoss Hibernate Tools 3.4.0 二.JBoss Hibernate Tools 3.4.0安装 ...

  4. 18、ESC/POS指令集在android设备上使用实例(通过socket)

    网上关于通过android来操作打印机的例子太少了,为了方便更多的开发同仁,将近日所学分享一下. 我这边是通过android设备通过无线来对打印机(佳博58mm热敏式-58130iC)操作,实现餐厅小 ...

  5. 【Binary Tree Preorder Traversal】cpp

    题目: Given a binary tree, return the preorder traversal of its nodes' values. For example:Given binar ...

  6. 资料共享平台----nabcd

    知识共享平台NABCD模型 N(need)需求 大一新生刚刚开始大学生活,不适应大学学习生活的节奏,并且课堂上知识容量大.密度高,学生不能立刻掌握所学知识点,同时,网上资料冗杂繁复,指向性不强,导致学 ...

  7. idea maven添加jar包

    在“项目结构“里设置 选择libaray,添加jar包

  8. 客户端发包 GS端接收

    客户端发包,GS接收 bool GameServer::ProcessLoop(packet& rPkt)//GS线程做的 { if(false == m_spDataLayer->Re ...

  9. fullscreen DXGI DX11

    these days i am fullfilling full screen https://github.com/rufelt/simpled3d11window put this one  in ...

  10. [百度空间] --whole-archive & --no-whole-archive

    What is it? backgorund: an archive file (.a) is similar as .lib compared to Winodws. it simply conta ...