mac环境变量

时间:2024-03-14 10:15:20

查看环境变量

env

env为environment的缩写,列出所有的环境变量。

set

set查看所有的变量(包含环境变量和自定义变量),其中自定义变量主要为一些与bash接口有空的变量以及用户自定义的变量。其中重要的几个如下:

PS1='\h:\W \u\$ '  # 命令提示符号
\h: 主机名在第一个小数点之前的名字
\W: 利用basename函数获取的工作目录名称
\u: 目前用户的账号名称

export

export也可以把所有的环境变量显示出来,但是它还有一个重要的作用就是把自定义变量转换为环境变量,这有什么用呢?
用处大着呢,主要用户解决子进程继承父进程里面自定义的变量内容,避免重复创建。我们的bash其实就是系统中的一个进程,当我们通过开启其他程序,其实是开启一个该进程的一个子进程,这个子进程会继承父进程中所有的环境变量,但不会继承自定义变量。为了解决这个问题,才有了export命令,执行该命令即可把父进程中的自定义变量转换为环境变量,这样子进程就可以直接使用这些变量而不用额外申明定义了。
与之相对就是通过declare卸载环境变量为自定义变量。

note: 在bash定义的别名,变量等信息若不保存到配置文件中,则会在该bash被注销后失效。

常见的环境变量

PATH

PATH为执行文件查找的路径,它一般用于执行命令指示可执行文件的查找范围。
echo $PATH,可以打印当前shell的可查找的范围:

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

其中各个目录用:分割

如果在PATH定义的目录中含有多个名字相同的可执行文件,那么先查询到的同名命令先被执行。

实战

为mac添加ll命令

经常使用Linux 的小伙伴肯定比较喜欢使用ll这个命令来显示某个文件包含的所有的文件信息,但是在mac中没有预设这个别名命令,所以需要手动设置。
通过alias 命令即可为目标命令创建别名。这里的操作是:

alias ll='ls -alF'

这样定义后,该别名命令会在本次bash注销后失效,所以我们需要写入到配置文件中方便每次打开shell时都能使用该别名命令。bash shell会在启动时依次读取全局配置文件和用户配置文件,其中全局配置文件是为本机的所有的用户服务的,一般不要轻易修改。此类配置文件一般放在/etc/下面,具体名字由不同的distribution决定,在我的mac里是:/etc/bashrc:/etc/bashrc_Apple_Terminal。而用户配置文件则是每个使用该机器的用户自己再量身打造的配置,此类配置文件放在用户主目录下,一般为:~/.bash_profile
那么这里我们在自己的目录下的配置文件中添加ll别名设置。

cd
vim .bash_profile
alias ll='ls -alF'
source .bash_profile

其中,source是加载配置文件,否则需要注销bash, 重新开启才能生效。
效果图如下:
mac环境变量