Яка різниця між /etc/bash.bashrc і ~ / .bashrc? Який я повинен використовувати?


20

Коли я повинен використовувати кожен з двох файлів .bashrc для встановлення псевдонімів, підказок тощо?

Відповіді:


34

/etc/bash.bashrc стосується всіх користувачів

~/.bashrc стосується лише користувача, у якій домашній папці.


3
І деплікація у відповіді декса полягає в ... Використовуйте свій локальний ~ / .bashrc у всіх випадках, за винятком випадків, коли ви хочете виконати свою волю для всіх, хто використовує цю машину.
дакракот

Строго кажучи, ви нічого не застосовуєте в /etc/bash.bashrc, тому що користувачі завжди можуть змінити це у власному ~ / .bashrc
Кім

... за винятком випадків, коли хтось вирішить внести всі змінні readonlyв /etc/bash.bashrc: \
grawity

1
У Ubuntu цей файл, як це було прокоментовано на початку, потрібно "отримати" з файлу / etc / profile. Я додав команду псевдоніму в кінці /etc/bash.bashrc і додав команду "source /etc/bash.bashrc" в кінці файлу / etc / profile. Працює як шарм.
jfmessier

2

Відповідно до документації GNU Bash :

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

Викликається як інтерактивна оболонка без входу. Коли запускається інтерактивна оболонка, яка не є оболонкою для входу, Bash зчитує та виконує команди з ~ / .bashrc , якщо такий файл існує. Це може бути пригнічено за допомогою параметра --norc. Параметр файлу --rcfile змусить Bash читати та виконувати команди з файлу замість ~ / .bashrc.

Отже, як правило, ваш ~ / .bash_profile містить рядок

якщо [-f ~ / .bashrc]; потім . ~ / .bashrc; фі

після (або раніше) будь-яких ініціалізацій, що стосуються входу.


1
Не зовсім. Подивіться на цей файл git.savannah.gnu.org/cgit/bash.git/tree/shell.c у функції run_startup_files (), де використовується SYS_BASHRC, визначений у git.savannah.gnu.org/cgit/bash.git/ дерево / config-top.h
mloskot

1

Для своїх особистих уподобань та особистих скриптів чи функцій bash слід використовувати .bashrc (псевдоніми, Додані функції до баш ...)

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

Я сказав, що більшість користувачів тому, що навіть скажімо, ви вказали скрипт вітаю.ш, який друкує "Hello world!"для всіх користувачів, але користувач Пепе хоче використовувати замість цього сценарій вітання.ш, який друкує "Hola el mundo!". Він може змінити свій шлях у своєму .bashrc, щоб вказати на його сценарій замість вашого. Іншим словом, користувач завжди може налаштувати свій сеанс в .bashrc під те, що він хоче.

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