更改 .bash_profile 后,每个命令都会失败并显示“未找到命令”?

更改 .bash_profile 后,每个命令都会失败并显示“未找到命令”?

我正在更新我的 .bash_profile,不幸的是,我做了一些更新,现在我得到了:

env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found
-bash: dirname: command not found
-bash: /preexec.sh.lib: No such file or directory
-bash: preexec_install: command not found
-bash: sed: command not found
-bash: git: command not found

我的 bash_profile 实际上引入了其他 .sh 文件(来源它们),所以我不确定哪个修改可能导致了这种情况。

现在,如果我尝试列出文件,我会得到:

>ls
-bash: ls: command not found
-bash: sed: command not found
-bash: git: command not found

关于如何追踪错误来源以及如何使用终端执行列出文件等基本操作,有什么提示吗?

答案1

在我看来,您在某些时候会覆盖默认PATH环境变量。您遇到的错误类型表明PATH不包含/bin上述命令(包括bash)所在的位置。

例如,如果你这样做

PATH=/home/user/bin

代替

PATH="$PATH":/home/user/bin

答案2

开始调试 bash 脚本的一种方法是使用 -x 选项启动子 shell:

$ bash --login -x

这将显示启动该 shell 时执行的每个命令及其参数。

指定 --login 选项是因为 .bash_profile 由登录 shell 读取。有关调试 bash 脚本的更多信息,请参见此处:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html

最终,我认为一月份的建议对您有用,但该链接值得一读,以解决未来的问题。

答案3

我可能已经找到问题所在了。它对我有用,对你来说可能也有用……

我使用编辑器默认使用 Windows (LF/CR) 保存。由于我使用两个系统,所以这似乎合乎逻辑。当我需要处理时.bash_profile,我意识到在注释掉并尝试了一些东西后,什么都不起作用。我将保存更改为 OS X 格式(仅 CR),然后就好了!终端中不再出现“未找到命令”!

可能就这么简单!

答案4

我想我可能已经找到了问题的答案,即使对你来说不是,对其他有类似问题的人来说也是如此。我的答案是,我没有.bash_profile

所以我在网上搜索,找到了解决方案。基本上就是打开终端,输入touch ~/.bash_profile并按Enter。这解决了我的问题。希望它对你也有同样的效果

相关内容