找不到大多数命令的终端返回Mac OSX


16

我真的是Mac OSX和UNIX系统的新手。我想在Mac Mini上运行一些Windows游戏,所以我开始安装Wine和MacPorts。

这样做后,我输入了内容,sudo port install wine终端返回了一个未找到的错误。我尝试了其他类似的基本命令sayclear并且所有命令均返回未找到的错误。我已经在Google上进行了搜索,到目前为止,我所了解的只是PATH可能设置不正确。因此,我运行了以下命令:echo $PATH它返回了以下内容:

/ opt /本地/ bin:/ opt /本地/ sbin:/ opt /本地/ bin:/ opt /本地/ sbin:/ opt /本地/ bin

谁能告诉我如何正确设置此路径?我是Mac的完全新手,不知道.bash_profile或任何这些文件在哪里。如果有帮助,我还安装了Xcode和Xcode的命令行工具。我在跑美洲狮。


3
不幸的是,我认为您需要有关Unix的教程,尽管我们可以回答这个问题,但我们可能无法提供足够的背景知识来帮助您理解它。至于葡萄酒-最简单的方法是尝试Crossover(费用)或Wineskin(免费),不需要终端使用
user151019 2013年

Answers:


12

$ PATH应该包含以下文件夹:/usr/bin:/usr/sbin:/bin:/sbin

尝试编辑~/.bash_profile,,~/.profile~/.bash_login(例如使用/usr/bin/open ~/.bash_profile -a TextEdit)并注释掉所有修改路径的行。

如果这样的作品,你可以添加一行export PATH=/opt/local/bin:/opt/local/sbin:$PATH~/.bash_profile


我尝试导出PATH = / usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin,它可以工作,但是一旦我关闭并重新打开终端,它又回到相同的错误。我是一个完全菜鸟,也不知道〜/ .bash_profile或任何这些文件在哪里。我假设它们是隐藏的?
杰克·科普兰

~/是主文件夹(/Users/username/)。以句点开头的文件被隐藏,但是您可以使用例如显示它们ls -la
Lri

我的.bash_profile已包含所有这些内容,但是当我从终端发出它们时,例如ng或mssql的命令仍然存在相同的问题
dbnex14

3

我也发生了类似的问题,所以我要做的是:

1)PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"在终端中输入export 以使其临时工作

2)通过输入来编辑bash_profile /usr/bin/open ~/.bash_profile -a TextEdit

3)当我打开bash_profile文件时,我意识到最后一行的导出看起来很杂乱,带有一些奇怪的符号,因此我将其完全更改为 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

我绝对是一个初学者,但我设法通过阅读SE上不同问题的解决方案来完成这些步骤,因此希望它可以对其他人有所帮助。


2

听起来您好像重写了路径,而不是仅仅添加了路径。

确保在设置PATH时也包括"${PATH}"要包括的现有路径。

默认情况下,$ PATH是在几个文件中设置的。从技术上讲,您应该在主目录的.bash_profile文件中添加到$ PATH中。

一个建议,在将特定文件夹添加到PATH之前是否要检查该文件夹是否存在。

例如,我有:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

(该-d directory命令检查目录是否存在)


1

对我来说,当我尝试使用不正确的导出命令将新目录添加到PATH时,遇到了这个确切的问题~/.bash_profile。下面的两个示例。

export PATH=/some/new/path:PATH (incorrect, note missing $)

export PATH=/some/new/path:$PATH (correct)

0

除了它可以解决的问题外,我还想指出一件事进行测试。

如果您当前的窗口仅包含一个错误的PATH变量,并且您的系统还没有损坏,那么您可以轻松地修复路径:

echo $PATH
/usr/libexec/path_helper

比较以上两个命令的输出。如果要返回“安全”路径,只需将所path_helper提供的行复制并粘贴到该终端中即可。在未经修改的Mac 10.11系统上,您应该从帮助程序工具获得以下输出:

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

如果您的路径需要自定义,那么在此问题上也要寻求出色的答案。


1
或者,您可能会发出问题PATH=$(/usr/bin/getconf PATH)以在当前shell中获得可用的PATH。/usr/local在未修改的系统上不存在。
fd0

出色的@fdo-我不知道getconf可能会混乱什么,因此可能与硬编码一样好。它也比我的“蛮力”解决方案短。
bmike

path_helper根据当前PATH,/etc/paths文件以及中的任何文件构造PATH /etc/paths.d。也可能会受到中任何PATH设置的影响/etc/launchd.confgetconf打印在kernel-中硬编码的系统PATH sysctl user.cs_path
fd0

0

您终端的./bash_profile可能已被覆盖。

export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/bin在终端中使用可以临时重写当前的PATH设置。这应该给你访问sudonano您会再使用nano .bash_profile。对我来说,删除文件中的所有内容均有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.