Термінал повертає не знайдено для більшості команд Mac OSX


16

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

Зробивши це, я набрав sudo port install wineі термінал повернув не знайдену помилку. Я спробував інші основні команди на кшталт, sayі clearвсі вони повертають не знайдену помилку. Я переглянув це, і все, що я зрозумів дотепер, - це те, що PATH може бути неправильно встановлений. Тому я запустив цю команду: echo $PATHі вона повернула це:

/ opt / local / bin: / opt / local / sbin: / opt / local / bin: / opt / local / sbin: / opt / local / bin

Хтось може сказати мені, як правильно встановити цей шлях? Я повний новачок в mac і не маю уявлення, де .bash_profile або будь-який з цих файлів. Якщо це допомагає, я також встановив Xcode та інструменти командного рядка для Xcode. Я бігаю гірським левом.


3
На жаль, я думаю, що вам потрібен підручник з Unix, оскільки, хоча ми можемо відповісти на питання, ми, мабуть, не можемо надати достатньо підстав, щоб допомогти вам зрозуміти це. Щодо вина - найпростіше - спробувати 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.


Я спробував експортувати PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin, і він працює, але як тільки я закрию і знову відкрию термінал, він знову повертається до тієї ж помилки. Я повний noob і не маю уявлення, де знаходиться ~ / .bash_profile або будь-який з цих файлів. Я припускаю, що вони заховані?
Джек Коупленд

~/- домашня папка ( /Users/username/). Файли, які починаються з періоду, приховані, але ви можете показати їх, наприклад ls -la.
Лрі

мій .bash_profile містить усе це вже, але у мене все одно є така ж проблема з такими командами, як ng або mssql, коли я
видаю

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Команда перевіряє, чи існує каталог)


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)щоб отримати придатний 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. Для мене видалення всього у файлі працювало.

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