Каждая команда завершается с ошибкой & ldquo; команда не найдена & rdquo; после изменения .bash_profile?

Я обновлял свой .bash_profile, и, к сожалению, я сделал несколько обновлений, и теперь я получаю:

env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found
-bash: dirname: command not found
-bash: /preexec.sh.lib: No such file or directory
-bash: preexec_install: command not found
-bash: sed: command not found
-bash: git: command not found

Мой bash_profile фактически извлекает другие файлы .sh (источники их), поэтому я не совсем уверен, какая модификация могла вызвать это.

Теперь, даже если я попытаюсь получить список файлов, я получу:

>ls
-bash: ls: command not found
-bash: sed: command not found
-bash: git: command not found

Любые советы о том, как отследить источник ошибки и как использовать терминал для простых вещей, таких как распечатка файлов и т. д.?

47
задан 13 September 2012 в 18:13

9 ответов

Мне кажется, что в тот или иной момент вы перезаписываете переменную окружения по умолчанию PATH. Тип ошибок, которые вы имеете, указывает, что PATH не содержит /bin, где находятся вышеуказанные команды (включая bash).

Например, если вы делаете

PATH=/home/user/bin

вместо

PATH="$PATH":/home/user/bin
0
ответ дан 13 September 2012 в 18:13

Я думаю, что, возможно, я нашел ответ на проблему, если бы не вы, а затем другие, у которых похожая проблема. Мой ответ на это, что у меня нет .bash_profile.

Так что я искал по всей сети, и я нашел решение. Что в основном открыть терминал, введите touch ~/.bash_profile и нажмите Enter . Это исправило мои проблемы. Надеюсь, он сделает то же самое для вас

0
ответ дан 13 September 2012 в 18:13

У меня такая же проблема, как и у вас. Я не могу использовать многие популярные команды (ls, vi/vim, ..) и не могу редактировать /root/.bashrc, когда я вхожу с su в root.

Наконец. Я нашел решение этой проблемы. Просто войдите в систему root с помощью команды:

su -m

После этого вы можете использовать

vim /root/.bashrc

для редактирования PATH.

Гудлак!

0
ответ дан 13 September 2012 в 18:13

После того, как я не мог перезапустить. ~ / .bash_profile или любые обычные команды, такие как whoami, grep и т. д. Я нашел способ просто реэкспортировать требуемые пути:

export PATH=/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/cpanel/composer/bin:/usr/local/easy/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin

Это должно работать в большинстве систем, хотя некоторые из этих путей отсутствует во всех пакетах Linux. Это сработало для меня.

0
ответ дан 13 September 2012 в 18:13

Один из способов начать отладку сценария bash - запустить подоболочку с параметром -x:

$ bash --login -x

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

Опция --login указана потому, что .bash_profile читается оболочкой входа в систему. Дополнительную информацию об отладке сценариев bash можно найти здесь: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html .

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

0
ответ дан 13 September 2012 в 18:13

Возможно, я нашел проблему. Это сработало для меня, и это может сработать для вас ...

Я по умолчанию с моим редактором в Windows (LF / CR) сохраняет. Поскольку я использую обе системы, это казалось логичным. Когда мне нужно было возиться с моими .bash_profile, я понял, комментируя и пробуя вещи, которые ничего не работали. Я изменил свои сохранения в формат OS X (только CR) и вуаля! Больше нет «команды, не найденной» в терминале!

Это может быть просто!

0
ответ дан 13 September 2012 в 18:13

У меня была такая же проблема. Возможно, вы пропустили $ при экспорте PATH. Вы должны открыть .bash_profile в TextEdit. Если вы не можете найти файл в каталоге, нажмите Ctrl + Shift +>, чтобы отобразить скрытые файлы.

Затем внесите исправление в PATH и затем сохраните.

В каталоге на терминале введите: source .bash_profile.

Это должно решить проблему.

0
ответ дан 13 September 2012 в 18:13

У меня была точно такая же проблема:

Если я введу lxterminal:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash/

, если я введу точно такую ​​же команду в tty2, я получу:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash\r
[ 116] \ r означает конец строки в DOS, поэтому я открыл файл ~/.bashrc и изменил концы строк в Krusader на стиль unix. И это уже работает !!! : -)

DOS EOL создают огромные проблемы также в скриптах bash.

0
ответ дан 13 September 2012 в 18:13

У меня возникла та же проблема только сейчас, после того как я сменил .bash_profile. И я хочу изменить его обратно, но теперь я не могу, потому что я потерял все команды, особенно команду nano и команду vim, поэтому я не могу открыть .bash_profile с командой. А .bash_profile - это скрытый файл, который я не могу открыть с помощью Finder.

Так что мне нужно найти способ открыть файл .bash_profile. После того, как я попробовал много способов, я обнаружил, что могу использовать Atom , потому что Atom может читать все файлы в папке проекта, включая скрытые файлы. Так что просто откройте Atom и выберите File -> Open, выберите папку <yourusername>, а затем все скрытые файлы, отображаемые в древовидном представлении Atom, включите .bash_profile !! После того, как я удалил последнюю модификацию и снова открыл Терминал, все команды вернулись! :)

0
ответ дан 13 September 2012 в 18:13

Другие вопросы по тегам:

Похожие вопросы: