我一直试图在我的 Mac 上安装 blastn,但在安装过程中弄乱了我的 bash 命令,我猜(不是专家......)
- using the nano command nano ~/.profile
- i`ve changed my PATH; export PATH=/Users/YourName/blast-2.2.22/bin:${PATH}
- now i can not run any command anymore in the terminal (also other shell)
-bash:导出:`/Users/Tom/ncbi-blast-2.6.0+/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/ncbi/blast/bin':不是有效标识符
由于我不是专家,我不知道如何将事情改回来......
答案1
三个步骤:首先,你可能可以从终端运行命令。您只是不知何故弄乱了搜索路径。但您仍然可以通过指定其完整路径来启动程序。
例如,即使 /usr/local/bin/ 不在您的搜索路径中,仍会启动bash /usr/local/bin/bash
。(根据需要调整路径,我不知道 OS X 默认将 bash 存储在哪里。我只是使用了 bash 在 FreeBSD 上的位置)。
是的,您可以运行命令。您可以使用这些命令来修复问题。
其次,您可能不需要查找所有路径。为当前 shell 设置新路径应该像键入export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
并按enter或 一样简单return。这只是暂时针对打开的 shell,但它将使恢复变得更加容易。
第三,让我们尝试找到错误并永久修复它。
错误信息非常清楚。引用您自己的帖子:export: /Users/Tom/ncbi-blast-2.6.0+/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/ncbi/blast/bin': not a valid identifier
您的编辑中某处有错误。请通过临时恢复路径(参见第 2 节)或指定完整路径再次打开 .profile。
如果您有备份文件,请恢复它。如果没有,请查找如下条目:
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:$PATH
或
`PATH="$PATH:/newfoldertosearch"
找到您自己的编辑。删除它们(或通过在#
它们前面放置一个来取消注释,然后尝试找到错误。它可以像使用 ; 而不是 : 一样简单。其他容易忽略的东西是空格或不可打印的字符。
编辑此文件时,不要关闭当前 shell。保持已知工作(或已知临时恢复)的 shell 打开,并在第二个 shell 中进行测试。这对于编辑您的个人资料来说是一种很好的做法。
PS:ncbi-blast-2.6.0+ 末尾未加引号的字符串中的加号可能是这种情况,但我没有 OSX 可以进行测试。
答案2
这会将您的 PATH 变量重置为其默认值并使您的命令再次起作用:
PATH=$(getconf PATH)
然后,不要使用
export PATH=/Users/YourName/blast-2.2.22/bin:${PATH}
使用:
export PATH="$HOME/blast-2.2.22/bin:${PATH}"
最后,假设您正在将 PATH 定义添加到.profile
或.bashrc
,您可以通过执行 来测试更改bash -l
。这将调用 bash 作为子 shell,但它将像您登录一样运行。您可以测试更改是否按预期工作,然后键入exit
以终止该子 shell 并返回到原始登录 shell。
答案3
- 现在我无法再在终端(以及其他 shell)中运行任何命令
你的问题的这部分发生在我身上,所以我所做的是:
1)export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
在终端中输入以使其暂时工作
2)输入以下命令编辑 bash_profile/usr/bin/open ~/.bash_profile -a TextEdit
3)当我打开我的 bash_profile 文件时,我发现最后一行export
看起来很乱,有一些奇怪的符号,所以我把它完全改成了export PATH=/opt/local/bin:/opt/local/sbin:$PATH
我在这方面绝对是初学者,但我通过阅读 SE 上不同问题的解决方案设法获得了这些步骤,所以希望它可以帮助其他人。