对于习惯 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 | #通过修改 .bashrc 文件: (或者 .zshrc 文件) |
方法二:
1 | #通过修改profile文件: |
方法都网上抄的,但他们都没说为什么。
小结
目前用了一周,没发现啥大问题,如果真有坑,后续会再发文说明的。