【问题标题】:Why I can't add fish to /etc/shells?为什么我不能将鱼添加到 /etc/shells?
【发布时间】:2018-12-18 22:30:27
【问题描述】:

我正在尝试使用 fish shell 作为我在 OSX 上的默认 shell。我已经使用 brew 安装了 fish shell,当我想将它添加到 /etc/shells 时,我收到了这个错误:

tee: /etc/shells: No such file or directory

这是我使用的命令行:

echo "usr/local/bin/fish" | sudo tee -a /etc/shells

来源:https://hackercodex.com/guide/install-fish-shell-mac-ubuntu/

我的路径有问题吗?

【问题讨论】:

  • 应该是/usr/local/bin/fish,而不是usr/local/bin/fish
  • 我可以看到产生错误的唯一方法是如果您没有目录/etc,这似乎不太可能。
  • @chepner,当然这不是唯一的可能性。例如,/etc/shells 可能已作为损坏的符号链接存在。
  • ...也就是说,关于系统配置和自定义的问题更适合Unix & LinuxSuperUserAsk Different,而不是 StackOverflow。
  • @chepner 我检查了目录 /etc 是否存在,我也找到了它并找到了 shell 文件。

标签: macos shell unix command-line fish


【解决方案1】:

因为您使用 Brew 安装了 fish,所以 fish 的二进制文件与 linux 发行版不同:

你应该这样做:

echo "/usr/local/homebrew/bin/fish" | sudo tee -a /etc/shells

注意:

随着 Homebrew 的新更新,这些软件包实际上符号链接到 /usr/local/bin/fish

让您知道使用哪个路径的简单方法是 which fish 或者做一个ls -la /usr/local/bin 看看你在那个文件夹中是否有任何鱼二进制文件

【讨论】:

  • 其实我只需要删除./config/fish。当我再次运行 fish 时,它重新创建了具有正常权限的文件夹。我不知道为什么 /etc 文件夹是私有的。
【解决方案2】:

homebrew/usr/local/bin 中安装二进制文件的链接。所以如果你运行:

type fish

它应该告诉你/usr/local/bin/fish,这意味着你需要编辑/etc/shells并添加/usr/local/bin/fish

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 2011-01-30
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多