-bash:篡改.bash_profile后找不到命令

时间:2014-03-16 21:14:55

标签: macos bash .bash-profile

我正在调整我的.bash_profile,并做错了什么 - 相当多的命令对我不起作用。

-bash: jekyll: command not found

我已经在stackoverflow和其他网站上尝试了很多东西,但似乎无法让它工作。

大多数命令仍在工作(cd,mv,ls,vim,git,甚至s3cmd),但其他命令(rails,jekyll)由于某种原因无效。

我如何到达这里是因为我开始尝试让命令'subl'工作,所以粘贴到命令行(via this tutorial

$ ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

它对我不起作用(后来我意识到这是因为该应用程序是Sublime Text,而不是Sublime Text 2),但最终找到了我的方式到另一个页面,告诉我打开我的bash_profile并粘贴这个。

alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"

打开我的bash_profile(vim .bash_profile)后,它出现了某种错误(我认为是冲突的文件),所以我恢复了它。之后,粘贴上面,保存并退出。

在重新加载(打开一个新选项卡)时,遇到了一堆错误,我的命令不再有效。几个小时后,尝试了很多东西,这是我现在的状态

$ echo $ PATH

 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/ChrisYin/usr/bin:/Users/ChrisYin/usr/bin:/Users/ChrisYin/usr/bin:/Users/ChrisYin/usr/bin

$ open .bash_profile

export ARCHFLAGS="-arch x86_64"
export PATH=$PATH:~/usr/bin
alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

最后我尝试删除我的.bash_profile,并重新安装了rails。我让rails和jekyll再次工作,但随后我打开了一个新标签,但没有一个再次正常工作。

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

尝试将/opt/local/bin添加到.bash_profile

的路径中
export PATH=/opt/local/bin:$PATH

答案 1 :(得分:0)

更多的评论而不是答案,但长引号/代码在评论中看起来很糟糕。

非常奇怪,您在这里遇到错误,但请尝试在一个地方对所有路径进行硬编码。例如将您的bash_profile更改为

export ARCHFLAGS="-arch x86_64"
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/ChrisYin/usr/bin:/Users/ChrisYin/usr/bin:/Users/ChrisYin/usr/bin:/Users/ChrisYin/usr/bin"
PATH="$PATH:~/usr/bin"

# Assuming your jekyll is found here
PATH="$PATH:/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/lang" 

export PATH

alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

确保您通过source bash_profile来源或重新注册bash。

我还会注释掉任何其他初始化文件中的任何PATH语句,即.bashrc,以防它意外覆盖.bashrc个(无法记住哪一个来源)第一个随便,但最好还是把它们放在一个地方)。

为了弄清楚安装的地方,最简单的方法是阅读它所拥有的任何README /手册。否则,你可以用下面的东西搜索它(如果你有一个设置,找到数据库会更快)

find / -name "jekyll"
find / -name "rails"