Де знаходиться файл .bashrc в Linux?


14

Я не знаходжу .bash_login та .bash_profile

root@linux:~# locate .bash*
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/noroot/.bashrc
/home/noroot/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/usr/share/kali-defaults/.bashrc
root@linux:~# 

Чи завжди у кожного користувача є лише один .bashrc та .bash_profile файл?

І чи завжди .bashrc та .bash_profile знайдені в каталозі / home / "ім'я користувача"?

Відповіді:


15

Єдині, на які баш переглядається за замовчуванням, знаходяться в домашньому каталозі користувача, так. Для Linux також є єдине джерело для них - / etc / skel. Хоча домашній каталог користувача не повинен бути під / home.

Я бачу, що ви відредагували своє запитання, щоб запитати, де ваші файли .bash_login та .bash_profile. Виходячи з #підказки, я припускаю, що ви працюєте з цим корінцем. У такому випадку ваші файли є

/root/.bash_history
/root/.bashrc

Дивіться мою оригінальну відповідь вище щодо домашнього каталогу користувача - це не завжди / домашній; у цьому випадку домашній каталог root є /root.


10

Відповідно до man bash:

Коли bash викликається як інтерактивна оболонка для входу, або як неінтерактивна оболонка з опцією --login, вона спочатку зчитує та виконує команди з файлу / etc / profile, якщо такий файл існує. Прочитавши цей файл, він шукає ~ / .bash_profile, ~ / .bash_login та ~ / .profile у такому порядку та зчитує та виконує команди з першого, що існує та читається.

~/.bash_profile
    The personal initialization file, executed for login shells

~/.bashrc
    The individual per-interactive-shell startup file

Є також /etc/bashrc( /etc/bash.bashrcв Linux на базі Debian), який містить System wide functions and aliases. За замовчуванням це встановлено навіть для неінтерактивних оболонок без входу.

Редагувати:

У tildeшляхах вказується home directoryпоточно зареєстрований користувач. Bash може використовувати лише одну ~/.bash_profile, ~/.bash_login, or ~/.profile(у поточному користувачеві, що входить у систему), у тому порядку для читання та виконання команд. (Операційних систем на базі Debian зазвичай немає. ~/.bash_profile or ~/.bash_login. Вони використовують файл ~/.profile. Цей файл пояснює, що він буде прочитаний та використаний, якщо ~/.bash_profile or ~/.bash_loginвони не будуть створені.

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login існує.


Яким чином це відповідає на моє запитання?

1
@BROY Він відповідає на питання , який ви повинні були з проханням , а не той , який ви зробили.
Шадур

Я бачив, як деякі люди поміщають .bash_profile файл у каталоги проектів, чи справді це підхоплює bash? Я не думаю, що це повинно статися за замовчуванням.
Олександр Міллс

6

Ваш bashrcрозташування файлу є дистрибутивом-залежний ... Ось основний список для системи bashrc:
/etc/bashrc(Redhat, Fedora, і т.д.)
/etc/bash.bashrc(Debian, Ubuntu, Linux Mint, Backtrack, Калі і т.д.)
/etc/bash.bashrc.local(Suse, OpenSuse і т.д.)
Тоді є приватний однокористувач bashrc, який здебільшого зберігається в ~/.bashrcосновному для кожного дистрибутива ... Якщо у вас немає одного з перелічених дистрибутивів або немає спеціальної системи, ви завжди можете шукати місце bashrcрозташування в google для цього дистрибутива чи система ...
З повагою,
цікаве ...


1

Як люди вже заявляли, ви можете знайти скелет bashrc в /etc/skel/.bashrc. Якщо різні користувачі хочуть різної конфігурації bash, тоді ви повинні помістити .bashrc файл у домашню папку цих користувачів.

Що стосується .bash_profile та .bash_login, користувачеві потрібно створити ці вручну та зв’язати їх через bashrc. bash_profile та bash_login існують для створення більш організованого відчуття різних налаштувань, які ви завантажуєте. Я особисто зберігаю всі свої псевдоніми у bash_profile, тому мені не доведеться розбиратися в безладі в bashrc, щоб швидко змінити редагування.

Ось приклад того, що ви мали би у вашому файлі .bashrc:

if [ -f ~/.bash_profile ]; then
        . ~/.bash_profile
fi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.