gpt4 book ai didi

linux - 如何在 fish shell 中的每个 session 中永久设置 env?

转载 作者:行者123 更新时间:2023-12-04 02:26:51 34 4
gpt4 key购买 nike

我安装了 cargo建筑环境。
我用 cargo install exa安装 exa (命令 ls 的替代方案)。
可执行文件放在$HOME/.cargo/bin .
我用 fish shell set -gx PATH $PATH $HOME/.cargo/bin ,然后我可以使用命令 exa在当前 session 中。
但是当我打开一个新 session 时,我无法执行 exa除非 set -gx ...再次。
我看选项gx :

--global  -g     (Make variable scope global)
--export -x (Export variable to subprocess)
全局不是意味着每个 session 吗?有人可以帮我吗?

最佳答案

Doesnot global means every session?


它没有。它是“全局”而不是“本地”。来自 the fish documentation :

Global variables are specific to the current fish session, and will never be erased unless explicitly requested by using set -e.


一般来说,你想要的只是把 set -gx进入 ~/.config/fish/config.fish。那是fish的配置文件。
Fish 也有“通用”变量,它们被持久存储,但它们与导出的交互很尴尬,所以我不推荐它。
特别是对于 $PATH,fish 提供了 fish_user_paths它自动添加的变量,因此您可以运行
set -U fish_user_paths $fish_user_paths $HOME/.cargo/bin
一次,交互地, fish 会照顾它。这是一个通用变量,但 fish 会在必要时将其添加到 $PATH 中(对于每个组件,它会检查它是否已经存在等等)。做 不是 将其放入 config.fish 中,否则每次启动一条 fish 时它都会添加一个 $HOME/.cargo/bin ,因此它会使变量膨胀。
回顾一下:
  • 对于全局变量,输入 set声明到 config.fish
  • 对于通用变量,手动执行
  • 对于 $PATH,使用 $fish_user_paths 进行自定义
  • 关于linux - 如何在 fish shell 中的每个 session 中永久设置 env?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66842546/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com