目录
业务描述
设置环境变量的方法
系统环境变量
指定用户环境变量
临时有效的环境变量
系统常用环境变量应用分析
PATH 环境变量
HOME 环境变量
HISTSIZE 环境变量
LOGNAME环境变量
SHELL环境变量
业务描述
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。
设置环境变量的方法
系统环境变量
这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。此文件只在root下才能修改。
# vi /etc/profileexport CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib
添加完成后新的环境变量不会立即生效,立即生效需要运行 source /etc/profile ,否则只能在下次重进此用户时才能生效。
指定用户环境变量
在用户目录下的.bash_profile 文件中添加变量,该文件是隐藏文件,可使用ll -a查看:
$ whoamirethink$ vi /home/rethink/.bash_profileexport CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib$ source /home/rethink/.bash_profile
其中,.bash_profile文件只会在用户登录的时候读取。
临时有效的环境变量
此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。
设置方法:命令行下直接使用[export 变量名=变量值] 定义变量。
$ export NAME="rethink"$ echo $NAMErethink
设置环境变量常用命令
echo 用于打印显示环境变量,如:echo N A M E ; e x p o r t 用 于 设 置 新 的 环 境 变 量 , 如 : e x p o r t N A M E = ′ r e t h i n k ′ ; 更 新 环 境 变 量 更 新 环 境 变 量 直 接 重 新 赋 值 即 可 : N A M E = ′ t e s t ′ ( 注 意 : 变 量 名 前 不 需 要 加 );
env 显示当前用户的变量;
set 显示当前shell变量,shell变量包含用户变量;
unset 删除一个环境变量,如:unset NAME;
readonly 设置环境变量只读,如:readonly NAME ,只读变量unset无效。
系统常用环境变量应用分析
PATH 环境变量
# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
路径之间用冒号分隔,这些路径都是一些可以找到可执行程序的目录列表。当我们输入一个指令时,shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中寻找这些应用程序。
如果shell在这些路径目录里没有找到可执行文件,就会报错;若找到,系统将调用执行应用程序。通过设置PATH ,可以让我们运行程序或指令更加方便。
将某个目录路径加入到PATH中,可以这样写:
$ pwd/root/docker/httpd$ export PATH=$PATH:$PWD$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd`可以看到在PATH后面已经加上了我们当前所处目录的路径`
HOME 环境变量
用户的主工作目录,即为用户登录到Linux系统中时的默认目录。
$ whoamirethink$ echo $HOME/home/rethink
HISTSIZE 环境变量
保存历史命令的条数。我们输入的指令都会被系统保存下来,这个环境变量记录的就是保持指令的条数。一般为1000。
$ echo $HISTSIZE1000$ HISTSIZE=1001$ echo $HISTSIZE1001
历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取我们可以通过history命令来查看。可以使用符号 ! 执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
$ history 559 ls60 who61 history | head -n 562 who am i63 history 5$ !62who am iroot pts/0 -04-04 11:00 (101.81.92.18)
LOGNAME环境变量
当前用户登录名。
$ echo $LOGNAMErethinkHOSTNAME 主机名称。$ echo $HOSTNAMEJDu4e00u53f7
SHELL环境变量
当前用户使用的shell种类。
$ echo $SHELL/bin/bash