В чем разница между ~/.profile
и ~/.bash_profile
?
В чем разница между ~/.profile
и ~/.bash_profile
?
Ответы:
.profile
Была исходная конфигурация профиля для Bourne оболочки ( так называемый, sh
). bash
Будучи совместимой с Bourne, оболочка будет читать и использовать ее. С .bash_profile
другой стороны, только для чтения bash
. Он предназначен для команд, которые несовместимы со стандартной оболочкой Bourne.
.profile
. Например, bash
и , ksh
но не csh
или tcsh
. И zsh
обеспечивает как sh
и csh
совместимость , так что будет читать как .profile
и .login
, а также zsh
конкретные точечные файлы.
Оригинальный sh
источник .profile
при запуске.
bash
.bash_profile
сначала попытается найти источник , но если его не существует, он получит источник .profile
1 .
Обратите внимание, что если bash
он запускается как sh
(например, /bin/sh
ссылка на /bin/bash
) или запускается с --posix
флагом, он пытается эмулировать sh
и только читает .profile
.
Примечания:
.bash_profile
, .bash_login
,.profile
Смотрите также:
Вы знаете, что в мире UNIX существует много оболочек, но большинство из них:
/bin/sh
(Изобретатель: Стивен Борн)/bin/bash
(Изобретатель: Брайан Фокс, в рамках проекта GNU) (мощная оболочка)/bin/csh
(Изобретатель: Билл Джой, Изобретатель стека TCP / IP)/bin/ksh
(Изобретатель: Дэвид Корн под Bell Labs)/bin/zsh
(Мощная оболочка)/bin/tcsh
(производная от C Shell)/bin/dash
(Производная от оболочки Almquist (пепел в рамках проекта NetBSD)) (Черта, рожденная от Ленни)Но ваш вопрос о ~/.bash_profile
и ~/.profile
:
Когда вы входите на компьютер UNIX, он перенаправляется в ваш домашний каталог в соответствии с оболочкой, выбранной администратором в последнем поле, /etc/passwd
например:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Ваша оболочка работает, и по умолчанию каждая оболочка имеет установленный файл для login
и logout
. Когда вы войти на баш, ~/.profile
запускается и когда logout
, ~/.bash_logout
запускается.
~/.bash_history
Файл хранит введенную вами команду.
~/.login
Когда вы входите~/.logout
Когда вы выходите~/.tcshrc
такой же как ~./bashrc
в bashВы можете установить переменную $histfile
как имя файла истории и переменную $history
как количество сохраняемых команд.
Действительно, это мощная оболочка, и если у вас будет свободное время, обязательно перейдите на нее.
За исключением другой оболочки, оболочка Z имеет много файлов конфигурации и файлов инициализации, просто я пишу:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Примечание: если не $ZDOTDIR
установлено, домашний набор.
Примечание: оболочка TENEX C была раздвоена от оболочки C. Оболочка C поддерживает BSD. Если вы знакомы с программированием на языке Си, вам должно быть удобно, так как его синтаксис похож.
~/.login
~/.cshrc
~/.logout
Примечание: csh старый. Вместо этого используйте tcsh.
~/.profile
Это очень мощная оболочка, созданная в рамках проекта GNU и разветвленная Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Когда вы входите, bash запускается ~/.bash_profile
и ~/.bash_profile
работает ~/.bashrc
. На самом деле ~/.bashrc
это не файл инициализации bash, потому что bash его не запускает.
Это мертвый. Даже когда вы используете man sh
, вы видите руководство dash
. [Примечание редактора: информация dash
относится только к дистрибутивам Debian и Debian, таким как Ubuntu.]
~/.bash_profile
работать под Bash, но ~/.profile
работать под Bourne и Korn.
Оболочка входа - это просто оболочка, в которую вы можете войти как через ssh, так и через консоль. Оболочка без входа в систему - это оболочка, в которую кто-то тоже не может войти. Оболочка без входа в систему часто используется программами / системными службами.
Что касается вашего третьего пункта. Это правда .bashrc
, выполняется на каждом экземпляре оболочки. Однако .bash_profile
используется только при входе в систему. Таким образом, причина для двух отдельных файлов.
.profile
предназначен для вещей, которые не связаны конкретно с Bash, таких как переменные среды $ PATH, он также должен быть доступен в любое время. .bash_profile
специально для оболочек входа в систему или оболочек, выполняемых при входе в систему.