Direnv环境变量管理工具

本文介绍了一款基于Golang开发的环境变量管理工具——Direnv。该工具支持多种操作系统,并能帮助开发者简化环境变量管理流程,创建独立的项目开发环境。文章详细讲解了Direnv的安装步骤、工作原理及快速使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

direnv 是一个基于 golang 开发的简单而又强大的环境变量管理工具,其可以帮助我们简化环境变量的管理,同时还支持多种操作平台,包括 MacOS、Ubuntu、Fedora 等等。

Direnv环境变量管理工具

Direnv环境变量管理工具

1. 工具安装

推荐使用 docker 进行容器化部署

Direnv 是一个 Shell 程序的扩展,它可以帮助我们更好地使用现有的 Shell 程序,其会根据当前目录(进入对应目录中之后)加载和卸载我们指定的环境变量。使用它之后,可以帮助我们创建每个项目独立的开发环境,或者部署加载秘钥信息,等等。安装分为两部分:

install the package or binary
hook into your shell

#from binary builds
$ curl -sfL https://direnv.net/install.sh | bash
$ chmod +x direnv
$ mv direnv /usr/local/bin

#from system packages
$ apt install direnv
$ yum install direnv

#bash hook - ~/.bashrc
$ eval “$(direnv hook bash)”

#zsh hook - ~/.zshrc
$ eval “$(direnv hook zsh)”

#fish hook - ~/.config/fish/config.fish
$ direnv hook fish | source

#tcsh hook - ~/.cshrc
$ eval direnv hook tcsh

2. 工作原理

原来很简单,就是使用自定义的配置文件,完成的。

当进入目录对应目录之后,Direnv 会检查当前和父目录中是否存在 .envrc 或 .env 的文件。如果文件存在并且有权限访问的话,则会将其加载到 BASH 的 shell 中,然后通过 Direnv 捕获所有导出的变量,提供给当前 shell 使用。如果 .envrc 和 .env 文件同时存在的话,则将优先选择 .envrc 文件。

它支持像 Bash、ZSH、TCSH 和 FISH 这样的所有常见的 Shell 工具,允许项目特定的环境变量而不会对 〜/.profile 文件进行混乱。因为 Direnv 被编译成一个静态可执行文件,所以它足够快,在每个提示符上都不会被注意到。它也是语言无关的,可以用来构建类似于 rbenv、pyenv 和 phpenv 的解决方案。

3. 快速使用

安装之后,如何开始使用呢?

#创建一个演示目录
$ mkdir ~/my-project
$ cd ~/my-project

#可以看到FOO变量没有被用到
$ echo ${FOO-nope}
nope

#创建.envrc文件新加自动以变量 - 安全机制不允许加载
$ echo export FOO=foo > .envrc
.envrc is not allowed

#去除安全机制再进行使用
$ direnv allow .
direnv: reloading
direnv: loading .envrc
direnv export: +FOO

#显示FOO环境变量被加载
$ echo ${FOO-nope}
foo

#退出项目目录
$ cd …
direnv: unloading

#之前设置的变量看不到了
$ echo ${FOO-nope}
nope

4. 参考链接

送人玫瑰,手有余香!

direnv - unclutter your .profile
Welcome to the direnv wiki!

文章作者: Escape
文章链接: https://www.escapelife.site/posts/aa6d5bf6.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT运维大本营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值