Mac的环境变量

环境变量:

官方定义:环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,即指明操作系统的重要目录在哪里。如:临时文件夹位置和系统文件夹位置等。

当在windows终端中输入一个命令时,首先系统会去环境变量中去找这个程序,如果找到了,就运行程序,否则就会提示找不到文件。其实windows的cmd就是一个打开终端的命令而已:

对于现在的mac来说,因为默认使用zsh作为shell,现在mac系统只会显示默认的zsh加载的文件。

zsh下的用户环境配置文件很多.zlogin .zprofile .zshrc .zshenv .zlogout

.zshenv:总是被读取,所以通常把$PATH, $EDITOR等变量写在这里,这样无论是在shell交互,或者运行程序都会读取此文件

.zshrc:主要用在交互shell,所以主要是为shell服务的,比如对shell做的一些个性化设置都可以在这里写入

.zlogin:在login shell的时候读取,所以比如X系统启动的时候会读取此文件,所以不会再运行中重复读取

.zprofile是给zsh用户的一个.zlogin的替代品,所以我们如果使用了.zlogin就不必再关心此文件

zlogout:这个就很好理解了, 退出终端的时候读取,用于做一些清理工作,一般我们也用不上

优先级:

.zshenv → [.zprofile if login] → [.zshrc if interactive] → [.zlogin if login] → [.zlogout sometimes].

如果之前是使用 bash 配置文件,例如设置环境变量、别名或路径变量,mac应该切换到使用 zsh 等价物。例如:

.zprofile 等价于 .bash_profile 并在登录时运行,包括通过 SSH

.zshrc 等效于 .bashrc 并为每个新的终端会话运行

配置文件的区别:

./etc/profile 文件 全局共有配置,无论哪个用户登录,都会读取此文件

/etc/bashrc (一般在这个文件中添加系统级环境变量)全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

~/.bash_profile:一般在这个文件中添加用户级环境变量

/etc文件如下:

为什么使用zsh会让.bash_profile里面的环境变量有效:

~/.zshrc文件如下:

查看它的第一行命令是执行.bash_profile的命令,这是我自己添加的。所以以后直接在.bash_profile配置环境变量即可。

# 在当前bash环境下读取并执行FileName中的命令。使Shell读入指定的Shell程序文件并依次执行文件中的所有语句
source FileName
# 该命令通常用命令“.”来替代
# source /etc/profile 与 .  /etc/profile 是等效的。
# 查看系统的环境默认变量
vim /etc/paths
# 查看配置的所有环境变量,$PATH 特指:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
echo $PATH

~/.bash_profile文件如下: 这里的冒号“:”是环境变量的分隔符

~/.zprofile文件如下:

对于配置了环境变量的路径而言,bin目录下的命令在终端任意地方都可以直接使用!例如MongoDB:

我们可以在终端任意位置输入:mongo 就可以进入MongoDB数据库的交互了

参考资料比较多,仅供学习记录

你可能感兴趣的:(Mac的环境变量)