Я пытаюсь создать постоянный псевдоним для своего терминала. Я помещаю псевдоним в свои файлы ~ / .profile, ~ / .bashrc и ~ / .bash_profile, которые ранее были пустыми. Когда я запускаю новый терминал, bash не распознает псевдоним, но если я использую какой-либо из них, он распознает. Почему они не запускаются, когда я открываю терминал? Я использую OSX.
~ / .profile, ~ / .bashrc и ~ / .bash_profile не запускаются при запуске нового терминала
Ответы (10)
При использовании iTerm
, чтобы заставить работать точечные файлы, здесь должны произойти две вещи.
Сначала вы должны добавить следующее в свой .bash_profile
[[ -s ~/.bashrc ]] && source ~/.bashrc
Во-вторых, вам нужно убедиться, что в iTerm
настройках ваш терминал настроен на запуск оболочки входа в систему.
Надеюсь это поможет!
Более новые версии MacOS используют zsh в качестве оболочки по умолчанию как для Терминала, так и для iTerm2. Запустите echo $SHELL
, чтобы убедиться, что это ваш случай.
Zsh ищет .zshrc
файл при запуске оболочки, поэтому, чтобы продолжать использовать zsh при поиске содержимого вашего профиля bash, вы можете запустить следующее:
echo "source ~/.bash_profile" >> ~/.zshrc
Откройте новое окно терминала, чтобы изменения вступили в силу.
.zshrc
и удалить оператор source
, который вы добавили в самой последней строке.
- person tripleee; 09.07.2021
При использовании терминала Mac по умолчанию у меня сработало добавление команды для запуска при запуске, чтобы получить мой .bash_profile.
Настройки> Профиль> Запуск> Добавить команду 'source ~ / .bash_profile'
снимок экрана с настройками терминала Mac
Может показаться немного взломанным, но это помогает.
Добавление source ~/.profile
к моему .bash_profile
сработало для меня.
Что касается High Sierra, и Terminal, и iTerm сначала хотят загрузить ~ / .profile. Поэтому я предлагаю вам поместить одну строку в свой .profile, чтобы ваш Mac работал как другие Unix:
источник ~ / .bash_profile
Отредактировав один этот файл, вам не придется искать в меню нескольких приложений, чтобы преодолеть странное поведение Apple в каждом из них.
.bash_profile
на source ~/.profile
, который предназначен для этого.)
- person tripleee; 09.07.2021
Почему не загружаются файлы инициализации вашей оболочки?
Как и в большинстве случаев, It Depends ™
Недавно я испытал то же самое явление и проделал следующее упражнение, чтобы разрешить его:
Пользуюсь iTerm. iTerm по умолчанию запускает оболочку входа в систему. Проверьте настройки iTerm> Общие> Команда> (*) Оболочка входа. Поэтому я знаю, что всегда будет вызываться ~ / .bash_profile.
Зная это, я поместил в свой файл ~ / .bash_profile следующее:
for file in ~/.{bashrc,bash_exports,bash_aliases,bash_functions}; do
[ -r "$file" ] && source "$file"
done
unset file
Обратите внимание, что я использую отдельные файлы для .bashrc, .bash_exports и т. Д. Это позволяет разделить вещи на отдельные и простые.
Также обратите внимание, что / etc / profile загружается первым, но, поскольку я никогда не использовал этот общесистемный файл инициализации, я знал, что это не моя проблема. Подробнее см. $ man bash
Итак, я начал с моего файла ~ / .bash_profile.
Я обнаружил, что когда я установил Canopy Express, установщик заменил содержимое моего файла ~ / .bash_profile со следующим содержанием:
# Added by Canopy installer on 2017-04-19
# VIRTUAL_ENV_DISABLE_PROMPT can be set to '' to make the bash prompt show that Canopy is active, otherwise 1
alias activate_canopy="source '/Users/lex/dev/python/User/bin/activate'"
# VIRTUAL_ENV_DISABLE_PROMPT=1 source '/Users/lex/dev/python/User/bin/activate'
p.s. Canopy - отличная бесплатная IDE для Python, которую я очень рекомендую.
К счастью, я сделал резервную копию моих файлов ~ / .bash *, поэтому восстановление было легким и быстро устранило мою проблему.
Я бы посоветовал понять порядок обращений к вашим файлам инициализации, начать с первого и работать с ними, пока не найдете проблему.
О, и вы можете проверить, какую оболочку вы используете (я использую bash):
~ $ echo $SHELL
/usr/local/bin/bash
Начиная с Catalina оболочкой по умолчанию теперь является zsh. Вы можете изменить его обратно на bash с помощью chsh -s /bin/bash
, и это должно загрузить ваш .profile
или .bash_profile
Я предполагаю, что вы можете использовать другую оболочку, такую как bash, tcsh, sh, zsh и т. Д.
Поместите source .bash_profile
в соответствующий файл 'bashrc', и автоматическая загрузка восстановится, т.е.
.login для tcsh, .bash_profile для bash, .zshrc для zsh
Моя проблема была решена путем снятия флажка Настройки ›Общие› tmux ›
Используйте профиль tmux, а не профиль сеанса подключения
Скорее всего, вам нужно создать файлы самостоятельно, поскольку по умолчанию они не существуют. Вы должны дать им разрешение на выполнение, чтобы они запустились.
~ % sudo chmod 700 ~/.bash_profile
Кроме того, вы должны проверить право собственности на файлы. Они должны принадлежать текущему пользователю, а не root. В противном случае вы получите permission denied
ошибку.
~ % ls -a -l
~ % sudo chown <user_name> ~/.bash_profile
Наконец, обратите внимание, что bash ищет в вашем домашнем каталоге .bash_profile, .bash_login и .profile по порядку. Bash перестанет искать, если будет найден первый. Это означает, что если у вас есть файлы .bash_profile и .profile, файл .profile не запустится. Для получения дополнительной информации < / а>
Надеюсь, это поможет тебе.
sudo
неправильно для управления вашими личными файлами. Это обычная ошибка новичков как таковая, но все же не лучшее решение для других ситуаций.
- person tripleee; 09.07.2021
sudo
будет необходимым и полезным, - это если вы раньше неправильно использовали sudo
. Вы никогда не должны использовать sudo
для управления своими собственными файлами, потому что это приведет к тому, что они будут принадлежать root
, а не вам, что, по сути, является ошибкой целостности системы.
- person tripleee; 10.07.2021