Возврат терминала не найден для большинства команд Mac OSX

16

Я действительно новичок в системах Mac OSX и UNIX. Я хотел запустить несколько игр для Windows на своем Mac Mini, поэтому я начал устанавливать Wine и MacPorts.

Сделав это, я набрал, sudo port install wineи терминал вернул ошибку, не найденную. Я пробовал другие базовые команды, такие как sayи clearвсе они возвращают не найденную ошибку. Я гуглил это, и все, что я до сих пор понял, это то, что PATH может быть установлен неправильно. Итак, я выполнил эту команду: echo $PATHи она вернула это:

/ Опт / местные / бен: / OPT / местные / SBIN: / OPT / местные / бен: / OPT / местные / SBIN: / OPT / местные / бен

Может кто-нибудь сказать мне, как правильно установить этот путь? Я новичок в Mac и понятия не имею, где находится .bash_profile или какой-либо из этих файлов. Если это поможет, я также установил Xcode и инструменты командной строки для Xcode. Я бегу Горный Лев.

Джек Коупленд
источник
3
К сожалению, я думаю, что вам нужно руководство по Unix, так как, хотя мы можем ответить на вопрос, мы, вероятно, не сможем предоставить достаточно информации, чтобы помочь вам понять его. Что касается Wine - проще всего попробовать Crossover (стоит) или Wineskin (бесплатно), которые не требуют использования терминала
user151019

Ответы:

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.

LRI
источник
Я попытался экспортировать PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin, и это работает, но как только я закрываю и снова открываю терминал, он снова возвращается к той же ошибке. Я полный нуб, и я понятия не имею, где находится ~ / .bash_profile или любой из этих файлов. Я предполагаю, что они скрыты?
Джек Коупленд,
~/это домашняя папка ( /Users/username/). Файлы, начинающиеся с точки, скрыты, но вы можете показать их, например ls -la.
Лри
Мой .bash_profile уже содержит все это, но у меня все еще остается та же проблема с такими командами, как ng или mssql, когда я выдаю их из терминала
dbnex14
3

Подобная проблема происходила со мной, поэтому я сделал следующее:

1) набрав экспорт PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"в терминал, чтобы он временно работал

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 установлен в паре файлов. Технически вы должны добавить к своему $ PATH в файле .bash_profile в вашем домашнем каталоге.

Одно предложение, если проверить, существует ли определенная папка, прежде чем добавить их в свой 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проверяет, существует ли каталог)

sdmeyers
источник
1

Для меня я попал в эту проблему, когда попытался добавить новый каталог в PATH, используя неверную команду экспорта в моем ~/.bash_profile. Оба примера ниже.

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

против

export PATH=/some/new/path:$PATH (correct)
rd2
источник
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;

Если ваш путь должен быть настроен, ищите отличные ответы и на этот вопрос.

bmike
источник
1
Или вы можете PATH=$(/usr/bin/getconf PATH)получить доступный PATH в текущей оболочке. /usr/localне существует в неизмененной системе.
fd0
Превосходно @fdo - я не знаю, что может испортить getconf, так что это может быть так же хорошо, как просто жесткое кодирование. Это также короче, чем мое исправление "грубой силы".
Bmike
path_helperсоздает PATH из текущего PATH, /etc/pathsфайла и любых файлов внутри /etc/paths.d. На него также могут влиять любые настройки PATH в /etc/launchd.conf. getconfпечатает системный PATH, жестко закодированный в ядре sysctl user.cs_path.
fd0
0

Возможно, ваш терминал ./bash_profile был перезаписан.

Используйте export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/binв терминале, чтобы временно перезаписать текущие настройки PATH. Это должно дать вам доступ sudoи nanoкоторый вы затем будете использовать nano .bash_profile. Для меня удаление всего в файле сработало.

Nugenrules
источник