zoukankan      html  css  js  c++  java
  • mac的环境变量

    查看环境变量

    输入一下命令:

    env
    

    回车显示如下

    TMPDIR=/var/folders/15/x9lp8tvn1sv7hy79bv1mxr0r0000gn/T/
    __CFBundleIdentifier=com.apple.Terminal
    XPC_FLAGS=0x0
    TERM=xterm-256color
    SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.5tlbZA2P4S/Listeners
    XPC_SERVICE_NAME=0
    TERM_PROGRAM=Apple_Terminal
    TERM_PROGRAM_VERSION=440
    TERM_SESSION_ID=4184D918-D2C0-40EA-AF65-4A1F68A68396
    SHELL=/bin/zsh
    HOME=/Users/dshvv
    LOGNAME=dshvv
    USER=dshvv
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    SHLVL=1
    PWD=/Users/dshvv
    OLDPWD=/Users/dshvv
    LANG=zh_CN.UTF-8
    _=/usr/bin/env
    

    如果只看path,则输入echo $PATH即可

    echo $PATH
    

    回车后会有如下

    /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    

    环境变量文件优先级

    /etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc

    环境变量分类

    全局系统变量

    /etc/profile
    /etc/paths
    是系统级别的,系统启动就会加载,对每个用户都生效。
    每次修改需要重启方可生效,否则只能source ~/.bashrc才会立刻生效哦

    用户系统变量

    ~/.bash_profile
    ~/.bash_login
    ~/.profile
    是当前用户级的环境变量
    优先级是从前往后的顺序读取,如有~/.bash_profile,则后几个文件就会被忽略不读了,如不存在,才会以此类推读取后面的文件。
    每个用户都可使用该文件输入专用于自己使用的shell信息,用户进入系统,系统启动就会加载,
    和全局系统变量一样,该文件也仅仅执行一次!
    以上也是每次都需要重启才生效,否则只能source ~/.bashrc才会立刻生效哦

    终端特有环境变量

    ~/.bashrc
    没有上述规则,它是bash shell打开的时候载入的。
    为每一个运行bash shell的用户执行此文件.每次bash shell被打开时,该文件就会被读取。
    修改完毕,如果想立刻生效,则可执行下面的语句:source ~/.bashrc
    否则只有新开的shell窗口才会生效

    需要注意的是:

    zsh其实并不使用 /etc/profile文件,而是使用 /etc/zsh/ 下面的 zshenv、zprofile、zshrc、zlogin 文件,并以这个顺序进行加载。

    bash才会去加载/etc/bashrc。而zsh则会加载/etc/zshrc。
    在mac系统中,在之前的终端是使用bash的。但是从 macOS Catalina 版开始,bash下岗了,被zsh这个更先进的终端系统所替代。
    终端是zsh还是bash,其实是没有啥区别的。其中的最大变数就是:配置文件到底是.zprofile|.zshrc,还是.bash_profile|bashrc。
    因为,在很多地方,都是在这里加载环境变量的,如果zsh和bash切换了,那么就意味着一些环境变量可能就失效了。
    .zprofile 的作用与 .bash_profile 相同,并且在登录时运行(包括通过 SSH 运行)。
    .zshrc的作用与 .bashrc 相同,并针对每个新的“终端”会话运行。
    可以通过 echo $SHELL来查看当前的shell类型

    我该用哪个

    ~/.bash_profile
    因为我看大家配置mysql、还是jdk等等,都是拿这个举例子。猜测如下
    如果使用全局变量,则会污染环境,影响比较大
    如果使用终端特有的变量,则每次都要加载,浪费性能
    所以使用了用户的系统变量
    用户的系统变量中bash_login 需要登陆,才能继续进行,显然不方便
    至于~/.profile 网上对比~/.bash_profile 对比的不多,推测可能是按照加载顺序优先配置~/.bash_profile的缘故吧。

  • 相关阅读:
    每日一篇文献:Robotic pick-and-place of novel objects in clutter with multi-affordance grasping and cross-domain image matching
    每日一篇文献:Intuitive Bare-Hand Teleoperation of a Robotic Manipulator Using Virtual Reality and Leap Motion
    每日一篇文献:Virtual Kinesthetic Teaching for Bimanual Telemanipulation
    HEBI Robotic Arm VR Teleoperation
    「iQuotient Case」AR device teleoperated robotic arm
    VR and Digital Twin Based Teleoperation of Robotic Arm
    HEBI Robotic Arm VR Teleoperation
    Human Robot Interaction
    Immersive Teleoperation Project
    机器人演示学习
  • 原文地址:https://www.cnblogs.com/dshvv/p/15261844.html
Copyright © 2011-2022 走看看