zoukankan      html  css  js  c++  java
  • 类Unix环境变量配置

    环境变量配置文件

    • /etc/profile

    • /etc/bashrc

    • /etc/paths

    • ~/.bash_profile # MacOS

    • ~/.bashrc # Linux

    • ~/.bash_login

    • ~/.profile

    如果shell的类型是zsh时,还会存在/etc/zshrc~/.zshrc

    其中/etc/profile,/etc/paths,/etc/bashrc均为系统级变量,且/etc/profile,/etc/paths在任何用户登录时,均会读取该文件;/etc/bashrc在bash shell执行时,会读取该文件。

    MacOS默认用户环境变量配置文件为~/.bash_profile,Linux默认为~/.bash_rc。如果不存在~/.bash_profile则可以自行创建~/.bash_profile,且如果~/.bash_profile存在,则后面的文件都将会被忽略。

    常见的环境变量

    • $PATH:决定了shell将到哪些目录中寻找命令和程序

    • $HOME:当前用户主目录

    • $MAIL:当前用户到邮件存放目录

    • $SHELL:当前用户使用到哪种shell

    其中,PATH=$PATH:<PATH 1>:<PATH 2>:...:<PATH N>,表示系统的可执行文件路径不但包括原先设定的路径($PATH),也包括从PATH 1PATH N的所有路径。类Unix的环境变量分隔符为“:”,而Windows的环境变量分隔符为“;”。可以通过echo $PATH查看当前的可执行文件的路径。

    可以使用:

    $ env
    

    显示所有的环境变量;

    使用:

    $ set
    

    显示所有本地定义的shell变量。

    export命令

    export命令将传入到参数创建为一个环境变量,而这个环境变量可以被其它调用程序或脚本看见。

    示例:新建一个环境变量WELCOME

    $ export WELCOME="hello"  
    $ echo $WELCOME
    

    输出:
    hello

    如果直接使用export命令在shell窗口内设置环境变量,则设置的环境变量仅在本次登陆时有效,退出shell失效。

    添加系统环境变量

    修改系统变量/etc/paths

    添加系统环境变量,建议修改/etc/paths的方式添加,但不建议直接修改/etc/paths文件,而是将路径写到/etc/paths.d目录下的一个文件中,系统会逐一读取/etc/paths.d下的每一个文件。/etc/paths文件内容:

    /usr/local/bin
    /usr/bin/
    ...

    /etc/paths.d目录内容:

    git #文件
    go #文件
    ...

    查看/etc/paths.d/git文件内容:
    /usr/local/git/bin

    因此可采用以下命令添加环境变量:

    sodo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mypath'

    注意:sudo -s是指切换到root用户,但使用当前用户的环境,这和sudo su不同。

    但添加完成之后,命令不会立即生效,有两种方式使配置文件立即生效:

    • 重启终端

    • 通过source加载:source /etc/paths

    修改系统环境变量文件/etc/profile或者/etc/bashrc

    添加环境变量的语法为:

    export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>

    要添加环境变量,只需要在文件中加入:

    export PATH="$PATH:<PATH>"

    修改用户环境变量

    和上述中修改/etc/profile/etc/bashrc类似,直接修改~/.bash_profile或者~/.zshrc。添加的语法仍然是:

    export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>

    注意:每次设置完成后,如果希望立刻生效,可以使用source <ModifiedEnviromentFile>使之生效。

  • 相关阅读:
    从yield关键字看IEnumerable和Collection的区别
    Windows Azure Developer Guidance Map(含PDF下载)
    关于CLR内存管理一些深层次的讨论[上篇]
    关于CLR内存管理一些深层次的讨论[下篇]
    当你的博客文章的作者变成“编辑整理”,你作何感想?
    我看周马,以及3Q大战背后的社会问题
    一个完整的用于追踪数据改变的解决方案
    与VS集成的若干种代码生成解决方案[博文汇总(共8篇)]
    如果在BackgroundWorker运行过程中关闭窗体…
    采用一个自创的"验证框架"实现对数据实体的验证[扩展篇]
  • 原文地址:https://www.cnblogs.com/mengnan/p/12372006.html
Copyright © 2011-2022 走看看