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

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

env: bash: No such file or directoryenv: bash: No such file or directoryenv: bash: No such file or directoryenv: bash: No such file or directoryenv: 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

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

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

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

PATH=/home/user/bin

вместо

PATH="$PATH":/home/user/bin

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

$ bash --login -x

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

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

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

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

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

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

После того, как я не смог запустить повторно. ~/.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. У меня это сработало.

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

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

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

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

su -m

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

vim /root/.bashrc

чтобы отредактировать ПУТЬ.

Удачи!

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

Затем внесите коррективы в ПУТЬ и затем сохраните.

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

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

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

Если я введу 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

\r означает конец строки DOS, поэтому я открыл файл ~/.bashrc и измените концы строк в Krusader на стиль unix. И он уже работает!!! :-)

DOS-EOL создают серьезные проблемы и в сценариях bash.

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

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

Да, вставьте свой файл .bash_profile

Что произойдет, если вы используете полный путь следующим образом: /bin/ls ?
И какие изменения вы вносили?

/bin/ls перечисляет файлы, но затем я вижу эти 2 строки под ним: -bash: sed: команда не найдена -bash: git: команда не найдена

В случае, если ваша проблема была с /etc/environment, используйте следующую команду (в centos 6): ssh -t root@<server-ip> "/bin/bash -c '/bin/mv /etc/environment /tmp/'"

Для виртуальной машины после перезагрузки она переходит в режим “Вход в аварийный режим”. Выйдите из командной оболочки, чтобы продолжить.", введите “xfs_repair -v -L /dev /dm-0”, а затем “перезагрузка”, похоже, устраняет проблему.