Я поместил некоторые команды псевдонимов в свой .bashrc
файл, чтобы они могли загружаться каждый раз, когда я открываю новое окно терминала. Но этого не происходит.
Я должен выбрать run script:
в Терминале> Настройки> « MyDefaultTheme »> Prefpane Shell и добавить:
source .bashrc && clear
чтобы он работал ...
Это кажется странным, поскольку во многих руководствах говорится, что вам просто нужно добавить .bashrc
файл, и все хорошо.
Обратите внимание, что я не запускаю bash
при использовании терминала, мне нравится другой (по умолчанию) один (не знаю, что это) лучше, потому что он показывает мне, где я нахожусь все время, например:
>>d54c6b47b:~ romeo$
вместо:
>>bash$
В bash все загружается как должно быть.
Поэтому мой вопрос: почему мой .bashrc
файл не загружался автоматически, и мне приходилось добавлять опцию, чтобы вызывать его каждый раз?
Также какой-то учебник сказал мне сделать что-то вроде:
$alias la=’ls -la’ >> ~/.bashrc
который должен написать псевдоним для моего .bashrc
, это тоже не работает ...
Обратите внимание, что я новичок в UNIX, так что будьте осторожны.
источник
.bashrc
", но это об этом.csh
(или другой вариант) лучше. Но вы должны знать, что это>>bash$
можно изменить :).profile
в своем домашнем каталогеОтветы:
Просто поместите это в свой
.profile
файл из вашего домашнего каталога, и он должен работать при следующем запуске новой оболочки или после запускаsource ~/.profile
Эта ссылка четко указывает порядок, в котором файлы запуска читаются и загружаются оболочкой: http://hayne.net/MacDev/Notes/unixFAQ.html#shellStartup
источник
~/.bashrc
. Однако решение состоит не в том, чтобы просто поместить свой.bashrc
контент в файл запуска входа в систему, поскольку эти два файла предназначены для выполнения различных типов настройки. Вместо этого каноническая установка для Bash заключается в том, чтобы ваш~/.bash_profile
источник~/.bashrc
находился в какой-то подходящей точке сценария (обычно последний).Был там, сделал это. То, о чем я узнал, OS X не читает
.bashrc
файл при запуске bash. Вместо этого он читает следующие файлы (в следующем порядке):/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
Смотрите также информативный и полезный комментарий Криса Йонсена :
Я обычно просто положить вещи , которые я обычно положить в
~/.bashrc
к~/.profile
- работает до сих пор , как обаяние.источник
/usr/bin/login
, что делает оболочку оболочкой входа в систему. На каждой платформе (не только Mac OS X) баш не используется.bashrc
для входа в систему оболочек (только/etc/profile
и первым.bash_profile
,.bash_login
,.profile
что существует и может быть прочитан). Вот почему «вставьsource ~/.bashrc
в себя.bash_profile
» - это стандартный совет.~/.bash_profile
,~/.profile
,~/.bash_login
, никогда не все они. Вы можете запустить простой тест, создав 3 файла. Похоже , что Баш терминал имеет предпочтение~/.bash_profile
>~/.bash_login
>~/.profile
. Если кто-либо из них существует, те, кто менее предпочтителен, пропускаются. Вот почему иногда рекомендуется также источник~/.profile
в~/.bash_profile
.Я положил все
~/.bashrc
и толькоsource ~/.bashrc
в .profile.Это позволяет сеансам screen и xterm (и я полагаю, tmux) унаследовать мою среду, так как сеансы без входа в систему выполняются только
.bashrc
тогда, когда сеансы входа в систему (например, терминал или iTerm) только запускаются.profile
.источник
.profile
является общим для нескольких оболочек и должно содержать только POSIX-совместимый sh-код. Если это источник,.bashrc
он, возможно, содержит специфичный для Bash код (существование.bashrc
файла зависит от Bash). Я рекомендую переименовать его.profile
в,.bash_profile
так как вы используете его для Bash-ориентированного способа. Или, вставьте общий код.profile
и создайте.bash_profile
источники.profile
и.bashrc
.Есть два сценария:
Для обоих вы хотите, чтобы источник
~/.bashrc
в вашем профиле загружался или был получен при запуске вашей оболочки для терминала.LINUX
В Linux
~/.profile
автоматически запускается источник в вашей оболочке. Итак, если вы зайдете в свой терминал и введете командуcd ~; ls -A
, вы увидите все ваши файлы и каталоги в вашем домашнем каталоге (/home/usrname/
). Вы должны увидеть файл с именем.profile
. Это файл, который автоматически "получен" при запуске терминала.Если вы хотите добавить псевдонимы и функции к
~/.bashrc
(что я и делаю), то вам следует (внутри~/.profile
добавить оператор if, который проверяет,~/.bashrc
является ли непустой файл, а затем получить его источник).Чтобы проверить, если вы
~/.profile
уже делаете это, введитеnano ~/.profile
. Это откроет его в текстовом редакторе (вы можете использовать gedit, если вы знаете, что он у вас есть, или даже vim, если вы знаете, как его использовать). Вы можете получить пустой текстовый файл (вы не должны), но если вы просто продолжите. Если вы не видите нигде строки, в которой написаноsource ~/.bashrc
, введите где-то следующие строки (поместите ее в разумное место, например в конец или начало, а не в середину оператора if):Это проверяет,
~/.bashrc
является ли файл непустым (с помощью if[ -s ~/.bashrc ]
), и если это так, он получает его. Довольно просто Теперь вы можете добавить любой допустимый псевдоним, функцию, переменную и т~/.bashrc
. Д.MAC OS X
По умолчанию источники Max OS X
~/.bash_profile
. Чтобы иметь возможность добавлять что-то~/.bashrc
(что, опять же, то, что я делаю в OS X), вы должны следовать той же процедуре, что и в Linux. В терминал войдитеcd ~; nano .bash_profile
. Проверьте строку с надписьюsource ~/.bashrc
и, если ее нет, добавьте оператор if выше (if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).ПРИМЕЧАНИЯ
При написании оператора if обязательно оставляйте пробелы между практически всем (например
if [ -s ~/.bashrc]; then echo "found"; fi
, не работает, потому что между ними нет пробела~/.bashrc
и]
- интерпретатор будет думать, что это одно слово).Если вы хотите выяснить, как лучше проверять вещи в операторе if, перейдите в терминал и введите
man \[
; это, по сути, дает вам сокращение предложения if. Например,if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
проверяет,/path/to/file
является ли файл файлом и выводится ли он на стандартный вывод. Я всегда ссылаюсь на это для удобства и наглядности: 7.2. Операторы проверки файлов .Надеюсь, это поможет. Я помню, как я был смущен, когда начал все это (что было не так давно); Итак, удачи в ваших будущих начинаниях UNIX!
источник
.profile
добыт только если ваша оболочка является Войти оболочки, в противном случае.bashrc
добытSourcing .profile в .bash_profile сделал это для меня
источник
.bashrc
от вас,.bash_profile
а не от.profile
..bash_profile
является специфичным для Bash и должен быть источником двух других.Я обнаружил, что после установки rvm (автоинсталлятор, без ручного редактирования) он создал
~/.bash_login
файл для себя, где у меня раньше его никогда не было.Однако это означает, что мои
~/.profile
настройки и псевдонимы больше не загружаются! Многие ярлыки исчезли. Я думал, что они работают последовательно, а не исключительно: - /я добавил
чтобы
~/.bash_login
связать вещи, как я ожидал.источник
.profile
является общим для нескольких различных оболочек и должен содержать только POSIX-совместимый sh-код..bash_profile
является специфичным для Bash и может содержать специфичный для Bash код. В целом, если вы используете Bash, вам следует предпочесть,.bash_profile
если вы не будете осторожны, чтобы убедиться, что ваш загрузочный код не содержит ничего, что зависит от Bash. Любая созданная программа,.bash_login
вероятно, сделала это, потому что она содержит специфичный для Bash код, но она должна была включать код в исходный код,.profile
если он существует.Ввод ...
... в
~/.bashrc
, а затем источник~/.bashrc
в моем~/.bash_profile
не работал для программы терминала, которая устанавливается.Но затем я перешел в раскрывающееся меню « Правка»> «Настройки профиля» , « Заголовок» и «Команда » и выбрал команду «Выполнить» в качестве оболочки для входа в разделе команд этой страницы.
После этого, запуск нового терминала показывает желаемый результат, когда я набираю
то есть "RVM является функцией". Он не делал этого , пока я не сделал это изменение, и это единственное изменение , которое я сделал после того , как
.bash_profile
и.bashrc
изменения , описанных в других ответах здесь.источник
Прежде всего позвольте мне сказать вам, что
~/.bashrc
это файл, который выполняется каждый раз, когда вызывается вторая оболочка (например, при запуске сценария оболочки), и~/.profile
вызывается при каждом входе в систему.Поэтому я рекомендую вам написать
. ~/.bashrc
команду в вашем~/.profile
файле, и эта команда будет выполнять файл bashrc при каждом входе в систему.источник
Я столкнулся с той же проблемой после установки rbenv на своем удаленном сервере (Digital Ocean) Ubuntu 16.04.
Это как-то создано
~/.bash_profile
. То же самое~/.bashrc
в системе OS XИ Ubuntu начал читать только
~/.bash_profile
, но не~/.bashrc
так, как должен.Итак, я только что скопировал свои данные
~/.bash_profile
с этим:И переименовал старый
~/.bashrc
в~/.bash_profile
Это сработало для меня. После моего входа в SSH все загружено
~/.bashrc
.источник
В случае, если это может помочь кому-то еще ...
Убедитесь, что вы редактируете правильный
.bashrc
файл для нужного пользователя. У меня была похожая проблема с использованием Vagrant. После запускаvagrant ssh
мой.bashrc
файл не запускался. Решение было простым в том, что я думал, что vagrant вошел в систему с пользователем по имени vagrant, и я вошел в систему как другой пользователь. Поэтому я редактировал не тот.bashrc
файл. После редактирования правильного.bashrc
файла мои псевдонимы были распознаны.источник
Кстати, если вы активировали ZSH, он заменяет bash!
Так что все эти
~/.bashrc
файлы не загружаются.~/.zshrc
Вместо этого вы должны установить свои псевдонимы .источник
Чтобы сохранить логин в стиле OSX
.profile
и поддерживать нормальное поведение bash,.bashrc
вы можете использовать.bashrc
файл, если переключаетесь между обычным nix и OSX, предоставляя символическую ссылку на ваш.bashrc
файл с именем.bash_profile
. Просто убедитесь, что этот файл не существует, прежде чем пытаться это, но это, как я это делаю.источник
.bash_profile
) и инициализация, различная на каждом уровне оболочки (.bashrc
)./ etc / bashrc предназначен для глобальных профилей в системах Mac. Вы можете добавить: alias ls = "ls -G" в начало этого файла, и все будет хорошо, у всех будут цветные файлы и папки в системе, поэтому вам не придется устанавливать что-то дополнительное для каждого отдельного пользователя. Вы также заметите, что наряду с «sudo su -» для получения root-прав у вас все равно будут раскрашенные файлы и папки без лишних головных болей.
Еще один забавный совет: при использовании Mac Iterm2 импорт цветовых профилей будет отображать цвет файлов и папок сразу в соответствии с вашей цветовой схемой после установки этого параметра "/ etc / bashrc".
источник