zoukankan      html  css  js  c++  java
  • 理解及操作环境变量(基于Mac操作)

    通过本文,简单的了解环境变量及其操作,与便于遇到相关问题时能够准确快捷的解决。

    什么是环境变量

    An environment variable is a dynamic-named value that can affect the way 
    running processes will behave on a computer. --- wikipedia

    转成中文大概就是 " 环境变量是一个动态命名的值,这个值能够影响计算机如何运行程序" ,接下来根据例子来理解可能会更好~

    当用户在终端里输入某命令并敲下回车键的时候,计算机会在环境变量里指定的路径下查找这个命令对应的文件,并执行该文件以达到运行用户所需的程序,比如:

    # 查看环境变量
    echo $PATH
    
    # 进入指定的路径下
    cd /usr/local/bin
    
    # 查看有哪些node相关的玩意
    ls | grep "node"

    效果如图:

    打开文件夹,发现node是个可执行的文件,其实该文件里包含着node命令所应有内容:

    当用户在终端执行node命令的时候,通过环境变量,系统将node命令指向该文件夹,并且执行该文件夹中对应的内容以启动node程序。

    为了验证下,这里将node文件改个名,预测当node改名为node_test后,执行node_test命令则便是执行之前的node程序,下面是验证结果图:

    # 修改node文件名为node_test
    mv node node_test
    
    # 查看有哪些node相关的玩意,发现没有node,变成了node_test
    ls | grep "node"
    
    # 执行node命令,提示没这命令
    node
    
    # 执行node_test,发现和原先node效果一样,并且能写代码,还能查看版本,一切正常
    node_test
    
    node_test -v

    效果如图:

    通过这么个简单的例子,大致能够知道什么是环境变量,也了解了环境变量是用来干什么的,接下来就看看如何去操作以及如何更好的管理环境变量。

    配置环境变量

    使用执行命令行进行配置

    # 暴露个新变量 NEW_PATH
    export NEW_PATH=/usr/lib
    
    # 我们可以通过 $NEW_PATH 变量名查看其值
    echo $NEW_PATH 
    
    # 将NEW_PATH追加到PATH变量后面,注意:用:符号分割路径
    export PATH=$PATH:$NEW_PATH

    效果如图所示:

    结果显示ok,正确的追加到了$PATH后...

    环境变量的临时修改还可以这么操作,但不推荐,这样的操作重写PATH所有内容:

    eval PATH=xxx

    效果如图:

    基于上面方法添加的环境变量是临时的,重新打开个终端界面,一切都恢复如初~  那么想要让配置的环境变量是永久的该怎么处理呢?我们可以使用把要配置的环境变量写到对应的文件中,系统会在指定的时候执行对应的文件来读取用户配置的命令。

    使用文件配置环境变量

    Mac OS 默认环境变量的配置文件路径是 /etc/paths ,同时这个文件也是全局的环境变量文件,一般是只读权限的,需要用管理员账号来修改权限,然后写入对应的环境变量值,操作如下:

    新开一个终端界面,输出$PATH,效果如图:

    通过这样的修改,任何用户进来这台电脑都可以使用指定的全局环境变量(如:/etc/path_test)。

    大多数时候不会使用上面的配置去更改全局环境变量,一般都是针对当前登录用户配置的环境变量,那么便应该操作 ~/.bash_profile 

    举个例子,在~/.bash_profile里加个环境变量

    # 在 .bash_profile 里输入
    exoprt TEST_PATH=/Users/yeshou
    export PATH=$PATH:$TEST_PATH

    效果如图:

    Mac下的环境变量操作的小例子大致就这么跑了一遍,至此也大致了解环境变量及其操作流程。

    最后,我们顺便看看 .bash* 相关都有什么文件:

    cd ~
    ls -a | grep “bash”

    列出来的文件有:

    .bash_history (记录bash命令操作的文件)

    .bash_profile (系统在登录式操作时执行的环境变量配置文件,如启动系统、远程登录、切换用户)

    .bash_sessions (bash会话记录,这是个文件夹,里面包含了每次使用bash所做的操作的文件列表)

    .bashrc (系统在交互式和非登录式bash shell操作时读取执行的环境变量配置文件)


    平常操作起来都是挺麻溜的,在整理成文章的时候还是会遇到不少问题,这也反映出平常大多停留在使用的阶段,没停下来去思考去理解… 通过写文章总结和整理知识点,会发现日常的理解或操作很多有不是那么合适的地方,发现后去改正,这样才会有进步~

  • 相关阅读:
    iOS-字符串的连接
    [Win32]Win32 SDK编程系列文章——键盘输入消息
    [置顶] eclipse导入svn下载的项目后无法与服务器的svn项目关联
    iOS-时区 日期处理
    数学之路(3)数据分析(5)
    Filter解决中文乱码问题
    Mac OS X 10.8.3搭建Android工程源码的编译环境(解决找不到GCC、GIT、PYTHON的问题)
    paypal租用
    Java通过内部类实现回调功能
    处理9path图片边缘的小黑点
  • 原文地址:https://www.cnblogs.com/ys-ys/p/7604652.html
Copyright © 2011-2022 走看看