Linux下环境变量的那些事

/ 0评 / 0

前言

昨天晚上在kali(基于Linux的Debian)上折腾Android源码的时候需要将一些路径加入环境变量,不过貌似配置错了,然后进入了输入用户名、密码然后黑屏返回登录界面需要重新输入用户名、密码的死循环,搜索一番原来是环境变量配置错误导致的,所以这里记录下来便于以后查找顺便分享给大家。

查看环境变量

1、查看所有环境变量

在命令行中输入env即可查看所有的环境变量,使用键值对的形式,环境变量之间使用:号隔开的。Demo如下

xjh@iZ28frtqxrrZ:~$ env
USER=xjh
MAIL=/var/mail/xjh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/xjh
LANG=en_US.UTF-8
SHLVL=1
HOME=/home/xjh
LANGUAGE=en_US:
LOGNAME=xjh

2、查看指定的环境变量

想要查看指定的环境变量使用echo ${环境变量名}即可查看(这里类似shell脚本使用已经定义的变量)

比如查看PATH指向的环境变量就是echo ${PATH} 或者echo $PATH。Demo如下

xjh@iZ28frtqxrrZ:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

几个设置环境变量的位置

/etc/profile: 此文件为系统的每个用户设置环境信息。当任何用户登录时,该文件被执行一次

~/.bash_profile 或 ~/.profile(不同版本Linux不同): 只对单个用户生效,当用户登录时该文件仅执行一次

~/.bashrc: 只对单个用户生效,对单个用户生效,当用户登录以及每次打开新的 shell 时,该文件被执行

设置环境变量

1、设置全局环境变量

全局的环境变量在/etc/profile文件中进行修改(修改该文件需要root权限)。在此文件中新增的环境变量所有用户都会生效。我们仅仅需要在文件末尾写入环境变量即可。

写入新环境变量如下所示,这样我们就有一个名为JAVA_HOME的环境变量了。

export JAVA_HOME=/usr/lib/java_jdk/jdk1.8.0_65

往已有的环境变量中添加一个新路径(路径之间使用:号隔开),Demo如下。这样我们就将${JAVA_HOME}/bin这个环境变量指向的路径添加到PATH中了。

export PATH=${JAVA_HOME}/bin:$PATH

PS:要想修改生效,需要使用source /etc/profile命令,或者重新登录此用户即可

2、设置单个用户有效的环境变量

设置单个用户有效的环境变量需要修改~/.bashrc文件。修改规则与上面介绍的一样

PS:要想修改生效,需要使用source ~/.bashrc命令,或者重新登录此用户即可

~代表用户目录.bashrc中的.说明是隐藏文件,使用ls -a可以看到这个文件,如下,我们cd ~然后打印当前路径为/home/用户名/

xjh@iZ28frtqxrrZ:~$ cd ~
xjh@iZ28frtqxrrZ:~$ pwd
/home/xjh
xjh@iZ28frtqxrrZ:~$ ls -al
total 64
drwxr-xr-x 5 xjh  xjh   4096 Jul 20 09:59 .
drwxr-xr-x 6 root root  4096 Jul 13 10:54 ..
-rw------- 1 xjh  xjh   7258 Jul 20 09:59 .bash_history
-rw-r--r-- 1 xjh  xjh    220 Feb 17 15:55 .bash_logout
-rw-r--r-- 1 xjh  xjh   3637 Jul 20 09:57 .bashrc
drwx------ 2 xjh  xjh   4096 Feb 17 15:56 .cache
-rw-r--r-- 1 xjh  xjh    675 Feb 17 15:55 .profile

3、设置当前shell有效的环境变量

当前shell有效是指关闭或者注销shell以后,下次重新进去就失效了。我们直接使用export命令即可。比如下面就创建了一个名为tempenv的环境变量,指向/home/xjh目录。

xjh@iZ28frtqxrrZ:~$ export tempenv=~/
xjh@iZ28frtqxrrZ:~$ echo $tempenv 
/home/xjh/

后记

顺便介绍下解决linux系统不停返回登录界面的问题,删除掉错误的环境变量即可,由于图形化界面无法登录,所以在登录界面按下ctrl+alt+F3(其他系统可能为F1~6中的)进入命令行形式,输入用户名密码即可登录进入,不过这个时候ls vim等命令都无法直接使用,因为环境变量错误了,所以需要使用绝对路径才行,比如ls的使用需要/bin/ls,vi的使用为/usr/bin/vim,然后使用vim修改错误的环境变量,然后重新登录即可。ctrl+alt+f1返回图形化界面。

参考链接:

http://www.linuxidc.com/Linux/2015-01/111459.htm

http://soft.chinabyte.com/os/169/11412169.shtml

http://www.linuxidc.com/Linux/2015-02/113488.htm

发表评论

您的电子邮箱地址不会被公开。