一、通过安装 Theos
引出PATH
下载Theos
git clone --recursive https://github.com/theos/theos.git
git clone --recursive https://github.com/theos/theos.git ~/theos
--recursive
是递归下载一些依赖\子模块
~/theos
是将theos下载到我们指定的 ~/theos
路径下面
.bash_profile
安装了 Theos
之后,经常会用到 ~/theos
路径下的一些命令工具
,所以我们最好先将这个路径存起来:
vim .bash_profile
export THEOS=~/theos
export THEOS=~/theos
意思是导出一个环境变量THEOS
,这个变量的值就是~/theos
这个路径,以后在外面写 THEOS
,其实就是指 ~/theos
这个路径
PATH
在终端,我们常常想在任意路径下
面去执行一些命令工具的时候,一般会将其放在/usr/bin
或者 /usr/local/bin
下面,现在 /usr/bin
已经不允许用户操作了,所以一般放在/usr/local/bin
下面;
但是theos里这些命令工具(比如nic.pl工具)最好还是放在 ~/theos
路径下面,放在其他的地方可能就不好使了,因为nic.pl这些命令工具可能会依赖~/theos
下的一些其他东西,如果把它们放在 /usr/local/bin
路径下就可能导致命令不好使了
那么问题来了:我们既想把 nic.pl
命令工具放在 ~/theos
下,又想在终端其他路径下使用nic.pl
,那怎么办那?
做法很简单:
只需要将 ~/theos
这个路径变成和 usr/local/bin/
具有一样的性质就ok了,那怎么做那?
Mac里有一个叫做 PATH
的环境变量,只要将我们想要访问的路径
配置到 PATH
这个环境变量里,就可以在终端任何地方访问这个路径了,之前提到的 /usr/bin
和/usr/local/bin
等都是配置在这个 PATH
的环境变量里面
vim .bash_profile
// 相当于在就的PATH里有追加了一个新的`~/theos/bin`路径
export PATH=~/theos/bin:$PATH
- 如果只写
PATH=~/theos/bin
,就会覆盖掉之前已经配置好的PATH
,之前PATH
配置好的/usr/bin
和/usr/local/bin
等其他路径就都失效了,所以我们还必须通过$PATH
引用之前已经配置好的PATH
,多个路径之前用冒号:
隔开的
配置完新的 PATH
可以通过 source .bash_profile
使其立即生效,最终完美写法:
vim .bash_profile
// 添加
export THEOS=~/theos
// 相当于在就的PATH里有追加了一个新的~/theos/bin路径
export PATH=$THEOS/bin:$PATH
// 让修改的.bash_profile文件立即生效
// 查看下新的PATH是否配置成功
echo PATH
二、Mac系统的环境变量
Mac系统的环境变量,加载顺序为:
/etc/profile
/etc/paths
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
-
/etc/profile
和/etc/paths
是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。 - 后面3个按照从前往后的顺序读取. 如果
/.bash_profile
文件存在,则后面的几个文件就会被忽略不读了; 如果/.bash_profile
文件不存在,才会以此类推读取后面的文件。 -
~/.bashrc
没有上述规则,它是bash shell
打开的时候载入的
说明
-
/etc/paths
(全局建议修改这个文件 )
编辑 paths,将环境变量添加到 paths文件中 -
/etc/profile
(建议不修改这个文件 )
全局(公有)配置,不管是哪个用户,登录时都会读取该文件 -
./bashrc
每一个运行bash shell的用户执行此文件. 当bash shell被打开时,该文件被读取
使用注意 对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效 -
./bash_profile
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc
文件,在用户目录下)
使用注意 需要需要重启才会生效,/etc/profile
对所有用户生效,~/.bash_profile
只对当前用户生效;也可以通过source .bash_profile
立即生效
网友评论