登录时不应用/etc/zshrc

登录时不应用/etc/zshrc

我不知道为什么将别名应用于所有交互式终端(即我的用户帐户和 sudo)如此困难。大多数网络搜索结果都是关于 BASH 的,但我的 shell 是 ZSH (Manjaro Linux),所以 /etc/bash.bashrc 不起作用。

这个答案说我应该把它放在 /etc/zshrc 中,但似乎该文件在登录时不应用,除非我手动运行source /etc/zshrc。为什么在登录时不应用它(用户 ssh,或该用户的 sudo)?

PS:我也尝试过/etc/zshrc、/etc/zshenv、/etc/zprofile,如这个页面说。登录时没有应用它们。

答案1

系统文件的位置取决于操作系统。/etc/zshrc和朋友(如列表中所列)在线文档) 是默认位置,但某些发行版使用不同的位置,例如/etc/zsh/z*/usr/local/etc/z*man zsh在“启动/关闭文件”或“文件”下检查您的系统。

通常,系统配置文件是随 zsh 一起安装的,但仅包含注释。如果您没有找到它们,则表明您找错了地方。

在 Arch Linux 上,zsh 启动文件都在/etc/zsh.

向系统启动文件添加别名的情况并不常见。别名通常是个人喜好。要在运行 root shell 时获取首选别名,请保持HOME环境变量指向您的主目录。使用须藤:

  • 运行sudo zsh并确保它HOME位于;env_keep的列表中/etc/sudoers
  • 或运行sudo -s并另外确保/etc/sudoers不设置选项set_homealways_set_home
  • 或运行sudo HOME=~ zsh

答案2

您正在阅读错误的文档。根本zsh不使用。/etc/zshrc

这是官方文档:https://zsh.sourceforge.io/Intro/intro_3.html

还有一些不错的教程:https://www.zerotohero.dev/zshell-startup-files/

相关内容