【问题标题】:Loading zsh as the default shell in gnu screen [closed]在 gnu 屏幕中加载 zsh 作为默认 shell [关闭]
【发布时间】:2010-05-22 17:11:53
【问题描述】:

我正在使用 KUbuntu 10.04 (Lucid Lynx)。我已经安装了 zsh 和 screen。我已将 zsh 设置为默认 shell,方法是在终端的 Settings->Edit Current Profile 中将 Command 设置为 zsh。 但是,当我启动屏幕时,会加载 bash shell。如果我运行命令 zsh,则 zsh 会启动,但会显示以下消息:

"/home/joel/.zshrc:36: Can't add module parameter `mapfile': parameter already exists"

此外,zsh 仅针对当前屏幕实例调用,我必须为其他实例再次手动调用它。 那么,有没有办法让屏幕默认加载zsh并为每个实例自动调用它?

谢谢

【问题讨论】:

  • 属于 superuser.com
  • 请发~/.zshrc的内容。
  • 或尝试将您的~/.zshrc消隐

标签: unix zsh gnu-screen


【解决方案1】:

如果您只想将其设为屏幕会话的默认 shell,您只需将此行添加到您的 ~/.screenrc 文件中即可。

shell "/usr/bin/zsh"

【讨论】:

  • 我认为知道~/.screenrc 在您创建之前不存在也很有帮助。我必须创建文件并将shell "/usr/bin/zsh" 放入其中才能正常工作。 link
【解决方案2】:

首先像这样定位zsh在哪里:

$ whereis zsh

当前用户的第二次更改shell:

$ chsh -s /path/to/zsh joel

zsh 将成为用户 joel 重新登录后的默认 shell。

【讨论】:

  • 感谢您的回复。 whereis zsh 给 sh: /bin/zsh /usr/bin/zsh /etc/zsh /usr/lib/zsh /usr/share/zsh /usr/share/man/man1/zsh.1.gz 。但是当我执行 chsh -s {/bin/zsh} joel 时,它会要求输入密码,然后我收到消息“chsh: {/bin/zsh} is an invalid shell。”
  • chsh -s /bin/zsh joel - 这就是你所需要的! :)
  • 哎呀..你的权利,感谢工作! :)。但是当我启动屏幕时,我仍然收到消息“无法添加模块参数`mapfile':参数已存在”。有什么办法解决吗?
  • 我认为,Dennis 是对的,您需要从 ~/.zshrc 文件中添加您的问题...
【解决方案3】:

我遇到了类似的问题,除了在我的情况下,我通过在 .vimrc 中指定 set shell=zsh\ --login 更改了 vim 使用的 shell。每次我通过 :sh zsh 进入 shell 时都会发出同样的错误:

Can't add module parameter `mapfile': parameter already exists

我在freenode 上的#vim 和#zsh 上询问过。事实证明,如果您在 zsh 会话中再次运行 zsh,您将看到相同的错误,建议的解决方法是简单地将 &>/dev/null 附加到您的 .zshrc 文件中,如下所示:

zmodload -ap zsh/mapfile mapfile &>/dev/null

zsh mapfile 模块创建了一个伪变量,它将文件名映射到它们的内容,并且只有在您有实际使用 $mapfile 的脚本时才需要。

这似乎是可选的,但有人指出,自动加载参数在那里,所以它只在需要时才加载,所以将线路和管道投诉保留到 /dev/null 应该没有害处

【讨论】:

    猜你喜欢
    • 2015-09-11
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多