На этот вопрос уже есть ответ:
Я хочу добавить новые псевдонимы к моему файлу .bash_profile
, но я не могу найти этот файл.
Где это должно быть?
~/.bash_profile
это не то место, где можно ставить псевдонимы и функции. Они должны идти в ~/.bashrc
. См. http://mywiki.wooledge.org/DotFiles для объяснения.
Удобно поместить весь ваш псевдоним в ~/.bash_aliases
в домашний каталог пользователя. Это то, что предлагается в файле ~/.bashrc
в комментариях.
просто хотел вмешаться - что даже файлы скрыты в средстве просмотра, вы все равно можете открыть их все, если просто введете имя файла. Например, если вы напишите в адресной строке дельфина /home/<user>/.bashrc, он откроет файл в редакторе по умолчанию, не переключая отображение / скрытие некоторых файлов.
Другой способ - просто открыть свой любимый редактор и просто ввести имя файла.
Я считаю, что наиболее предпочтительный способ обработки скрытых файлов, а не показ, просто добавляет шума, которого можно избежать.
И псевдонимы должны входить в .bashrc, как писал гейра .
Это скрытый файл, расположенный в вашей домашней папке:
~/.bash_profile
(~
расширяется до вашей домашней директории. Если ваше имя пользователя user
, результат будет: /home/user/.bash_profile
).
Так как это скрытый файл, вы должны сделать его видимым. Для этого в Nautilus перейдите в меню «Вид» и выберите «Показать скрытые файлы» (или нажмите сочетание клавиш Ctrl kbd> + H kbd>).
Если вы используете Kubuntu с Dolphin, вы должны нажать Ctrl kbd> + . Kbd>, чтобы переключить видимость файлов.
Вы обычно не имеете .bash_profile
на Ubuntu, и при этом Вы не должны обычно создавать тот файл. Как jpezz говорит, это было бы в Вашем корневом каталоге в Вашей системе Ubuntu, которая является что ~
обозначает, и можно создать его там. Но если Вы делаете, необходимо быть осторожными, потому что это предотвратит bash
от автоматического выполнения команд в .profile
- который Вы почти наверняка имеете.
Когда bash
выполнения как оболочка входа в систему, в WSL или otherwise1, это выполняет первый из .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
хорошее место для них, как geirha справедливо говорит. Это вызвано тем, что Вы захотите, чтобы Ваши псевдонимы работали в интерактивных оболочках, являются ли они оболочками входа в систему. Вместо этого определите свои псевдонимы в .bashrc
или, лучше, .bash_aliases
(как гость boeroe указывает), который значение по умолчанию .bashrc
источники. Посмотрите, Как я создаю постоянный псевдоним Bash?
Значение по умолчанию .profile
файл проверит, выполняете ли Вы a bash
оболочка и источник .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
в неинтерактивной оболочке входа в систему и в другом более неясном scenarios2:
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
Таким образом, если Вы вставляете псевдонимы .bashrc
или в .bash_aliases
, Вы получите их для интерактивных оболочек входа в систему (где .profile
используется), а также интерактивные оболочки невхода в систему (где .bashrc
используется). Это - то, что Вы хотите. Просто ничего не помещайте выше проверки интерактивности, если Вы действительно, действительно не знайте то, что Вы делаете.
1 Этот ответ был первоначально записан для WSL-связанного вопроса, но тот вопрос был закрыт как дубликат, и этот ответ применяется полностью здесь также, таким образом, я расширился немного и отправил его здесь вместо этого.
2, Когда bash
обнаруживает, что это, вероятно, работает как начальная оболочка удаленного входа в систему, который не является оболочкой входа в систему - такой как тогда, когда Вы используете ssh
для выполнения единственной команды на удаленной машине - это выполняет команды от .bashrc
. (См. 6,2 Файлов Запуска Bash в руководстве Bash GNU.)