В чем разница между ~/.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сначала попытается найти источник , но если его не существует, он получит источник .profile1 .
Обратите внимание, что если 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специально для оболочек входа в систему или оболочек, выполняемых при входе в систему.