Я всегда сталкиваюсь с проблемами с моим терминалом, потому что команда, которую я пытаюсь использовать, "не найдена". Затем, когда я пытаюсь установить эту команду, у меня есть другая команда, которая также "не найдена", которую мне нужно установить. Кроме того, всякий раз, когда я получаю что-то вроде sudo, оно работает для этой сессии, но в следующий раз, когда я открываю терминал, мне нужно заново устанавливать команды. Если я сделаю

echo $PATH

Возвращается

/opt/local/bin:/opt/local/sbin:’/usr/local/bin:??

Я получил временное решение, которое работает прилично, но я должен повторять каждый раз, когда открываю терминал, чтобы кто-то мог объяснить мне, как исправить это навсегда, это было бы здорово. Я знаю, что echo $ PATH не должен возвращать это.

1 ответ1

1

Вам, вероятно, не нужно удалять или переустанавливать какие-либо команды, вам, вероятно, нужно просто исправить все, что вызывает повреждение переменной PATH .

Чтобы установить разумные значения по умолчанию для текущего сеанса оболочки, введите:

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

Обратите внимание, что это исправляет это только для текущего сеанса оболочки, и следующее открытое окно терминала вернется в нерабочее состояние.

Чтобы исправить это в следующий раз, вам нужно будет найти, где он настроен неправильно, и исправить это там.

В современных macOS системные пути к файлам устанавливаются в /etc/paths и /etc/paths.d/* (это текстовые конфигурационные файлы). Поэтому сначала проверьте их и убедитесь, что они выглядят в здравом уме.

Кроме того, в /etc/ есть общесистемные сценарии запуска оболочки, например, /etc/profile и /etc/bashrc . Довольно распространено устанавливать или добавлять к своему PATH в сценариях запуска оболочки. Если вы или какой-либо установщик, менеджер пакетов или установочный скрипт отредактировали их, вам может понадобиться посмотреть, что они сделали, и исправить их (то есть просмотреть эти файлы скриптов в текстовом редакторе и отредактировать их, чтобы исправить их, если вы обнаружите ошибки). , Какие из них нужно проверить, зависит от того, какие оболочки вы используете, как вы вызываете и используете их (например, в качестве входа в систему, не входящие в систему интерактивные или неинтерактивные оболочки) и какие файлы сценариев запуска оболочки существуют (некоторые требуют приоритет перед другими, поэтому наличие некоторых файлов может привести к тому, что другие файлы не будут запущены). Вам нужно будет проверить справочные страницы для оболочек, которые вы используете, чтобы узнать, какие сценарии запуска оболочки они запускают и в каких ситуациях.

Затем вам нужно проверить свои собственные сценарии запуска оболочки в вашем собственном домашнем каталоге. Опять же, то, какие сценарии запускаются, зависит от того, какую оболочку вы используете, как вы ее вызываете и какие файлы сценариев существуют, поэтому вам нужно проверить страницы руководства. Вам, вероятно, придется посмотреть ~/.profile и ~/.bashrc .

И последнее замечание. Предполагая, что вы копируете / вставляете этот выходной текст, похоже, что он содержит фигурные кавычки, что предполагает, что один из ваших сценариев запуска оболочки случайно содержит фигурные кавычки. Будьте осторожны при редактировании сценариев оболочки и других машиночитаемых текстовых форматов файлов (исходный код, HTML, CSS, JavaScript, JSON, XML, .plists и т.д.) В текстовых редакторах / текстовых редакторах с графическим интерфейсом. Обязательно отключите все функции подстановки текста, такие как "умные кавычки" и "умные черточки", иначе вы получите случайные кудрявые кавычки там, где вы хотели прямую кавычку, или черточку "Эм", где вы хотели два дефиса. Большинство машиночитаемых форматов считают только прямые кавычки синтаксически значимыми.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .