Ubuntu 中的 Zsh 登录 shell

Ubuntu 中的 Zsh 登录 shell

我全新安装了 Ubuntu Natty。我将 shell 更改为 zsh。

当我登录时,它似乎没有获取我的 ~/.zprofile 文件。gnome 是否未在您选择的 shell 的登录 shell 中执行?它始终是 sh 吗?

我深入研究了 /etc/gdm 并发现如果存在,gdm 总是会提供 ~/.profile,但我找不到任何表明它对我选择的 shell 执行任何特定操作的迹象。

有人能帮助我了解这里发生了什么吗?

答案1

GDM (版本 2,我不确定 3) 只读取/etc/profile~/.profile/etc/xprofile~/.xprofile。一切都用 运行sh

如果您不想在多个文件中重复内容,则可能的解决方案是使用~/.xprofile并从您的来源获取它。请记住,它来源于~/.zprofile~/.xprofile所以你不能使用任何其中的语法或命令。

答案2

登录 shell 仅影响文本模式会话(即当您在文本模式下输入密码时,或者当您远程登录时),而不影响图形模式会话(即当您在 GUI 中输入密码时)。

要为登录时定义创建一个文件,请将所有内容放入~/.profile,然后从 中获取~/.zprofile。一个简单的方法是让您的文件~/.zprofile包含一行

emulate sh -c '~/.profile'

~/.profileGdm 安排作为会话设置的一部分进行加载,因此您得到了全面的保障。

也可以看看Zsh 没有命中 ~/.profile

相关内容