Где находится .bash_profile? [Дубликат]

    

У этого вопроса уже есть ответ:

    

Я хочу добавить новые псевдонимы в мой файл .bash_profile, но я не могу найти этот файл.
Где он должен быть?

41 голос | спросил Shira 6 MarpmSun, 06 Mar 2011 14:40:07 +03002011-03-06T14:40:07+03:0002 2011, 14:40:07

5 ответов


39

Это скрытый файл, расположенный в вашей домашней папке:

~/.bash_profile

(~ расширяется в ваш домашний каталог. Если ваше имя пользователя user, результатом будет: /home/user/.bash_profile).

Так как это скрытый файл, вы должны сделать его видимым. Для этого в Nautilus перейдите в меню «Просмотр» и установите флажок «Показать скрытые файлы» (или нажмите сочетание клавиш Ctrl + H ).

Если вы используете Kubuntu с Dolphin, вам нужно нажать Ctrl + . , чтобы переключить видимость файлов.

ответил Lekensteyn 6 MarpmSun, 06 Mar 2011 14:45:24 +03002011-03-06T14:45:24+03:0002 2011, 14:45:24
12

~/.bash_profile не подходит для размещения псевдонимов и функций. Они должны войти в ~/.bashrc. Для объяснения см. http://mywiki.wooledge.org/DotFiles .

ответил geirha 6 MarpmSun, 06 Mar 2011 21:39:32 +03002011-03-06T21:39:32+03:0009 2011, 21:39:32
6

Удобно поместить весь ваш псевдоним в ~/.bash_aliases в домашний каталог пользователя. Это то, что предлагается в файле ~/.bashrc в комментариях.

ответил guest boeroe 29 SunEurope/Moscow2013-12-29T04:57:43+04:00Europe/Moscow12bEurope/MoscowSun, 29 Dec 2013 04:57:43 +0400 2013, 04:57:43
1

Обычно у вас нет .bash_profile на Ubuntu, а также , как правило, создайте этот файл. Как jpezz говорит , он будет в вашем домашнем каталоге вашей системы Ubuntu, что означает ~, и вы можете его создать там. Но если вы это сделаете, вы должны быть осторожны, потому что это предотвратит bash от автоматического запуска команд в .profile - что вы почти наверняка делаем .

Когда bash работает как оболочка входа , в WSL или в противном случае 1 , он запускает первый из .bash_profile, .bash_login или .profile, который существует в вашем домашнем каталоге. Если у вас есть bash -специфические команды, которые вы хотите запускать при входе в систему, но только тогда, когда bash - ваша оболочка - вы можете поместить их в .bash_profile. Но простое существование .bash_profile предотвратит .profile от использования.

Итак, вам нужно source .profile из .bash_profile, если вы хотите, чтобы эти команды были тоже, что вы почти всегда будете делать. Вы можете сделать это, поставив эту команду в .bash_profile:

. ~/.profile

(Некоторые читатели могут привыкнуть видеть, что это написано как . "$HOME/.profile", когда оно появляется в сценарии запуска. Это всегда хорошо - и вы можете использовать это для команд, которые должны работать с оболочками, отличными от bash, если вам нужно разместить очень старые оболочки, которые не 't поддерживать стандартные функции , которые - ну, вы не нужно. В любом случае bash всегда поддерживает расширение тильды и точка .bash_profile заключается в том, что только bash запускает команды из него, поэтому . ~/.profile в порядке.)

Встроенный . источник запускает файл, то есть он запускает все команды из файла в текущей оболочке. Откройте интерактивную оболочку bash и запустите help . для получения дополнительной информации.

Причина, по которой у вас обычно нет .bash_profile на Ubuntu, даже если у вас есть bash -специфические команды, которые вы хотите запустить при входе в систему , это то, что по умолчанию пользовательский .profile содержат код, который проверяет, является ли текущая оболочка bash, а затем запускает такие команды.

Существует еще один ответ на вопрос, где такие файлы, как .profile или .bash_profile. Стандартные версии этих файлов существуют в каталоге /etc/skel. Файлы в этом каталоге копируются в домашние каталоги Ubuntu, когда учетные записи пользователей создаются в системе Ubuntu, включая учетную запись пользователя, которую вы создаете как часть установки Ubuntu. Если вы посмотрите в этом каталоге, вы заметите, что есть файл с именем .profile - а также некоторые другие файлы, например .bashrc - но нет файла с именем .bash_profile , Вот почему - или, действительно, , как - no .bash_profile существует в вашем доме Ubuntuесли вы сами не создали его.


Наконец, вы должны not помещать псевдонимы в .profile вообще, равно как и .bash_profile хорошее место для них, как geirha справедливо говорит . Это связано с тем, что вы хотите, чтобы ваши псевдонимы работали в интерактивных оболочках независимо от того, являются ли они командами входа в систему. Вместо этого определите свои псевдонимы в .bashrc или, лучше, .bash_aliases (в качестве указывается гостевой boeroe ), который по умолчанию используется .bashrc. См. Как создать постоянный псевдоним Bash?

Файл .profile по умолчанию будет проверять, если вы используете .bash shell и source .bashrc, если вы:

 # if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

Между тем, по умолчанию .bashrc будет закрываться сверху, ничего не делая, если он запускается в неинтерактивной оболочке, поэтому команды в он не будет работать, если он будет получен с помощью .profile в неинтерактивной оболочке входа в систему и в других более неясные сценарии 2 :

 # If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

Итак, если вы ставите псевдонимы в .bashrc или в .bash_aliases , вы получите их для интерактивных оболочек входа (где используется .profile), так как а также интерактивные оболочки без входа (где используется .bashrc). Это то, что вы хотите. Просто не ставьте ничего выше проверки интерактивности, если вы действительно не знаете, что вы делаете. знаете, что вы делаете.


1 Этот ответ был первоначально написан для вопрос, связанный с WSL , но этот вопрос был закрыт как дубликат, и этот ответ также полностью применяется здесь, поэтому я немного расширил и разместил его здесь вместо этого.

2 Когда bash обнаруживает, что он, вероятно, работает как начальный оболочка удаленного входа, которая представляет собой not оболочку входа - например, когда вы используете ssh для запуска одной команды на удаленном компьютере - она ​​запускается команды из .bashrc. (См. 6.2 Файлы загрузки Bash в руководство GNU Bash .)

ответил Eliah Kagan 27 +03002017-10-27T18:16:59+03:00312017bEurope/MoscowFri, 27 Oct 2017 18:16:59 +0300 2017, 18:16:59
0

просто хотел перезвонить - чтобы даже файлы были скрыты в средстве просмотра, вы все равно можете открыть их все, только если вы просто введите имя файла. Например, если вы пишете адресную строку дельфина /home/<user>/.bashrc, он откроет файл с редактором по умолчанию, не переключая отображение /скрытие некоторых файлов.

Другой способ - просто открыть ваш любимый редактор и просто ввести имя файла.

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

И псевдонимы должны войти в .bashrc как писал geirha .

ответил Osis 8 MarpmTue, 08 Mar 2011 13:24:15 +03002011-03-08T13:24:15+03:0001 2011, 13:24:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132