Що таке файл .bashrc?


100

Оболонки Unix при запуску зчитування .bashrcфайлу та виконання команд, написаних у ньому. Що це за файл та що він виконує?


2
Спробуйте відкрити файл у текстовому редакторі - він є простим текстом.
Буде Бікфорд

Відповіді:


66

Власне, саме та bashчитається .bashrc/etc/bash.bashrc). Є багато різних оболонок.

Сторінка " bash man" (Брайан Фокс та Чет Рамі; також інформаційна сторінка "Файли запуску Bash" ) є авторитетною посиланням:

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

Наприклад, коли bash запускається неінтерактивно, для запуску скрипта оболонки, наприклад, він шукає змінну BASH_ENVв середовищі, розширює її значення, якщо вона там з'являється, і використовує розширене значення як ім'я файлу для читання та виконання. Bash поводиться так, ніби виконується наступна команда:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

але значення PATHзмінної не використовується для пошуку імені файлу.

Файл - це лише командні оболонки. Зазвичай використовується для зміни підказок, встановлення змінних оточуючих середовищ та визначення процедур оболонки. Традиційно файл .profileвикористовується для цієї мети, але bashмає настільки багато розширень, що йому потрібен власний файл запуску для користувачів, які хочуть ставити башизми у файли запуску.

" Не оболонка входу " означає такі речі, як запуски скриптів і зазвичай термінальні вікна, запущені менеджерами вікон. Іноді я встановлюю * nix системи, щоб мати .bashrcта BASH_ENVпросто джерело .profile. Поки ви не відхилитесь від команд оболонки POSIX, ви отримаєте ту ж ініціалізацію в будь-якій оболонці.

Це особливо цінно, коли shце справді bash, що іноді трапляється. Для цього скористайтеся:

. .profile

Однією з причин цього все так складно є те, що іноді люди кладуть речі, які дають вихід у файли запуску оболонки, або вони безумовно встановлюють підказки. Це спричиняє багато проблем при запуску програм оболонки та команд backtick в межах мов, не кажучи вже про system(3)програми C. bashЯ думаю, що спосіб запуску призначений для того, щоб мати один файл, де налаштування виводу та підказок є нормальним, і один файл, де його немає. Традиційно для розрізнення інтерактивності проводиться тест часу, наприклад, перевірка, чи встановлено підказку.


Хороша відповідь. Лише деяка цитата: Файл - це лише команди оболонки. Зазвичай використовується для зміни підказок, встановлення змінних оточуючих середовищ та визначення процедур оболонки.
smwikipedia

2
Хтось знає, що означає rc частина .bashrc / .zshrc?
РОБОТИ


Можливо, rc означає конфігурацію виконання.
Майк Дієн

12

Коли Bash запускається, він виконує команди в безлічі різних сценаріїв.

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

Коли оболонка входу виходить, Bash зчитує та виконує команди з файлу ~ / .bash_logout, якщо він існує.

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

http://en.wikipedia.org/wiki/Bash_(Unix_shell)

Ось кілька хитрощів та порад:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

Спробуємо встановити підказку, щоб вона могла відображати сьогоднішню дату та ім'я хоста:

PS1="\d \h $ "

1
Чому .profileпісля .bash_profile? Будь-яка логіка?
Pacerier

10

Він повинен містити різні команди "ініціалізації" для вашої оболонки, наприклад:

  • Створення корисних псевдонімів (наприклад alias ll='ls -l').
  • Додавання додаткових каталогів у PATH.
  • Встановлення нових змінних середовища.

Для чого використовується псевдонім?
ананас

2
@pineapple: Псевдонім - це спосіб запустити команду, яка може бути довгою, з коротшою. Наприклад, псевдонім ll='ls -l'дозволяє вводити llдля виконання ls -lкоманди.
Wuffers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.