Слишком много файлов инициализации bash?

Я только что установил GMT4 (Generic Mapping Tools) с MacPorts и столкнулся с некоторыми серьезными проблемами с терминалом. , При использовании команды ls в терминале я получаю следующее:

-bash: ls: command not found

Чтобы исправить это, я пробовал много вещей, которые я читал в разных местах в Интернете. Я изменил следующие файлы, включив в них /usr и /bin:

~/.bashrc
~/.bash_profile
~/.profile

Это вернуло мне команду sudo, которую я ранее потерял. Однако я по-прежнему не могу использовать ls в новом окне терминала без ручного экспорта пути («новый сеанс»). Это вызывает проблемы, когда я запускаю сценарии оболочки, использующие системные функции. Поэтому я начинаю задаваться вопросом, что именно делают эти три файла, и, может быть, три файла, выполняющие одно и то же, заставляют их мешать друг другу. Если кто-нибудь может сказать мне, где мне нужно добавить эти ПУТИ, это было бы здорово; Я не знаю, может быть, я могу удалить один из этих файлов или что-то ДРУГОЕ конфликтует. Прямо сейчас я просто запускаю «export PATH=$PATH:/usr» в каждом новом окне терминала, и это работает для этого сеанса.

Я использую Mac OS X 10.6 на MacBook Pro начала 2011 года с 4 ГБ оперативной памяти.

Предыстория для тех, кому интересно: Моя конечная цель — использовать Relax для моделирования вязкоупругой релаксации в систему срединно-океанических хребтов, чтобы установить какой-то определяющий закон или степенную зависимость между величиной подвижки и местом наибольшего растягивающего напряжения в литосфере из-за нормального разлома.


person mar2194    schedule 10.01.2013    source источник
comment
Я бы порекомендовал переместить эти три файла в другое место и посмотреть, исправит ли это проблему. Если это так, вы можете попытаться восстановить их по частям. Их полное удаление не восстанавливает конфигурацию системы; полностью чистый лист можно было бы получить, скопировав эти файлы из /etc/skel (или из того, что OSX использует вместо этого, чтобы запутать нас).   -  person tripleee    schedule 10.01.2013
comment
Если вам нужна реальная помощь, очень важно показать нам, как вы манипулируете PATH в каждом из этих файлов. Что касается устранения неполадок, что вы увидите, если запустите /bin/bash --login -i -x в окне терминала?   -  person tripleee    schedule 10.01.2013


Ответы (1)


руководство по Bash на самом деле довольно подробно объясняет эти файлы. . Однако в инструкции не описано, как эти механизмы обычно используются на практике. Далее следует краткая, сокращенная версия того, что является общепринятой передовой практикой.

.profile читается при входе как sh, так и bash.

.bashrc читается оболочками Bash без входа в систему. По соглашению, .bash_profile источники .bashrc по очереди.

.bash_profile читается при входе в систему Bash. Если этот файл существует, .profile не читается. По соглашению, .bash_profile должен быть источником .profile, если он существует.

person tripleee    schedule 10.01.2013