Як скинути змінну $ PATH на Mac OS X?


17

Я переплутав свою змінну шляху, і тепер деякі програми, які я запускаю, піднімають помилки, кажучи, що команда не знайдена (помилка 127) для таких команд, як дата та сон . Ці команди відмінно працюють при виконанні безпосередньо в оболонці.

Я здогадуюсь, що це має відношення до неправильної змінної $ PATH, і мені потрібно знати, як її скинути. Я видалив файли ~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrc та ~ / .bashrc та ~ / .profile .

Які ще файли можуть містити мій $ PATH ? Чи є якийсь простіший спосіб скинути Шлях, ніж копатись у безлічі файлів, які могли б утримати мій шлях?

Зауважте, ця проблема шляху лише у мого користувача. Я зробив тестового користувача в своїй системі, і шлях був нормальним, повертався до нормального стану.

ОНОВЛЕННЯ: Дякую Я не знаю, який із видалених файлів це робив, але все знову працює. Ви, хлопці, зробили те, що не могли "Експерти". І так, Кріс, ти мав рацію. Налаштування PATH, які я зробив, були в bash_login. Але якимось чином не вдалося видалити ці налаштування. Я думаю, що це могло бути так, що я використовував цю префанну під назвою "RCEe Environment", і я ввів шлях з цитатами і: PATH у ньому. Я не знаю, чи приймає він лапки, і він не замінює: $ PATH, так що, ймовірно, є коренем помилки. Я забув, що навіть у мене був той префпан!


1
/ etc / profile - це найімовірніше місце для встановлення початкових значень для PATH, але щось там це вплине на всіх користувачів. Також є ~ / .bash_login, якого ви не перераховували (хоча ви, можливо, вже його усунули).
Кріс Джонсен

Відповіді:


19

Якщо у вас є файл ~ / .MacOSX / environment.plist, перевірте його, чи він містить значення PATH за замовчуванням.

Якщо він у форматі XML (списки можуть бути у багатьох форматах), ви можете редагувати будь-який текстовий редактор. Перевірте це, plutil -lint ~/.MacOSX/environment.plistякщо ви редагуєте його вручну.

Або ви можете використовувати команди на зразок за замовчуванням або PlistBuddy, щоб вносити керовані зміни у файли плістів XML або бінарного формату.


Ви завжди можете встановити свій власний PATH у будь-якому з файлів ініціалізації оболонки.

Помістіть щось подібне до ваших файлів запуску вашої оболонки ( .bashrcабо .bash_profile/ .bash_login/ .profile):

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

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

Це скасує те, що встановлено PATH за замовчуванням, коли оболонка запускається (перша PATH=не використовується $PATH, тому вона завжди починатиметься лише з того, що ви їй надаєте).

Ніколи НЕ буде використовуватися тільки один з файлів «Увійти» (перший, який існує і читаються ~/.bash_profile, ~/.bash_loginі ~/.profileбуде використовуватися). .profileпризначена для зворотної сумісності з іншими оболонками - якщо ви використовуєте, не забудьте зберегти синтаксис, характерний для bash . Якщо ви переходите з .bash_loginабо .bash_profile(вони функціонально еквівалентні, за винятком імен), тоді використовуйте рядок, як [[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]біля верху, щоб оболонки входу також отримали налаштування, зроблені у вашому .bashrc.

Якщо ви хочете, щоб усі екземпляри bash мали однаковий PATH, тоді використовуйте .bashrc. Якщо ви часто інтерактивно змінюєте PATH однієї оболонки з командного рядка і хочете використовувати цей модифікований PATH в підкашлях (випадки, які, мабуть, не дуже поширені), то замість цього слід помістити заяви в один із файлів "входу". . Виберіть лише один із файлів входу та використовуйте його.


8

1. Відкрийте свій термінал

2.Ви можете спочатку просто перевірити поточний $PATH, введіть

echo $ PATH

до терміналу

3. Якщо $PATHтой термінал повернув назад - це потрібний вам шлях, то ви добрі; якщо ні, введіть

експортувати PATH = / usr / bin: / bin: / usr / sbin: / sbin

, потім введіть

торкніться ~ / .bash_profile

, а потім введіть

відкрити ~ / .bash_profile

, ви знайдете відкритий EditText, тепер введіть потрібний шлях у цьому EditText; Наприклад, введіть

PATH = / usr / bin: / bin: / usr / sbin: / sbin

(що за замовчуванням $PATHдля mac, враховуючи, що ви хочете скинути, $PATHтак що, ймовірно, слід ввести це), збережіть його та закрийте EditText, а потім закрийте термінал.

4.Зараз ви вже змінили свій режим $PATHабо скинули його за замовчуванням $PATH!


2
Я відчуваю, що є багато вище, що не впливає. Чому, на вашу думку touch, потрібно? Крім того, оскільки ви все-таки закриваєте Термінал, навіщо запускати exportкомандний рядок, а не лише додавати його до ~/.bash_profile(що exportтеж потрібно ) і робити з ним? (Крім того, запустіть, source ~/.bash_profileщоб застосувати зміни до поточного вікна.)
Ар'ян

Щоправда, деякі з них є зайвими. Збереження будь-якого значення PATH у .bash_profile має робити.
ThinkCode

1

rc/profileПоказані зміни Кріса Джонсона також добре працюють /etc/profile.

Я щойно додав:

export PATH="/usr/local/mariadb/bin:$PATH"

до мого /etc/profileфайлу в Mac OS X 10.9 Mavericks для завершення встановлення MariaDB (що працює як чудова заміна для MySQL).


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.