.profileБыла исходная конфигурация профиля для Bourne оболочки ( так называемый, sh). bashБудучи совместимой с Bourne, оболочка будет читать и использовать ее. С .bash_profileдругой стороны, только для чтения bash. Он предназначен для команд, которые несовместимы со стандартной оболочкой Bourne.
Если я ошибаюсь, поправьте меня ... .profile используется любой Bourne-совместимой оболочкой, тогда как .bash_profile используется только bash ... я прав?
Lakesh
2
@lakesh: Да, любая оболочка, обеспечивающая совместимость с Борном, будет читать .profile. Например, bashи , kshно не cshили tcsh. И zshобеспечивает как shи cshсовместимость , так что будет читать как .profileи .login, а также zshконкретные точечные файлы.
Багамат
Есть ли учебник, чтобы прочитать об этом bash и ksh? никогда не слышал об этом раньше ...
bash.bash_profileсначала попытается найти источник , но если его не существует, он получит источник .profile1 .
Обратите внимание, что если bashон запускается как sh(например, /bin/shссылка на /bin/bash) или запускается с --posixфлагом, он пытается эмулировать shи только читает .profile.
Примечания:
На самом деле, первый из .bash_profile, .bash_login,.profile
Оболочка Корна : /bin/ksh(Изобретатель: Дэвид Корн под Bell Labs)
Z shell : /bin/zsh(Мощная оболочка)
Оболочка TENEX C : /bin/tcsh(производная от C Shell)
Оболочка Debian Almquist : /bin/dash(Производная от оболочки Almquist (пепел в рамках проекта NetBSD)) (Черта, рожденная от Ленни)
Но ваш вопрос о ~/.bash_profileи ~/.profile:
Когда вы входите на компьютер UNIX, он перенаправляется в ваш домашний каталог в соответствии с оболочкой, выбранной администратором в последнем поле, /etc/passwdнапример:
Ваша оболочка работает, и по умолчанию каждая оболочка имеет установленный файл для loginи logout. Когда вы войти на баш, ~/.profileзапускается и когда logout, ~/.bash_logoutзапускается.
~/.bash_historyФайл хранит введенную вами команду.
Файл инициализации в каждой оболочке
TENEX C оболочка
~/.login Когда вы входите
~/.logout Когда вы выходите
~/.tcshrcтакой же как ~./bashrcв bash
Вы можете установить переменную $histfileкак имя файла истории и переменную $historyкак количество сохраняемых команд.
Z shell
Действительно, это мощная оболочка, и если у вас будет свободное время, обязательно перейдите на нее.
За исключением другой оболочки, оболочка Z имеет много файлов конфигурации и файлов инициализации, просто я пишу:
Примечание: если не $ZDOTDIRустановлено, домашний набор.
C оболочка
Примечание: оболочка TENEX C была раздвоена от оболочки C. Оболочка C поддерживает BSD. Если вы знакомы с программированием на языке Си, вам должно быть удобно, так как его синтаксис похож.
~/.login
~/.cshrc
~/.logout
Примечание: csh старый. Вместо этого используйте tcsh.
Корн Шелл
~/.profile
rc файл: пользовательский
Файл выхода: N / A
Bourne Again Sheell (BASH)
Это очень мощная оболочка, созданная в рамках проекта GNU и разветвленная Bourne Shell.
Когда вы входите, 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специально для оболочек входа в систему или оболочек, выполняемых при входе в систему.
.profile предназначен для вещей, которые не связаны конкретно с Bash, например, для переменных среды PATH он также должен быть доступен в любое время. .bash_profile специально для оболочек входа в систему или оболочек, выполняемых при входе в систему.
anzenketh
добавьте это утверждение к вашему ответу .... потому что это мой вопрос ...
Ответы:
.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
например:Ваша оболочка работает, и по умолчанию каждая оболочка имеет установленный файл для
login
иlogout
. Когда вы войти на баш,~/.profile
запускается и когдаlogout
,~/.bash_logout
запускается.~/.bash_history
Файл хранит введенную вами команду.Файл инициализации в каждой оболочке
TENEX C оболочка
~/.login
Когда вы входите~/.logout
Когда вы выходите~/.tcshrc
такой же как~./bashrc
в bashВы можете установить переменную
$histfile
как имя файла истории и переменную$history
как количество сохраняемых команд.Z shell
Действительно, это мощная оболочка, и если у вас будет свободное время, обязательно перейдите на нее.
За исключением другой оболочки, оболочка Z имеет много файлов конфигурации и файлов инициализации, просто я пишу:
Примечание: если не
$ZDOTDIR
установлено, домашний набор.C оболочка
Примечание: оболочка TENEX C была раздвоена от оболочки C. Оболочка C поддерживает BSD. Если вы знакомы с программированием на языке Си, вам должно быть удобно, так как его синтаксис похож.
Примечание: csh старый. Вместо этого используйте tcsh.
Корн Шелл
~/.profile
Bourne Again Sheell (BASH)
Это очень мощная оболочка, созданная в рамках проекта GNU и разветвленная Bourne Shell.
Когда вы входите, 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
специально для оболочек входа в систему или оболочек, выполняемых при входе в систему.источник