我使用的是 Ubuntu 14.04。我曾经chsh将默认 shell 设置为/usr/bin/zsh.
我~/.zprofile定义了几个环境变量,例如export EDITOR=vim. 然而,登录并启动 GNOME 终端后,这些变量并未设置。运行后zsh -l,它们是:
% echo $EDITOR
% zsh -l
% echo $EDITOR
vim
%
Run Code Online (Sandbox Code Playgroud)
那么显然,当在zsh登录时运行时,它不知道它是登录 shell,因此不读取.zprofile?是什么赋予了?
据我所知,直到最近这才起作用,然后突然就不起作用了,所以也许升级破坏了某些东西?
显然,当 zsh 在登录时运行时......
您正在zshGNOME 终端中运行,而不是在登录时运行。通过切换到 TTY ( CtrlAltF1) 并登录进行比较。
它不知道这是一个登录 shell
术语“登录 shell”被重载:
passwd。基于控制台的登录方法通常会启动此 shell(尝试 TTY、或sudo -l、或su -)。具有此上下文的“登录 shell”用于讨论用户帐户。-l手动运行时使用 或间接启动时(通过、、等)-作为参数 0 的第一个字符来获得。在讨论 shell 的调用时会用到这个含义。loginsudosu所以,它不是登录 shell(2),因为我们正在讨论它是如何启动(调用)的。
.zprofile由登录 shell 读取 (2)。默认情况下,GNOME 终端不运行登录 shell (2)。你必须告诉它这样做:
转到编辑->配置文件首选项。
选择标题和命令选项卡。
请注意“作为登录 shell 运行命令”复选框是如何取消选中的!核实。
| 归档时间: |
|
| 查看次数: |
4276 次 |
| 最近记录: |