О .bash_profile, .bashrc, и где псевдоним должен быть записан в? [дубликат]

Поместите цвет фона на заголовок. Могу поспорить, что он подходит по размеру, поэтому выравнивание текста не имеет значения. Это только столько, сколько нужно. Что вам нужно исправить, так это положение самой этикетки. Возможно, вам придется расширить UIButton и переопределить layoutSubviews, чтобы сделать это правильно. Я никогда не видел кнопки с чем-то кроме центрированного ярлыка.

119
задан codeforester 7 September 2018 в 18:06
поделиться

4 ответа

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

Лично

  • я помещаю свой PATH ] в файл .profile (потому что я иногда использую другие оболочки);
  • Я помещаю свои псевдонимы и функции Bash в свой файл .bashrc ;
  • Я помещаю это

     #! / Bin / bash
    #
    # CRM .bash_profile Отметка времени: «2008-12-07 19:42»
    #
    # echo "Загрузка $ {HOME} /. bash_profile"
    source ~ / .profile # получить мою настройку PATH
    source ~ / .bashrc # получить мои псевдонимы Bash
    

    в моем файле .bash_profile .

О, и причина, по которой вам нужно снова ввести bash , чтобы получить новый псевдоним, заключается в том, что Bash загружает ваш .bashrc при запуске, но не перезагружает его, пока вы не скажете. Вы можете перезагрузить файл .bashrc (и вторая оболочка не потребуется), набрав

source ~/.bashrc

, который загружает файл .bashrc , как если бы вы вводили команды непосредственно в Bash.

161
ответ дан 24 November 2019 в 01:46
поделиться

Check out http://mywiki.wooledge.org/DotFiles for an excellent resource on the topic aside from man bash.

Summary:

  • You only log in once, and that's when ~/.bash_profile or ~/.profile is read and executed. Since everything you run from your login shell inherits the login shell's environment, you should put all your environment variables in there. Like LESS, PATH, MANPATH, LC_*, ... For an example, see: My .profile
  • Once you log in, you can run several more shells. Imagine logging in, running X, and in X starting a few terminals with bash shells. That means your login shell started X, which inherited your login shell's environment variables, which started your terminals, which started your non-login bash shells. Your environment variables were passed along in the whole chain, so your non-login shells don't need to load them anymore. Non-login shells only execute ~/.bashrc, not /.profile or ~/.bash_profile, for this exact reason, so in there define everything that only applies to bash. That's functions, aliases, bash-only variables like HISTSIZE (this is not an environment variable, don't export it!), shell options with set and shopt, etc. For an example, see: My .bashrc
  • Now, as part of UNIX peculiarity, a login-shell does NOT execute ~/.bashrc but only ~/.profile or ~/.bash_profile, so you should source that one manually from the latter. You'll see me do that in my ~/.profile too: source ~/.bashrc.
118
ответ дан 24 November 2019 в 01:46
поделиться

.bash_profile загружен для "оболочки входа". Я не уверен, что это будет на OS X, но в Linux это либо X11, либо виртуальный терминал.

.bashrc загружается каждый раз, когда вы запускаете Bash. Здесь вы должны помещать то, что хотите загружать, всякий раз, когда открываете новое окно Terminal.app.

Я лично помещаю все в .bashrc , чтобы мне не приходилось перезапускать приложение для внесения изменений в вступят в силу.

2
ответ дан 24 November 2019 в 01:46
поделиться

Из справочной страницы bash:

Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с - опция входа в систему , сначала считывает и выполняет команды из файла / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile , ~ / .bash_login и ~ / .profile в указанном порядке и читает и выполняет команды с первого тот, который существует и доступен для чтения. В - опция noprofile может использоваться, когда оболочка запускается, чтобы запретить это поведение.

Когда оболочка входа завершается, bash читает и выполняет команды из файл ~ / .bash_logout , если он существует.

При запуске интерактивной оболочки, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~ / .bashrc , если этот файл существует. это можно запретить с помощью параметра - norc . Параметр файла - rcfile заставит bash читать и выполнять команды из файла вместо ~ / .bashrc .

Таким образом, если вы хотите добиться одинакового поведения как для оболочек входа в систему, так и для интерактивных оболочек без входа в систему, вы должны поместить все свои команды в .bashrc или .bash_profile , а затем сделайте первый файл source .

12
ответ дан 24 November 2019 в 01:46
поделиться