Где находится файл .bash_profile?

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

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

~/.bash_profile

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

Поскольку это скрытый файл, вы должны сделать его видимым.Чтобы сделать это в Nautilus, перейдите в меню "Просмотр" и установите флажок "Показывать скрытые файлы" (или нажмите ярлык Ctrl + H).

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

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

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

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

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

. ~/.profile

(Некоторые читатели, возможно, привыкли видеть, что это написано как . "$HOME/.profile" когда он появляется в сценарии запуска. Это всегда хорошо - и вы можете предпочесть использовать это для команд, которые должны работать с оболочками, отличными от bash также, если вам нужно разместить очень старые оболочки, которые не поддерживают стандартные функции, что... ну, тебе это не нужно. В любом случае, 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. Вот почему - или, на самом деле, как-- нет .bash_profile существует в вашем домашнем каталоге Ubuntu, если только вы не создали его самостоятельно.


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

Значение по умолчанию .profile файл проверит, используете ли вы bash оболочка и источник .bashrc если ты:

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

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

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

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


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

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

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

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

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

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

И псевдонимы должны входить в .bashrc как гейра писал.