我全新安装了 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'
~/.profile
Gdm 安排作为会话设置的一部分进行加载,因此您得到了全面的保障。
也可以看看Zsh 没有命中 ~/.profile。