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

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

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

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

Monol1th

Добрый вечер.
По мере изучения python озникла необходимость между переключения разных версий данной программы.
Пользуясь этим руководством я без проблем установил нужные версии python. Но дойдя до пункта "$ echo 'export PATH=~/python/2.7.6/bin/' >> ~/.bashrc" обнаружил, что вообще все команды(как минимум самые используемые) перестали работать в терминале. Нагуглил только это. Не помогло. Можно ли его подредактировать и вернуть_как_было?

yura_n

#1
Цитата: Monol1th от 16 февраля 2015, 21:39:10Можно ли его подредактировать и вернуть_как_было?
А как сейчас? Выполните от пользователя:

cat ~/.bashrc

И выложите сюда.

Сообщение объединено: 16 февраля 2015, 21:57:57

P.S. Кстати, используйте virtualenv, я вам уже в другой теме писал. Переключать системный Python совершенно незачем.

Monol1th

#2
Цитата: yura_n от 16 февраля 2015, 21:51:03А как сейчас?
http://pastebin.com/F1fzTuFm
Цитата: yura_n от 16 февраля 2015, 21:51:03выложите сюда.
bash: cat: команда не найдена


Сообщение объединено: 16 февраля 2015, 22:08:32

Цитата: yura_n от 16 февраля 2015, 21:51:03P.S. Кстати, используйте virtualenv
В руководстве как раз virtualenv и используется.  ???

yura_n

#3
Цитата: Monol1th от 16 февраля 2015, 22:04:47bash: cat: команда не найдена
Зачем вы PATH изменяете? Изменив PATH, вы изменили и пути для поиска утилит.
Что до .bashrc, то с ним похоже все в порядке.

Сообщение объединено: 16 февраля 2015, 22:23:38

P.S. Смысл понятен. Сразу не сообразил. Автор статьи что-то не то советует. Не трогайте PATH, от этого все ваши проблемы.

Monol1th

Цитата: yura_n от 16 февраля 2015, 22:17:45Зачем вы PATH изменяете? Изменив PATH, вы изменили и пути для поиска утилит.
Следовал инструкции.
Цитата: yura_n от 16 февраля 2015, 22:17:45Не трогайте PATH, от этого все ваши проблемы.
Ничего уже не исправить?

yura_n

Цитата: Monol1th от 16 февраля 2015, 22:25:48Ничего уже не исправить?
Он по умолчанию должен быть установлен. В ~/.bashrc строки с PATH у вас сейчас нет. Достаточно просто разлогиниться и залогиниться вновь.

Monol1th

Цитата: yura_n от 16 февраля 2015, 22:27:13Достаточно просто разлогиниться и залогиниться вновь.
Вы имеете ввиду "Завершить сеанс..."? Пробовал. Не помогло.
С файлом .profile всё впорядке?

yura_n

Цитата: Monol1th от 16 февраля 2015, 22:33:08Вы имеете ввиду "Завершить сеанс..."? Пробовал. Не помогло.
Перезагрузитесь. ;D Потом:

echo $PATH

Выложите сюда, если не заработает.

Monol1th


yura_n

#9
Выполните это:

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Так работает?
P.S. У суперпользователя свой PATH, у пользователя свой, поэтому изменять надо пользователем.

Monol1th

#10
Цитата: yura_n от 16 февраля 2015, 22:51:07Так работает?
Ага, работает. Благодарю.
Но после ввода кода: $ virtualenv -p ~/python/2.7.6/bin/python env && . ./env/bin/activate всё опять сбрасывается и команды перестают работать.
Выручает: export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games.
Версии, всё таки переключает, хотя и криво. При вводе версии 2.7.6 основной становится 2.7.3, при вводе же 3.3.2 основной становится 2.7.6. Странно.

Сообщение объединено: 16 Февраль 2015, 23:16:55

А нет, при каждом новом запуске терминала сбрасывается. Приходится каждый раз вводить теперь export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Сообщение объединено: 16 февраля 2015, 23:22:11

Цитата: Monol1th от 16 февраля 2015, 23:12:42А нет, при каждом новом запуске терминала сбрасывается. Приходится каждый раз вводить теперь
Такая проблема только с терминалом суперпользователя, с обычным терминалом, вроде бы, всё в порядке.

yura_n

Для рута делайте так:

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

У рута и пользователя пути к программам разные. Или добавьте в /root/.bashrc строку:

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

Но вообще я не очень понимаю, как вы такого результата добились. ;D

alsoijw

Легче всего с живого носителя удалить лишнюю строку.
Monol1th, перед тем, как записывать команду в  ./.bashrc выполни её в терминале, и проверь делает ли она то что надо. В твоём случае(выделил цветом)
Цитата: Monol1th от 16 февраля 2015, 21:39:10echo 'export PATH=~/python/2.7.6/bin/' >> ~/.bashrc
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

smallNix

Вы сделали так:
$ echo 'export PATH=~/python/2.7.6/bin/' >> ~/.bashrc
Перенаправили вывод в файл .bashrc
Команда export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
задаёт переменные окружения для актиного терминала. Перепиши их обратно в файл:
echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> ~/.bashrc
Кто-то же должен что-то делать...

yura_n

Цитата: smallNix от 19 февраля 2015, 20:37:20Перепиши их обратно в файл:
echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> ~/.bashrc
export в общем-то в ~/.bashrc не надо. Другое дело, что он же выложил свой .bashrc. Нет там PATH. Значит переменная должна подтягиваться из системных настроек. Но не подтягивается. В этом есть какая-то тайна.  ;D