"-Bash: ls: команда не знайдена"


30

Я встановив останнє оновлення до OS X Lion (10.7). Після цього я мій термінал не розпізнає звичайні команди. Я набрав lsі отримав:

-bash: ls: command not found

Я подумав, що спробую додати usr / bin до мого шляху, але не можу знайти .bash_profile, щоб відредагувати його, оскільки введення edit .bash_profileне працюватиме. Я не можу налаштувати Finder на показ усіх файлів, оскільки мій термінал не розпізнає команди, необхідні для цього.

що мені потрібно зробити?


2
Давайте пройдемо шлях і подивимося, що витрушує. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binвставте темну частину (або введіть її ДУЖЕ Дбайливо) - оскільки відсутні дві команди - щось зірвало ваш шлях. Перш ніж робити щось велике, відкидання резервної копії може бути доцільним.
bmike

1
@bmike дякую! додав це до .bash_profile, і все це працює зараз. довелося відкрити .bash_profile так: /usr/bin/vi ~/.bash_profileПоставте це як відповідь, і я можу прийняти!
LuxuryMode

Відповіді:


42

Оскільки в двох командах не вистачає чогось, що "протухло" ваш шлях.

Перш ніж робити щось велике, відкидання резервної копії може бути доцільним.

Шлях за замовчуванням у Mac OS X 10.7 (Lion) приблизно такий:

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

Якщо ви скинете шлях, ввівши вище в вікно оболонки, а потім ввівши export PATHйого, слід виправити це одне вікно.

Таким чином, ви можете почати там і побачити, що ще може бути непоганим, і виправити це у файлах запуску точок або в іншому місці, де це буде визначено.

Цей поломка майже завжди є те, що вам потрібно виправити у точкових файлах. Для bash, відредагуйте та виправте .bash_profileта / або .bashrcскасувавши недавню зміну, просто встановивши потрібний $ PATH знову. Звичайна помилка - це призначення нового шляху, а не посилання на попереднє значення змінної з правої сторони =


2
Для мене це дає тимчасове виправлення.
Етьєн Лоу-Декарі

2
Дякую! Я трохи задирався, коли lsне працював після оновлення .bash_profile😂
Адріан

Так, @Adrian помилка синтаксису або порожній PATH може викликати інтенсивну тривогу 😅🤭🤬🔥
bmike

Це дало тимчасовий виправлення. Мені довелося переробити всі кроки, коли я перезавантажував CMD
Pawan

Це все ще працює для Mac OS 10.14.3
Стівен Ромеро

11

Це має вирішити проблему повністю та назавжди.

по-перше, експортуйте шляхи середовища за допомогою команди нижче в терміналі.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

тепер у вас є потрібні команди. (наприклад, спробуйте ls. Ви побачите, що команда працює). Але це лише для поточної сесії. Якщо ви закриєте термінал і відкриєте новий, у вас з’явиться попередній випуск. Щоб зробити цю зміну постійною, скористайтеся командою нижче,

перейти до домашнього каталогу

cd ~

відкрити .bash_profile файл у nano / vim (я тут використовую nano)

nano .bash_profile

Це відкриє наноредактор. У новий рядок вставте наступне;

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

натисніть "управління" + "o", щоб зберегти (WriteOut), і "control" + "x", щоб вийти з нано.

Готово ! Тепер спробуйте команди.


3

Мені це здається, ніби /etc/profileне було запущено при запуску оболонки. Це глобальний файл запуску, який відповідає за ініціалізацію PATH. Перевірте, чи /etc/profileіснує чи читається та виконується програма, виконавши таку команду:

. /etc/profile

Якщо його немає, вам потрібно буде відновити його з резервної копії чи іншої машини, де встановлений Lion, або встановити Lion заново. Якщо він існує, але він не виконується, спробуйте скористатися програмою Disk Utility для відновлення дозволів на диск.

Якщо він існує і виконується (і він містить якийсь код), він може не запускатись, коли це потрібно, або ваш сценарій запуску може якось його перекрити. В якості вирішення спробуйте поставити . /etc/profileна початок свого, ~/.bash_profileщоб переконатися, що він працює. Якщо ви все-таки зіткнулися з проблемою, додайте її echo $PATHпісля запуску, щоб побачити, чи правильно ініціалізовано PATH. Якби це було, щось у вашому сценарії це змінює.

Ось вміст за замовчуванням /etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helperбудує за замовчуванням PATH. Ви можете спробувати бігти

unset PATH; /usr/libexec/path_helper -s

щоб побачити, що воно виробляє.

У будь-якому випадку, якщо проблема не є у ваших сценаріях запуску, зв’яжіться зі службою підтримки Apple http://www.apple.com/support/contact/ або повідомте про помилку на веб- сайті https://bugreport.apple.com / щоб повідомити Apple, що існує проблема.


unset PATH; /usr/libexec/path_helper -sпоказує мені PATH, який не міститься в моєму /etc/profile. Будь-які пропозиції?
Етьєн Низький Декарі

Запуск . /etc/profileтимчасово усуває проблему. Я вставив у верхню частину свого ~/.bash_profile, але, здається, це теж не запущено.
Етьєн Лоу-Декарі

1
Перегляньте сторінку bash man на повний перелік файлів запуску та порядок їх пошуку. Якщо у вас є файл для входу, він, наприклад, має перевагу над профілем. Перевірте наявність інших файлів запуску.
Кріс Пейдж

1

Перевірити, чи справді це проблема у вашому шляху, який результат /bin/ls?

Якщо це працює, ніж слід відновити шлях /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin, ви можете використовувати, наприклад VI, шлях якого (на моєму комп'ютері) /usr/bin/vi.


0

Я думав поділитися помилкою, яка призвела до цієї помилки - принаймні в моєму випадку,

Коли я додав новий PATHв ~/.bash_profile, я забув додати :$PATHв кінці шляху, який я щойно додав.

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

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

Як тільки я зайшов, я виправив свою помилку.

(Негативні дані мають значення!)


-1

Коли це сталося, я намагався встановити свій шлях Maven до змінних оточення. Тому я просто перемістив свій .profile та .bash_profile файл у кошик і спробував ще раз, і він працював.


-1

Скидання терміналу спрацює. Він скине основні конфігурації.

Скиньте свій термінал. З верхньої навігації перейдіть до Shell >> Скидання.

введіть тут опис зображення


1
Як скидання терміналу вирішує проблему bash?
nohillside

-2

Схоже, ваша змінна PATH пошкоджена. Перевірте, чи випадково ви змінюєте змінну PATH у вашому сценарії або просто перевірте PATH, сказавши echo $ PATH, і ви можете переконатися, що нічого не пошкоджено.


-3

Ви можете експортувати шлях таким чином:

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


3
Ласкаво просимо в "Запитайте різних"! На це питання вже є прийнята відповідь, і ваша відповідь істотно не відрізняється від прийнятої. Дивіться наступні поширені запитання про те, як надати гарну відповідь: apple.stackexchange.com/help/how-to-answer
fsb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.