• Linux环境变量总结


     

    Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。

    设置环境变量的方法

    • 对所有用户生效的永久性变量

    类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。

    此文件只在root下才能修改。

    1. # vi /etc/profile
    2. export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

    添加完成后新的环境变量不会立即生效,立即生效需要运行 source /etc/profile ,否则只能在下次重进此用户时才能生效。

    • 对单一用户生效的永久性变量

    在用户目录下的.bash_profile 文件中添加变量,该文件是隐藏文件,可使用ll -a查看:

     

    1. $ whoami 
    2. rethink
    3. $ vi /home/rethink/.bash_profile
    4. export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib 
    5. source /home/rethink/.bash_profile

    在上图中用红框框住了两个文件:.bashrc 和.bash_profile ,原则上讲设置此类环境变量时在这两个文件任意一个里面添加都是可以的,这两个文件的区别为:.bash_profile是交互式login方式进入bash shell运行,.bashrc是交互式non-login方式进入bash shell运行。

    可以理解为.bash_profile文件只会在用户登录的时候读取一次,而.bashrc在每次打开终端进行一次新的会话时都会读取。

    临时有效的环境变量(只针对当前shell有效)

    此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。

    设置方法:命令行下直接使用[export 变量名=变量值] 定义变量。

    1. $ export NAME="rethink"
    2. $ echo $NAME
    3. rethink

    设置环境变量常用命令

    • echo 用于打印显示环境变量,如:echo $NAME;

    • export 用于设置新的环境变量,如:export NAME='rethink';

    更新环境变量 更新环境变量直接重新赋值即可:NAME='test'   (注意:变量名前不需要加$);

    • env 显示当前用户的变量;

    • set 显示当前shell变量,shell变量包含用户变量;

    • unset 删除一个环境变量,如:unset NAME;

    • readonly 设置环境变量只读,如:readonly NAME  ,只读变量unset无效。

    常用环境变量

    1. PATH
    2. # echo $PATH
    3. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    路径之间用冒号分隔,这些路径都是一些可以找到可执行程序的目录列表。当我们输入一个指令时,shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中寻找这些应用程序。

    如果shell在这些路径目录里没有找到可执行文件,就会报错;若找到,系统将调用执行应用程序。通过设置PATH ,可以让我们运行程序或指令更加方便。

    将某个目录路径加入到PATH中,可以这样写:

    1. $ pwd
    2. /root/docker/httpd
    3. $ export PATH=$PATH:$PWD
    4. $ echo $PATH
    5. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd
    6. `可以看到在PATH后面已经加上了我们当前所处目录的路径`
    • HOME

    用户的主工作目录,即为用户登录到Linux系统中时的默认目录。

    1. whoami
    2. rethink
    3. echo $HOME
    4. /home/rethink
    • HISTSIZE

    保存历史命令的条数。我们输入的指令都会被系统保存下来,这个环境变量记录的就是保持指令的条数。一般为1000。

    1. $ echo $HISTSIZE
    2. 1000
    3. $ HISTSIZE=1001
    4. $ echo $HISTSIZE
    5. 1001

    历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取我们可以通过history命令来查看。可以使用符号 ! 执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

    1. $ history 5
    2.    59  ls
    3.    60  who
    4.    61  history | head -n 5
    5.    62  who am i
    6.    63  history 5
    7. $ !62
    8. who am i
    9. root     pts/0        2018-04-04 11:00 (101.81.92.18)
    • LOGNAME

    当前用户登录名。

    1. $ echo $LOGNAME
    2. rethink
    • HOSTNAME 主机名称。

    1. $ echo $HOSTNAME
    2. JDu4e00u53f7
    • SHELL

    当前用户使用的shell种类。

    1. echo $SHELL
    2. /bin/bash

    如果文章对你有所帮助,麻烦留下您的点赞转发收藏✌
     

                                     -End-

  • 相关阅读:
    程序员地理系列知识点总结
    来写个贪吃蛇小游戏吧(TypeScript版本)
    Element-Ui入门教学——<el-upload>限制上传文件类型
    Qt/QML学习-PathView
    虚拟滚动(Virtual Scrolling)实现
    AI音乐创作,让每一个人都成为音乐家
    【控制】模型预测控制,公式推导,数值仿真,有程序有图
    【LeetCode】哈希表题解汇总
    程序员失业日记1:工作五年,交接半天
    水果店圈子:水果店的风险大吗,做水果店有风险吗
  • 原文地址:https://blog.csdn.net/Rocky006/article/details/130899548