如何在不修改现有文件的情况下运行“zsh-newuser-install”

如何在不修改现有文件的情况下运行“zsh-newuser-install”

我想解决的顶级问题是运行zsh-newuser-install配置脚本。这是 zsh 第一次打开并且没有看到.zprofile// .zshrc... 文件时执行的内容。我不想让它扰乱我当前的配置,所以我想在一些隔离的环境中运行它,只是为了看看它的选项是什么,并检查它为我生成的配置。

我的想法是在 docker 容器内运行 zsh。因为我对 docker 不太熟悉,但我对 nix 有点了解 - 我使用 nix 包管理器来构建具有这样表达式的容器:

docker-example =
  pkgs.dockerTools.buildImage {
    name = "with-zsh";
    config = {
      Cmd = [ "${pkgs.zsh}/bin/zsh" ];
    };
    copyToRoot = with pkgs; [
      coreutils
      zsh
    ];
  }

将容器加载到 docker 后,我运行它:

docker run -a stdin -a stdout -a stderr -i -t with-zsh:b9049wbw7bbil80pnnvl4cgxb2s9kr15

它让我进入一个简单的系统中的zshshell ,没有 homedir,也没有 zsh 配置文件。/它不会让我通过zsh-newuser-install配置器。我还在“/share/zsh/5.9/scripts/newuser”中找到了初始化脚本,并且采购它似乎没有任何操作。我希望跳入 cli 配置器。

我怀疑问题可能是缺少用户?运行whoami产量:

#whoami
> whoami: cannot find name for user ID 0: No such file or directory

我非常感谢您帮助解决这个特定问题或解释为什么它对我来说出乎意料地工作,以及如何检查一些 zsh 配置而不弄乱我当前的配置的所有其他想法。提前致谢!

答案1

为此你不需要 Docker。只需使用除您自己的目录之外的空主目录启动您的 shell:

HOME=$( mktemp -d ) exec zsh

相关内容