Mac 下将当前目录添加到环境变量中

对于习惯 win 的用户,当前目录优先级最高,感觉本应如此,甚至都没办法在 PATH 中修改优先顺序。
但对于 linux/unix 用户来说,根本就没这回事,导致每次执行当前目录下的命令都需要加上 ./ 前缀,非常麻烦。

实际需求

PC 下当前目录优先级最高,是非常方便的事情,比如我要写一个脚本,覆盖系统命令功能或者扩展系统命令功能。
win 下只要 命令.cmd命令.bat 就可以在里面扩展功能了,非常简单方便。
但作为PC工作站的 mac/linux 用户,就麻烦很多,要加 ./ 前缀才能执行。

*nix 系特性

为什么 *nix 系统不默认当前目录优先级最高?
国内翻了下,没找到,谷歌下找到一篇 《Is it safe to add . to my PATH? How come?》。

在下面的回答可以看到,对于服务器而言,如果被入侵了,人家在你的根目录放了恶意的脚本,那你执行的时候就会运行这个恶意脚本,这是非常危险的事情。
但对于个人PC用户而言,你完全知道你自己在做什么,所以可以自行在环境变量 PATH 中添加 .
因为这个系统就是你在用,风险相对来说小很多。

配置 PATH

知其所以然后,我们就可以放心的加了。

方法一:

1
2
3
4
5
6
7
8
9
#通过修改 .bashrc 文件: (或者 .zshrc 文件)
$ vim ~/.bashrc
#在最后一行添上:
export PATH=.:$PATH
#生效方法:(有以下两种)
#1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
#2、输入 source ~/.bashrc 命令,立即生效
#有效期限:永久有效
#用户局限:仅对当前用户

方法二:

1
2
3
4
5
6
7
#通过修改profile文件:
$ vim /etc/profile
#在最后一行添上:
export PATH=.:$PATH
#生效方法:系统重启
#有效期限:永久有效
#用户局限:对所有用户

方法都网上抄的,但他们都没说为什么。

小结

目前用了一周,没发现啥大问题,如果真有坑,后续会再发文说明的。