У чому різниця між ~/.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)) (Деш народився від lenny)Але ваше питання стосується ~/.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
в башіВи можете встановити змінну $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 та роздвоєна Борном Шеллом.
~/.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
робота під басом, але ~/.profile
робота під оболонкою Борна та Корна.
Оболонка для входу - це просто оболонка, на яку можна ввійти, як через неї ssh, так і на консолі. Оболонка без входу в систему - оболонка, в яку хтось теж не може ввійти. Оболонка без входу часто використовується програмами / системними службами.
Щодо третього моменту. Це правда .bashrc
, виконується на кожному екземплярі оболонки. Однак .bash_profile
використовується лише після входу. Таким чином, причина двох окремих файлів.
.profile
для речей, які не стосуються конкретно Bash, як змінні середовища $ PATH, вони також повинні бути доступні в будь-який час. .bash_profile
спеціально для оболонок для входу або оболонок, виконаних під час входу.