Я хочу добавить новые псевдонимы к своему .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 как гейра писал.