Mac Terminal重新启动后无法运行大多数命令

时间:2018-12-07 10:33:26

标签: ruby-on-rails macos github terminal zsh

我正在使用Mac。我有一个自定义的终端机zsh,还好一阵子。但是当我重新启动计算机后,它的行为开始有所不同:

  • 终端停止运行诸如rakerails之类的命令。
  • 我已经使用rails创建了应用程序,但是现在使用rails -v这样的rails命令可以使我做到这一点:

    Rails is not currently installed on this system. To get the latest version, simply type:
    
  • 用于显示波浪号~(而不是我的用户名)的终端也已停止。现在,它将显示完整的用户名:

    Gustaves-MacBook-Air% $ sudo gem install rails
    

我什至不知道为什么它不起作用,为什么重启计算机会破坏它,即使我以前做过。

我什至无法重新下载rails:

$ sudo gem install rails
zsh: command not found: $

因为我很早以前就已经在在线设置后自定义了我的终端机。

3 个答案:

答案 0 :(得分:2)

这是我在其他人的帮助下解决此问题的方法:

首先,我使用

删除了损坏的文件。
rm -rf ~/.oh-my-zsh
rm ~/.zshrc

然后我运行以下命令以重新下载zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

最后,我使用文本编辑器打开了隐藏的.zshrc文件,以添加我需要的插件

plugins=(
  git
  bundler
  dotenv
  osx
  rake
  rbenv
  ruby
)

重启终端后,一切又恢复正常

答案 1 :(得分:1)

尝试重置zsh:

exec /bin/zsh

exec /usr/bin/zsh

答案 2 :(得分:1)

我相信您所在目录的Ruby环境没有正确加载(因此缺少Rails)。似乎您的ZSH环境未正确加载(提示~也可能是提示)。为什么不能确定,但​​我会在此期间添加一些您可以帮助的事情。

Bundler与binstub和路径一起使用

我通过使用以下命令将所有gems安装到项目目录中来对项目进行沙箱处理:

bundle install --binstubs --path=vendor.noindex

这会将rails之类的东西放到bin中,并将宝石放到vendor.noindex下。 “ noindex”部分阻止Spotlight对该目录建立索引,这对我来说真的很烦!

确保ZSH是您的默认外壳程序

命令是:

chsh -s $(which zsh)

查看运行echo $0当前的默认值。

检查您的〜/ .zshrc是否正常

如果您的提示符显示不正确,则说明文件的格式不正确或无法正确加载。查看Oh My Zshell的说明。

检查您的PATH是否未损坏

您的PATH看起来像是冒号了,因为它以冒号开头。检查您添加的所有zsh插件是否正常工作(也许一开始就将其全部删除,然后一一添加回去)。

我还使用〜/ .zshenv和helper to get paths set up correctly,也许会对您有所帮助。我将此添加到我的〜/ .zshenv中。

if [ -x /usr/local/libexec/path_helper.rb ]; then
  PATH=$(/usr/local/libexec/path_helper.rb -p "")
  DYLD_FALLBACK_FRAMEWORK_PATH=$(/usr/local/libexec/path_helper.rb --dyld "")
  C_INCLUDE_PATH=$(/usr/local/libexec/path_helper.rb -c "")
  MANPATH=$(/usr/local/libexec/path_helper.rb -m "")
fi
export PATH
export DYLD_FALLBACK_FRAMEWORK_PATH
export C_INCLUDE_PATH
export MANPATH

希望有帮助。