Перестали работать все команды терминала после "...>> ~/.bashrc"

Автор Monol1th, 16 февраля 2015, 21:39:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vic5710

обычно так:
export PATH=$PATH:my_path
у вас следующий export отменяет предыдущий

smallNix

По поводу export - согласен :) Копипастил, торопился. А если PATH нет в файле - значит можно туда засунуть... Но я подозреваю, что она там есть... Даже две... Или больше - он же в конец её дописывал. )))
Кто-то же должен что-то делать...

Monol1th

#17
Спасибо за ответы, но я так и не понял, почему мне приходится вводить export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
при каждом запуске терминала. Ось пришлось опять переустанавливать. Теперь глючит обычный терминал, а не терминал суперпользователя. Ибо в нём все манипуляции проводил.
Ещё и не могу разобраться никак с переключением версий. Вроде следовал гайду. Пытался вторым способом, через PyEnv. Не вышло. На 3-ю ну никак не хочет переключаться, а вот между 2.7.6 и 2.7.3 переключается без проблем


smallNix

 Monol1th, ты читал, что я тебе написал? Всё просто: export - экспортирует переменную для ТЕКУЩЕГО терминала, а когда терминал запускаешь - настройки берутся из ~/.bashrc для текущего пользователя. Что бы изменить это поведение надо переменную PATH обратно правильно записать в этот файл. У суперпользователя и обычного пользователя - это разные файлы.
echo 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> ~/.bashrc тебе поможет (потребуется перезапуск терминала).
Кто-то же должен что-то делать...

yura_n

#19
Цитата: smallNix от 22 февраля 2015, 01:00:12Всё просто: export - экспортирует переменную для ТЕКУЩЕГО терминала
Не так, export сообщает шеллу, что эту переменную нужно передать во все дочерние шеллы. То есть, если, например, запустить скрипт из текущего терминала, а перед этим export не выполнить, то запущенный скрипт значение переменной не получит, так как для него будет запущена отдельная, дочерняя копия интерпретатора и переменных окружения.

smallNix

#20
yura_n, не совсем уловил в чём я ошибся. Логично, что текущий терминал будет передавать свои переменные дочерним, они же через fork запускаются. Поэтому я считаю, что всё правильно сказал... Но, в любом случае, не хочу тут устраивать войну определений - по-моему, суть наших сообщений одна и та же.

Сообщение объединено: 22 февраля 2015, 19:58:51

А теперь перечитал и сообразил ))) Никогда не проверял разницу :)
Кто-то же должен что-то делать...